diff --git a/frameworks/diffusers/0.33.0/Dockerfile b/frameworks/diffusers/0.33.0/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..9a923f67f8b5304d438d4abd2b8486c888c5ce6a --- /dev/null +++ b/frameworks/diffusers/0.33.0/Dockerfile @@ -0,0 +1,32 @@ +FROM opencloudos/opencloudos9-cuda-devel:12.8 + +LABEL maintainer="OpenCloudOS Community" +LABEL org.opencontainers.image.source="https://gitee.com/OpenCloudOS/ai-agent-container" +LABEL org.opencontainers.image.description="Diffusers (GPU) on OpenCloudOS 9" + +# 安装 Python 3.11 及依赖 +RUN dnf install -y \ + python3.11 \ + python3.11-pip \ + && dnf clean all \ + && rm -rf /var/cache/yum/* \ + && ln -sf /usr/bin/python3.11 /usr/bin/python3 + +# 安装 diffusers 及常用的 GPU 依赖 +RUN pip3.11 install --no-cache-dir uv \ + && uv pip install --no-cache-dir \ + diffusers==0.33.0 \ + torch \ + torchvision \ + torchaudio \ + accelerate \ + 'transformers<4.48.0' \ + safetensors \ + --system + +# 设置 GPU 环境变量 +ENV NVIDIA_VISIBLE_DEVICES=all + +RUN echo $(date +"%Y-%m-%dT%H:%M:%S%z") > /opencloudos_build_date.txt + +CMD ["python3.11"] diff --git a/frameworks/diffusers/0.33.0/README.md b/frameworks/diffusers/0.33.0/README.md new file mode 100644 index 0000000000000000000000000000000000000000..63d183dd36a1db85dd74da05bd69f7b60b434114 --- /dev/null +++ b/frameworks/diffusers/0.33.0/README.md @@ -0,0 +1,48 @@ +# Diffusers on OpenCloudOS 9 + +## 基本信息 +- **框架版本**:v0.33.0 +- **基础镜像**:opencloudos/opencloudos9-cuda-devel:12.8 +- **Python 版本**:3.11 +- **CUDA 版本**:12.8 + +## 构建 + +```bash +docker build -t oc9-diffusers:0.33.0 . +``` + +## 使用示例 + +```bash +# 验证 diffusers 版本 +docker run --rm --gpus all oc9-diffusers:0.33.0 python3 -c "import diffusers; print(diffusers.__version__)" + +# 验证 CUDA 可用性 +docker run --rm --gpus all oc9-diffusers:0.33.0 python3 -c "import torch; print(torch.cuda.is_available())" + +# 快速推理示例(需要联网下载模型) +docker run --rm --gpus all oc9-diffusers:0.33.0 python3 -c " +from diffusers import DiffusionPipeline +import torch +pipe = DiffusionPipeline.from_pretrained('runwayml/stable-diffusion-v1-5', torch_dtype=torch.float16) +pipe = pipe.to('cuda') +print('Pipeline loaded on GPU') +" +``` + +## 测试验证 + +```bash +# 执行测试脚本(需要 GPU 环境) +bash test.sh oc9-diffusers:0.33.0 +``` + +测试脚本会验证以下内容: +- CUDA 环境是否可用 +- diffusers 是否正常导入 +- 核心组件(DiffusionPipeline、DDPMScheduler、UNet2DModel)是否可加载 + +## 已知问题 +- 首次运行时需要联网下载模型权重,建议提前挂载本地模型缓存目录以加速启动。 +- diffusers 0.33.0 依赖 `transformers` 中已移除的 `FLAX_WEIGHTS_NAME`,需固定 `transformers<4.48.0` 以避免 ImportError。 diff --git a/frameworks/diffusers/0.33.0/build.conf b/frameworks/diffusers/0.33.0/build.conf new file mode 100644 index 0000000000000000000000000000000000000000..eb9b980be29549fe7c53dc6aee0ebfb8e2328bd8 --- /dev/null +++ b/frameworks/diffusers/0.33.0/build.conf @@ -0,0 +1,4 @@ +# diffusers 0.33.0 on OpenCloudOS 9 (GPU) +IMAGE_NAME=oc9-diffusers +IMAGE_TAG=0.33.0 +GPU_TEST=true diff --git a/frameworks/diffusers/0.33.0/test.sh b/frameworks/diffusers/0.33.0/test.sh new file mode 100755 index 0000000000000000000000000000000000000000..56906f41919a239694db3567abd429c629f3ba7f --- /dev/null +++ b/frameworks/diffusers/0.33.0/test.sh @@ -0,0 +1,30 @@ +#!/bin/bash +set -e + +IMAGE="${1:?ERROR: 缺少镜像参数。用法: bash test.sh }" + +echo "=== GPU 镜像功能测试 ===" +# 1. 验证 CUDA 环境 +echo -n "检查 CUDA... " +docker run --rm --gpus all "$IMAGE" python3 -c " +import torch +assert torch.cuda.is_available(), 'CUDA not available' +print(f'GPU: {torch.cuda.get_device_name(0)}') +" && echo "✓ 通过" || { echo "✗ 失败"; exit 1; } + +# 2. 验证 diffusers 导入 +echo -n "检查 diffusers import... " +docker run --rm --gpus all "$IMAGE" python3 -c " +import diffusers +print(diffusers.__version__) +" && echo "✓ 通过" || { echo "✗ 失败"; exit 1; } + +# 3. 验证核心组件可用 +echo -n "检查 diffusers 核心组件... " +docker run --rm --gpus all "$IMAGE" python3 -c " +from diffusers import DiffusionPipeline, DDPMScheduler, UNet2DModel +import torch +print('核心组件加载正常') +" && echo "✓ 通过" || { echo "✗ 失败"; exit 1; } + +echo "=== 所有测试通过 ==="