ComfyUI 工作流 — AI 图像生成的可视化编程语言
ComfyUI 完全指南:用于专业 AI 图像生成的节点式工作流。构建复杂管线、管理依赖关系并创建可共享的工作流模板。
- 更新于 2026-07-16
TL;DR #
ComfyUI 是一个强大的节点式图形界面,用于运行 AI 图像生成模型。它让你通过连接节点而不是编写代码来构建自定义管线。支持 Stable Diffusion、Flux、SDXL 和数十种其他模型。本指南涵盖工作流设计模式、节点管理、性能优化以及如何创建专业级图像生成管线。
ComfyUI 是什么? #
ComfyUI 是一个用于运行 AI 图像生成模型的节点式图形界面。与传统的 UI(你调整滑块然后点击"生成")不同,ComfyUI 让你通过连接处理节点来构建自定义管线——类似于 Blender 的节点系统或 TouchDesigner。
核心理念:让用户完全控制生成过程的每一步。这意味着你可以:
- 串联多个模型(例如:文本 → 图像 → 超分辨率 → 细化)
- 使用条件逻辑(如果 A 则 B 否则 C)
- 同时处理多张图像
- 创建可重用的工作流模板
- 在每个阶段微调每个参数
为什么基于节点的 AI 工作流很重要 #
传统 AI 图像生成器呈现固定管线:你输入提示词、调整设置、得到一张图片。但现实世界的创作工作通常需要:
- 多阶段处理 — 生成基础图像、检测面部、放大特定区域、应用风格迁移
- 条件生成 — 基于检测内容的不同提示词
- 批量处理 — 高效生成变体
- 自定义后处理 — 应用特定的滤镜、合成或修正
基于节点的工作流原生处理所有这些。
核心概念 #
节点和连接 #
ComfyUI 中的每个操作都是一个节点——一个具有输入和输出的自包含处理单元:
[加载检查点] → [CLIP 文本编码] → [KSampler] → [VAE 解码] → [保存图像]
│ │ │ │
模型 正向/负向提示 种子/采样数 输出
每种节点类型处理特定任务:
- 模型加载: 加载 Stable Diffusion 检查点、LoRA、嵌入
- 文本编码: 将提示词转换为潜在空间表示
- 采样: 使用各种算法生成图像(Euler、DPM++、DDIM)
- 后处理: 超分辨率、颜色校正、面部增强
- 输出: 保存图像、流式传输结果、触发下游动作
工作流架构 #
完整的 ComfyUI 工作流遵循此模式:
# 概念流程(实际 ComfyUI 使用视觉连接)
workflow = {
"input": {
"prompt_positive": "日落时分的宁静湖泊,照片真实感",
"prompt_negative": "模糊、低质量、变形",
"seed": 42,
"steps": 30,
"cfg_scale": 7.5
},
"pipeline": [
"load_checkpoint(sdxl_v1.0)",
"encode_prompts(positive, negative)",
"generate_latents(seed, steps, cfg)",
"decode_latents(vae_model)",
"post_process(image, upscale=2x)"
],
"output": {
"format": "png",
"resolution": "1024x1024",
"save_path": "./outputs/"
}
}
关键节点类别 #
| 类别 | 用途 | 示例 |
|---|---|---|
| 模型加载 | 加载基础模型和扩展 | CheckpointLoader, LoraLoader |
| 条件处理 | 处理文本提示 | CLIPTextEncode, Condition |
| 采样 | 生成图像 | KSampler, Euler, DPM++ |
| 潜在空间 | 操纵潜在表示 | EmptyLatentImage, LatentUpscale |
| VAE | 在像素空间和潜在空间之间编解码 | VAELoader, VAE Decode |
| 后处理 | 增强和修改输出 | UpscaleImage, FaceRestore |
| ControlNet | 用参考图像引导生成 | ControlNetApply, Preprocessor |
| 输出 | 保存和管理结果 | SaveImage, PreviewImage |
构建你的第一个工作流 #
基本图像生成 #
步骤 1: 加载检查点 → 选择你的模型(SDXL、Flux 等)
步骤 2: CLIP 文本编码 → 输入正向和负向提示词
步骤 3: KSampler → 设置步数(20-50)、CFG(7-12)、种子
步骤 4: VAE 解码 → 将潜在空间转换为像素空间
步骤 5: 保存图像 → 选择格式和位置
高级:多阶段管线 #
为了获得专业结果,串联多个阶段:
阶段 1: 基础生成
├── 加载检查点(SDXL)
├── 编码提示词
└── KSampler(低分辨率,快速)
阶段 2: 面部增强
├── 加载 FaceRestore 模型
├── 检测面部
└── 修复面部
阶段 3: 超分辨率
├── 加载超分模型(4x)
├── 潜在放大(2x)
└── 像素放大(2x)
阶段 4: 最终精修
├── 色彩校正
├── 细节增强
└── 保存高分辨率 PNG
流行工作流模式 #
模式一:迭代细化 #
生成基础图像,评估,然后细化特定方面:
{
"workflow_id": "iterative-refinement",
"stages": [
{"name": "base", "steps": 20, "resolution": "512x512"},
{"name": "refine", "steps": 40, "resolution": "1024x1024", "denoise": 0.6},
{"name": "detail", "steps": 30, "resolution": "2048x2048", "denoise": 0.3}
]
}
模式二:批量变体生成 #
为比较生成多个变体:
{
"workflow_id": "batch-variations",
"config": {
"base_prompt": "未来主义城市景观",
"variations": [
{"seed": 100, "style": "赛博朋克"},
{"seed": 200, "style": "装饰艺术"},
{"seed": 300, "style": "粗野主义"},
{"seed": 400, "style": "亲生物"}
],
"parallel_workers": 4
}
}
模式三:ControlNet 引导生成 #
使用参考图像引导构图:
输入: 参考图像
↓
Canny 边缘检测 → ControlNet(边缘引导)
↓
深度估计 → ControlNet(深度引导)
↓
组合条件 → KSampler
↓
最终图像,精确的构图控制
模式四:图生图管线 #
转换现有图像同时保留结构:
原始图像 → 编码(VAE)→ 添加噪声 → KSampler(去噪)→ 解码(VAE)→ 结果
调整去噪强度(0.1-0.9)来控制变换强度。
模型管理 #
支持的模型 #
ComfyUI 支持广泛的模型:
| 模型类型 | 示例 | 最佳用途 |
|---|---|---|
| Stable Diffusion 1.5 | sd-v1-5, dreamshaper | 快速原型设计 |
| SDXL | sdxl_v1.0, juggernaut | 高质量基础 |
| Flux | flux-dev, flux-schnell | 照片真实感 |
| 自定义检查点 | 任何 Civitai 模型 | 特定风格 |
| LoRAs | 特定风格的微调 | 风格迁移 |
| 嵌入 | 负向提示、概念 | 提示词增强 |
安装模型 #
# 下载模型到 ComfyUI/models/checkpoints/
wget -P models/checkpoints/ https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors
# 安装 LoRA
wget -P models/loras/ https://civitai.com/api/download/models/12345
# 安装 VAE
wget -P models/vae/ https://huggingface.co/stabilityai/sdxl-vae/resolve/main/sdxl_vae.safetensors
管理依赖项 #
{
"dependencies": {
"checkpoints": ["sdxl_v1.0.safetensors"],
"loras": ["realism_lora_v2.safetensors"],
"vae": ["sdxl_vae.safetensors"],
"controlnet": ["control_canny.safetensors"],
"upscale": ["4x-UltraSharp.pth"]
}
}
性能优化 #
GPU 内存管理 #
# 针对不同 GPU 大小进行优化
optimization_config = {
"24GB_GPU": {
"precision": "fp16",
"attention": "flash_attention_2",
"vram_optimize": True
},
"12GB_GPU": {
"precision": "fp16",
"attention": "xformers",
"vram_optimize": True,
"split_execution": True
},
"8GB_GPU": {
"precision": "fp16",
"attention": "xformers",
"vram_optimize": True,
"split_execution": True,
"lowvram_mode": True
}
}
批量处理速度 #
| 配置 | 每分钟图像数 | 质量 |
|---|---|---|
| 单张,SDXL,30 步 | 2-3 | 高 |
| 批量 4,SDXL,30 步 | 8-12 | 高 |
| 批量 8,SD 1.5,20 步 | 16-24 | 中 |
| 单张,Flux,25 步 | 1-2 | 非常高 |
缓存策略 #
{
"caching": {
"checkpoint_cache": true,
"lora_cache": true,
"vae_cache": true,
"embeddings_cache": true,
"max_cache_size_gb": 8
}
}
高级技巧 #
技巧一:分层生成 #
先在低分辨率生成,然后逐步放大:
低分辨率 (512x512) → 中分辨率 (1024x1024) → 高分辨率 (2048x2048)
↓ ↓ ↓
粗略细节 精细细节 超细节
技巧二:基于区域的编辑 #
编辑图像的特定部分而不影响其他部分:
蒙版选择 → 修复节点 → 局部提示词 → KSampler(仅蒙版区域)
技巧三:风格迁移管线 #
在保留内容的同时应用艺术风格:
内容图像 → CLIP Vision → 风格参考 → 交叉注意力 → KSampler
技巧四:自动化质量评分 #
自动评分和过滤生成的图像:
生成图像 → CLIP 评分节点 → 过滤(> 阈值)→ 保存最佳
常见问题排查 #
问题一:显存不足错误 #
错误:CUDA out of memory
修复方法:
- 减少批量大小
- 启用
--lowvram标志 - 使用 fp16 精度
- 关闭其他 GPU 应用程序
- 将工作流拆分为更小的阶段
问题二:生成速度慢 #
警告:生成时间超过预期
修复方法:
- 使用更快的采样器(Euler a、DPM++ 2M)
- 减少步数(大多数情况下 20-25)
- 启用 Flash Attention
- 使用 SD 1.5 代替 SDXL 以获得速度
- 将模型预加载到 VRAM
问题三:输出质量差 #
图像看起来模糊或有伪影
修复方法:
- 将步数增加到 30-50
- 调整 CFG 比例(7-12)
- 使用更好的检查点/LoRA
- 启用高清修复
- 检查负向提示词质量
对比:ComfyUI vs 替代方案 #
| 功能 | ComfyUI | Automatic1111 | Fooocus | SD WebUI Forge |
|---|---|---|---|---|
| 基于节点的 UI | ✅ | ❌ | ❌ | ❌ |
| 自定义管线 | ✅ | 有限 | ❌ | 有限 |
| 性能 | 优秀 | 良好 | 良好 | 优秀 |
| 学习曲线 | 陡峭 | 中等 | 简单 | 中等 |
| 扩展生态 | 增长中 | 大型 | 小型 | 增长中 |
| 多 GPU 支持 | ✅ | ✅ | ❌ | ✅ |
ComfyUI 在复杂自定义工作流方面胜出。其他工具对于简单生成更容易上手。
入门指南 #
安装 #
# 克隆 ComfyUI
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
# 安装依赖
pip install -r requirements.txt
# 下载模型(可选,首次运行时会自动下载)
# 放置在 models/checkpoints/ 目录
# 启动 ComfyUI
python main.py --listen 0.0.0.0 --port 8188
浏览器界面 #
在浏览器中打开 http://localhost:8188。你会看到:
- 用于构建工作流的空画布
- 右侧的节点库
- 设置面板(齿轮图标)
- 队列和标签页
加载预设 #
ComfyUI 包含许多预设工作流:
- 基础: 简单文生图
- 图生图: 图像到图像变换
- ControlNet: 参考引导生成
- 超分: 分辨率增强
- AnimateDiff: 动画生成
社区资源 #
流行工作流模板 #
- Juggernaut 工作流: 专业照片真实感生成
- DreamShaper 流程: 艺术和插图风格
- RealVis 管线: 真实肖像生成
- Flux Dev 设置: 最新 Flux 模型工作流
- ControlNet Studio: 高级姿势和构图控制
在哪里找到工作流 #
- Civitai: 社区共享工作流和模型
- ComfyUI Manager: 内置工作流市场
- GitHub: 开源工作流集合
- Discord: 活跃社区分享技巧和模板
FAQ #
Q: 我需要强大的 GPU 才能使用 ComfyUI 吗? #
ComfyUI 比大多数替代方案更高效。12GB GPU(RTX 3060/4070)可以很好地处理 SDXL。即使 8GB 显卡配合优化也可以使用。纯 CPU 模式可行但非常慢。
Q: 我可以将 ComfyUI 用于视频生成吗? #
可以。使用 AnimateDiff 和其他动画节点,你可以生成短视频和 GIF。工作流会在帧之间添加时间一致性节点。
Q: 我如何与他人共享工作流? #
导出为 .json 或 .png 文件。通过 Civitai、GitHub 或 Discord 共享。接收者通过将文件拖到 ComfyUI 画布上来导入。
Q: ComfyUI 是免费的吗? #
是的,ComfyUI 完全免费且开源。你只需支付电费和本机 GPU 时间。一些社区节点可能需要单独下载模型。
Q: 我可以将 ComfyUI 与云 GPU 一起使用吗? #
当然可以。ComfyUI 适用于任何 GPU 云平台:RunPod、Vast.ai、Lambda Labs、AWS EC2、Google Cloud。只需安装并指向你的模型文件。
Q: ComfyUI 和 ComfyUI Manager 有什么区别? #
ComfyUI 是核心应用程序。ComfyUI Manager 是一个扩展,使安装模型、节点和工作流变得容易得多。首先安装它以获得最佳体验。
参考资料 #
加入我们的 Telegram 群组获取实时 AI 工具讨论和部署技巧:t.me/dibi8
💬 留言讨论