开发基于ComfyUI图片生成类应用Step by step(一)环境准备

ComfyUI 是开源、节点式可视化的 AI 生成推理引擎,支持 Flux、Wan、LTX 等主流文生图 / 文生视频模型,可以在本地运行。社区有大量现成工作流,可以直接加载使用。我们可以利用ComfyUI的强大功能,开发各种图片生成类应用,例如下面的试衣间应用。

我们从零开始部署ComfyUI,包括ComfyUI 常驻推理服务和 Qwen-Image 2.1 模型。我们选择在Windows 的WSL环境下部署,在这种环境下,可以使用Linux的所有指令。

部署ComfyUI的硬件要求:

  • NVIDIA 显卡,6GB 显存可跑(配 --lowvram,速度较慢),12GB+ 体验良好;
  • 磁盘约 20GB(模型 14.6GB + ComfyUI 依赖)

全部装完后目录长这样(名字可自定,后文以此为准):

复制代码
mytools/
├── comfy-venv/               # Python虚拟环境
├── comfyui/                  # ComfyUI 安装(git clone 得到)
│   ├── extra_model_paths.yaml#   模型路径映射(本文第五步创建)
│   └── custom_nodes/
│       └── ComfyUI-GGUF/     # GGUF 量化加载节点(本文第三步安装)
├── models/qwen-image-2.1-unc/# 模型权重(本文第四步下载)
│   ├── qwen-image-2.1-UC-Q4_K_M.gguf
│   ├── text_encoders/qwen3vl_8b_int8_convrot.safetensors
│   └── vae/qwen_image_2.1_vae_bf16.safetensors
└── ...(各应用:tryon-studio 等)

下面,我们一步步进行安装。

一、创建 Python 虚拟环境

我们将ComfyUI 及其依赖(torch 等)单独放一个环境,避免污染系统 Python。安装需要 Python 3.10+:

bash 复制代码
cd mytools
python3 -m venv comfy-venv

# 安装 CUDA 版 PyTorch(按显卡选择,详见  https://pytorch.org )
# 例:CUDA 12.x
comfy-venv/bin/pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
# 显卡较新(如 RTX 50 系,需要 cu128/cu130):
# comfy-venv/bin/pip install torch torchvision --index-url https://download.pytorch.org/whl/cu128

# 验证 GPU 可见
comfy-venv/bin/python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"

这里需要注意的是torch的版本:

torch 版本必须与本机 CUDA 驱动匹配。装错版本的典型症状:

ComfyUI 启动时报 CUDA not available 或直接崩溃。

使用下面的命令可以查看CUDA驱动的版本:

bash 复制代码
nvidia-smi | grep "CUDA Version"   # 显示的数字 ≥ 要装的 cuXXX 即可
  • nvidia-smi 右上角的 "CUDA Version" 是驱动最高支持的 CUDA 版本 ,
    不是已安装的 CUDA,也不需要单独安装什么
  • 每个torch 安装包都自带一份 CUDA 运行时 (wheel 名里的 cu121/cu128
    就是它),不依赖系统是否安装 CUDA Toolkit
  • 兼容规则只有一条:wheel 的 CUDA 版本 ≤ 驱动上限 。
    例:驱动显示 CUDA Version: 13.1 → cu121/cu126/cu128/cu130 都能装能跑
  • pip 不会自动检测显卡 选版本,需要自己指定 --index-url;
    不指定时装 PyPI 官方默认构建(多数情况可用,生产部署建议显式指定)

另外,在WSL 2环境下(Windows+WSL),不需要单独安装NVIDIA驱动,在Windows侧安装的NVIDIA驱动通过WSL 内部由 /usr/lib/wsl/lib/ 自动注入 CUDA 库。WSL 里千万不要 apt install nvidia-driver-*------会覆盖注入的库,反而导致 CUDA 不可用。

二、安装 ComfyUI

我们使用克隆源代码的方式安装ComfyUI:

bash 复制代码
cd mytools
git clone --depth 1 https://github.com/comfyanonymous/ComfyUI comfyui

# 安装 ComfyUI 依赖(用刚才的环境)
comfy-venv/bin/pip install -r comfyui/requirements.txt

三、安装自定义节点 ComfyUI-GGUF

Qwen-Image 2.1 用的是 GGUF 量化权重 ,官方 ComfyUI 不带 GGUF 加载器,

必须装这个节点(提供 UnetLoaderGGUF):

bash 复制代码
cd comfyui/custom_nodes
git clone --depth 1 https://github.com/city96/ComfyUI-GGUF
cd ../..
comfy-venv/bin/pip install -r comfyui/custom_nodes/ComfyUI-GGUF/requirements.txt

四、下载 Qwen-Image 2.1 模型权重

三个文件共约 14.6 GB ,来自 Hugging Face 仓库

abenzerps/Qwen-Image-2.1-Uncensored-GGUF:

文件 角色 大小
qwen-image-2.1-UC-Q4_K_M.gguf 扩散模型(transformer,GGUF 量化) 4.60 GB
text_encoders/qwen3vl_8b_int8_convrot.safetensors 文本编码器 Qwen3-VL-8B(int8) 9.35 GB
vae/qwen_image_2.1_vae_bf16.safetensors VAE 0.68 GB

用 huggingface_hub 下载(支持断点续传;国内网络走镜像):

bash 复制代码
comfy-venv/bin/pip install huggingface_hub

export HF_ENDPOINT=https://hf-mirror.com   # 国内镜像;海外可删
comfy-venv/bin/python - <<'EOF'
import os
from huggingface_hub import hf_hub_download
out = "models/qwen-image-2.1-unc"
for name in ("qwen-image-2.1-UC-Q4_K_M.gguf",
             "text_encoders/qwen3vl_8b_int8_convrot.safetensors",
             "vae/qwen_image_2.1_vae_bf16.safetensors"):
    print(">>>", name, flush=True)
    hf_hub_download(repo_id="abenzerps/Qwen-Image-2.1-Uncensored-GGUF",
                    filename=name, local_dir=out)
print("全部下载完成")
EOF

五、配置模型路径映射

在 comfyui/ 下创建 extra_model_paths.yaml,把第四步的模型目录映射给

ComfyUI(ComfyUI 按「文件名」引用模型,映射决定它去哪些目录找):

yaml 复制代码
qwenimages:
    base_path: ../models          # 相对本文件所在目录
    is_default: true
    diffusion_models: qwen-image-2.1-unc
    text_encoders: qwen-image-2.1-unc/text_encoders
    vae: qwen-image-2.1-unc/vae

到这里,我们已经完成了ComfyUI的安装,使用下面的命令可以启动ComfyUI:

复制代码
~/mytools/comfy-venv/bin/python ~/mytools/comfyui/main.py \
--listen 127.0.0.1 \
--port 8188 \
--disable-auto-launch

接下来,我们就可以编写基于ComfyUI的应用了。