🚀 在本教程中,我将带您一步步搭建 ComfyUI - 一个功能强大的 Stable Diffusion 图形化工作流工具,特别优化用于多 GPU 环境。无论您是 AI 绘图新手还是寻求高效批量生成解决方案的专业用户,这篇指南都能帮助您快速上手。
前言
ComfyUI 是目前最灵活、功能最丰富的 Stable Diffusion 工作流工具之一,它采用节点式设计,可以自由组合各种组件,创建复杂的图像生成流程。与其他工具相比,ComfyUI 的最大优势在于其高度可定制性和对多 GPU 环境的良好支持。
我们的安装环境是:
- Ubuntu 24.04
- CUDA 12.4
- NVIDIA RTX 3090 GPU × 4
- Python 3.10
注意:本教程假设您已经安装了 CUDA、NVIDIA 驱动和 Miniconda。
1. 创建独立的 conda 环境
首先,我们需要创建一个独立的 conda 环境,以避免与系统其他 Python 环境冲突:
# 创建名为 comfyui 的 Python 3.10 环境
conda create -n comfyui python=3.10 -y
# 激活新创建的环境
source ~/miniconda/bin/activate comfyui || conda activate comfyui
2. 安装 PyTorch 和 CUDA 依赖
接下来,我们安装支持 CUDA 的 PyTorch:
# 安装 PyTorch 2.5.1 及相关组件
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=12.4 -c pytorch -c nvidia -y
# 验证 PyTorch 安装是否正确识别 GPU
python -c "import torch; print('PyTorch版本:', torch.__version__); print('CUDA是否可用:', torch.cuda.is_available()); print('GPU数量:', torch.cuda.device_count())"
在输出中,您应该能看到已识别的 GPU 数量和 CUDA 可用状态为 True
。
3. 安装 xformers 优化内存使用
xformers 是 Meta 开发的一个库,能大幅降低 Stable Diffusion 模型的内存占用:
pip install xformers
4. 克隆 ComfyUI 代码库
现在,让我们获取 ComfyUI 的最新代码:
cd ~
if [ -d "ComfyUI" ]; then
echo "ComfyUI 目录已存在,更新到最新版本"
cd ComfyUI
git pull
else
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
fi
5. 安装 ComfyUI 依赖
cd ~/ComfyUI
pip install -r requirements.txt
# 安装额外的依赖
pip install accelerate==0.27.2
pip install peft==0.7.1
pip install requests==2.31.0
6. 创建模型目录结构
ComfyUI 需要特定的目录结构来存储不同类型的模型:
mkdir -p models/{checkpoints,configs,controlnet,embeddings,loras,upscale_models,vae,clip,gligen,unet,clip_vision,style_models}
7. 安装常用扩展节点
ComfyUI 的功能可以通过扩展节点来增强,以下是几个实用的扩展:
cd ~/ComfyUI/custom_nodes
# ComfyUI-Manager:最流行的管理插件,提供图形界面管理各种组件
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
# comfyui_controlnet_aux:ControlNet 辅助预处理器节点集合
git clone https://github.com/Fannovel16/comfyui_controlnet_aux.git
# ComfyUI_IPAdapter_plus:集成 IP-Adapter 图像条件生成技术
git clone https://github.com/cubiq/ComfyUI_IPAdapter_plus.git
# ComfyUI_NetDist:支持多 GPU 分布式处理
cd ~/ComfyUI/custom_nodes
git clone https://github.com/city96/ComfyUI_NetDist.git
8. 创建启动脚本
为了便于启动并正确配置环境变量,我们创建一个启动脚本:
cd ~
cat > ~/start_comfyui.sh << 'EOL'
#!/bin/bash
source $HOME/miniconda/bin/activate comfyui || conda activate comfyui
cd ~/ComfyUI
# 设置多GPU并行计算环境变量
export CUDA_VISIBLE_DEVICES=0,1,2,3
# 设置PyTorch使用所有可用GPU
export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:512
# 启用分布式数据并行
export COMFYUI_USE_TORCH_COMPILE=1
# 启动ComfyUI
python main.py --listen 0.0.0.0 --port 8188
EOL
chmod +x ~/start_comfyui.sh
9. 设置系统服务实现自启动
为了使 ComfyUI 能够开机自启动并且在崩溃时自动重启,我们创建一个系统服务:
cat > ~/comfyui.service << EOL
[Unit]
Description=ComfyUI Service
After=network.target
[Service]
Type=simple
User=$USER
ExecStart=/bin/bash $HOME/start_comfyui.sh
Restart=on-failure
RestartSec=5s
# 设置更大的内存限制,适合128G内存系统
MemoryHigh=100G
MemoryMax=120G
[Install]
WantedBy=multi-user.target
EOL
# 将服务文件复制到系统目录(需要sudo权限)
sudo cp ~/comfyui.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable comfyui.service
10. 下载基础模型
您需要下载至少一个基础的 Stable Diffusion 模型才能开始生成图像。您可以从 Civitai 或 Hugging Face 下载模型,并将其放置在 ~/ComfyUI/models/checkpoints/
目录中。
以下是一些推荐的基础模型:
- Realistic Vision V6.0
- Dreamshaper 8
- SDXL 1.0
11. 启动 ComfyUI
完成安装后,您可以通过以下两种方式启动 ComfyUI:
# 方式1:直接运行启动脚本
~/start_comfyui.sh
# 方式2:使用系统服务启动
sudo systemctl start comfyui
启动后,您可以通过浏览器访问 http://您的IP地址:8188
来使用 ComfyUI 的图形界面。
总结
至此,您已经成功安装了 ComfyUI 并配置了多 GPU 环境。现在您可以:
- 通过网页界面创建复杂的图像生成工作流
- 利用多个 GPU 加速图像生成过程
- 通过 API 实现自动化批量生成