ComfyUI 是一款开源的、基于节点的 Stable Diffusion 图形界面工具。与 Automatic1111 WebUI 的”填表式”交互不同,ComfyUI 采用可视化节点编排,让你能精确控制图像生成的每个环节,适合追求深度定制的创作者和开发者。
本文基于 ComfyUI 最新版本编写,需要 Python 3.10+ 和支持 CUDA 的 NVIDIA 显卡。
为什么选择 ComfyUI#
| 特性 | ComfyUI | WebUI (A1111) |
|---|---|---|
| 交互方式 | 节点式,可视化工作流 | 表单式,参数填写 |
| 学习曲线 | 较陡 | 平缓 |
| 灵活性 | 极高,可自由组合 | 中等,依赖插件 |
| 性能优化 | 优秀,低显存占用 | 一般 |
| 工作流复用 | 可保存/分享 JSON 工作流 | 依赖 Prompt 和设置 |
| 批量生产 | 原生支持 | 需要插件 |
ComfyUI 特别适合:
- 需要精确控制生图流程
- 构建复杂的图像处理管线
- 批量生产或自动化生图
- 开发 AI 图像相关应用
安装 ComfyUI#
Windows(推荐方式)#
下载官方整合包,解压即用:
- 前往 ComfyUI Releases
- 下载
ComfyUI_windows_portable_xxx.7z - 解压到任意目录
- 运行
run_nvidia_gpu.bat
手动安装(所有平台)#
# 克隆仓库git clone https://github.com/comfyanonymous/ComfyUI.gitcd ComfyUI
# 创建虚拟环境python -m venv venvsource venv/bin/activate # Windows: venv\Scripts\activate
# 安装依赖pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121pip install -r requirements.txt
# 启动python main.pyMac(Apple Silicon)#
# 安装 PyTorch for MPSpip install torch torchvision torchaudio
# 启动python main.py --force-fp16启动后访问 http://127.0.0.1:8188 即可看到界面。
界面介绍#
ComfyUI 界面主要由以下部分组成:
┌─────────────────────────────────────────────────┐│ 菜单栏 │├─────────────────────────────────────────────────┤│ ││ 节点画布 ││ ││ [加载模型] → [CLIP编码] → [采样器] → [解码] ││ ↓ ││ [保存图片] ││ │├─────────────────────────────────────────────────┤│ Queue Prompt │ 生成进度 │ 历史记录 │└─────────────────────────────────────────────────┘基本操作#
| 操作 | 方式 |
|---|---|
| 添加节点 | 右键画布 → Add Node |
| 连接节点 | 拖动输出端口到输入端口 |
| 删除节点 | 选中 → Delete 键 |
| 框选多个节点 | 拖动鼠标框选 |
| 移动画布 | 按住中键拖动 / 空格+左键 |
| 缩放画布 | 滚轮 |
| 运行工作流 | 点击 Queue Prompt |
核心概念#
节点(Node)#
节点是 ComfyUI 的基本单元,每个节点负责特定功能。节点有输入(左侧)和输出(右侧)端口。
常用节点分类:
📦 模型加载 - Load Checkpoint:加载主模型(SD 1.5/SDXL/Flux) - Load VAE:加载 VAE 模型 - Load LoRA:加载 LoRA 模型
📝 文本处理 - CLIP Text Encode:文本转 Conditioning - Conditioning Combine:合并条件
🎨 采样生成 - KSampler:核心采样器 - KSampler Advanced:高级采样器
🖼️ 图像处理 - VAE Decode:潜空间→图像 - VAE Encode:图像→潜空间 - Load Image:加载图片 - Save Image:保存图片工作流(Workflow)#
工作流是由多个节点按逻辑连接形成的图像生成管线。可以保存为 JSON 文件分享给他人。
基础工作流#
文生图(Text to Image)#
最基本的工作流,从文字生成图像:
节点连接:[Load Checkpoint] → model → [KSampler] → clip → [CLIP Text Encode (正向)] → positive → [KSampler] → [CLIP Text Encode (负向)] → negative → [KSampler] → vae → [VAE Decode] ← latent ← [KSampler] ↓[Empty Latent Image] → latent → [KSampler] ↓ [Save Image]关键参数:
| 参数 | 说明 | 推荐值 |
|---|---|---|
| steps | 采样步数 | 20-30 |
| cfg | 提示词引导强度 | 7-8 |
| sampler_name | 采样器 | euler_ancestral |
| scheduler | 调度器 | normal |
| denoise | 去噪强度 | 1.0 |
图生图(Image to Image)#
基于已有图像生成新图像:
[Load Image] → [VAE Encode] → latent → [KSampler] (denoise: 0.5-0.8) ↑ [Load VAE]denoise 值越低,越接近原图;越高,变化越大。
图像放大(Upscale)#
两种常用放大方式:
1. 潜空间放大
[KSampler] → latent → [Upscale Latent] → [KSampler] → [VAE Decode]2. 使用放大模型
[VAE Decode] → [Upscale with Model] → [Save Image] ↑ [Load Upscale Model]模型管理#
目录结构#
ComfyUI/├── models/│ ├── checkpoints/ # 主模型 (.safetensors)│ ├── vae/ # VAE 模型│ ├── loras/ # LoRA 模型│ ├── controlnet/ # ControlNet 模型│ ├── upscale_models/ # 放大模型│ └── embeddings/ # Textual Inversion推荐模型#
基础模型:
| 模型 | 类型 | 特点 |
|---|---|---|
| SD 1.5 | 通用 | 生态最丰富,资源多 |
| SDXL | 通用 | 质量更高,需要更多显存 |
| Flux | 通用 | 最新模型,效果优秀 |
| Realistic | 写实 | 真人照片风格 |
| Anything | 二次元 | 动漫风格 |
放大模型:
- RealESRGAN_x4plus:通用放大- 4x-UltraSharp:细节增强- 4x_NMKD-Superscale:写实照片ControlNet#
ControlNet 可以通过边缘、深度、姿势等信息精确控制生成结果。
常用 ControlNet 模型#
| 模型 | 输入 | 用途 |
|---|---|---|
| Canny | 边缘检测图 | 保持结构轮廓 |
| Depth | 深度图 | 控制空间层次 |
| OpenPose | 姿势骨架 | 控制人物姿势 |
| Lineart | 线稿 | 线稿上色 |
| Tile | 原图分块 | 图像修复/放大 |
ControlNet 工作流#
[Load Image] → [Canny Edge] → image → [Apply ControlNet] ↓[Load ControlNet Model] → control_net → [Apply ControlNet] ↓ → positive → [KSampler]自定义节点#
ComfyUI 支持安装社区开发的自定义节点扩展功能。
ComfyUI Manager#
推荐安装 ComfyUI Manager,可以方便地管理自定义节点:
cd ComfyUI/custom_nodesgit clone https://github.com/ltdrdata/ComfyUI-Manager.git重启后在菜单中会出现 Manager 按钮。
常用自定义节点#
- ComfyUI-Impact-Pack:高级图像处理- ComfyUI-AnimateDiff:视频生成- ComfyUI-VideoHelperSuite:视频处理- ComfyUI-Advanced-ControlNet:高级 ControlNet- ComfyUI-Custom-Scripts:实用脚本工作流分享#
导出工作流#
- 在画布右键 → Save
- 保存为
.json文件
导入工作流#
- 将
.json文件拖入画布 - 或右键 → Load
工作流资源#
- https://openart.ai/workflows - 大量免费工作流- https://civitai.com - 模型和工作流- GitHub 搜索 "ComfyUI workflow"性能优化#
显存不足#
# 启用低显存模式python main.py --lowvram
# 更激进的低显存python main.py --novram
# 使用 CPU(很慢)python main.py --cpu提升速度#
# 启用 FP16(推荐)python main.py --force-fp16
# 使用 xformers(需要单独安装)pip install xformers常见启动参数#
| 参数 | 说明 |
|---|---|
--listen | 允许远程访问 |
--port 8188 | 指定端口 |
--force-fp16 | 强制使用 FP16 |
--lowvram | 低显存模式 |
--preview-method auto | 启用预览 |
常见问题#
节点报错 “Required input missing”#
检查节点的必需输入是否都已连接。
生成的图像全黑/全白#
可能原因:
- VAE 模型问题 → 尝试加载外置 VAE
- CFG 值过高 → 降低到 7-8
- 模型不兼容 → 确认模型类型匹配
找不到模型#
确认模型放置在正确目录,刷新页面或重启 ComfyUI。
自定义节点不显示#
# 进入 custom_nodes 目录cd custom_nodes/xxx
# 安装依赖pip install -r requirements.txt