高级工作流 #
ComfyUI 简介 #
什么是 ComfyUI? #
ComfyUI 是一个基于节点的 Stable Diffusion 界面,提供更高的灵活性和可定制性。
text
┌─────────────────────────────────────────────────────────────┐
│ ComfyUI 特点 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 节点式界面 │
│ ├── 每个功能是一个节点 │
│ ├── 节点之间通过连线连接 │
│ └── 可视化工作流程 │
│ │
│ 高度灵活 │
│ ├── 完全控制生成流程 │
│ ├── 可创建复杂工作流 │
│ └── 支持自定义节点 │
│ │
│ 高效执行 │
│ ├── 只执行改变的部分 │
│ ├── 缓存中间结果 │
│ └── 批量处理优化 │
│ │
│ 可扩展 │
│ ├── 丰富的自定义节点 │
│ ├── 社区贡献的工作流 │
│ └── API 支持 │
│ │
└─────────────────────────────────────────────────────────────┘
ComfyUI vs WebUI #
text
对比分析:
┌─────────────────┬─────────────────┬─────────────────┐
│ 特性 │ WebUI │ ComfyUI │
├─────────────────┼─────────────────┼─────────────────┤
│ 界面类型 │ 表单式 │ 节点式 │
│ 学习曲线 │ 低 │ 高 │
│ 灵活性 │ 中 │ 极高 │
│ 复杂工作流 │ 有限 │ 完全支持 │
│ 批量处理 │ 基础 │ 强大 │
│ 自动化 │ 有限 │ 完全支持 │
│ 资源占用 │ 较高 │ 较低 │
│ 适合人群 │ 初学者 │ 专业用户 │
└─────────────────┴─────────────────┴─────────────────┘
选择建议:
├── 新手入门: WebUI
├── 日常使用: WebUI 或 ComfyUI
├── 复杂工作流: ComfyUI
├── 批量处理: ComfyUI
└── 开发集成: ComfyUI
ComfyUI 基础 #
基本节点 #
text
核心节点类型:
1. 模型加载
Load Checkpoint
├── 加载主模型
└── 输出: Model, CLIP, VAE
2. 提示词
CLIP Text Encode (Positive)
CLIP Text Encode (Negative)
├── 输入: CLIP, 文本
└── 输出: Conditioning
3. 空白潜空间
Empty Latent Image
├── 设置分辨率
└── 输出: Latent
4. 采样
KSampler
├── 输入: Model, Positive, Negative, Latent
├── 参数: Steps, CFG, Sampler, Seed
└── 输出: Latent
5. 解码
VAE Decode
├── 输入: Latent, VAE
└── 输出: Image
6. 保存
Save Image
└── 保存生成的图像
基础工作流 #
text
基础文生图工作流:
┌─────────────────────────────────────────────────────────────┐
│ │
│ ┌──────────────┐ │
│ │ Load │ │
│ │ Checkpoint │───┬──────────────────┐ │
│ └──────────────┘ │ │ │
│ ▼ ▼ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ CLIP Text │ │ CLIP Text │ │
│ │ Encode (+) │ │ Encode (-) │ │
│ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────┐┌──────────────────────┐ │
│ │ Empty Latent ││ KSampler │ │
│ │ Image │└──────────┬───────────┘ │
│ └──────────────┘ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ VAE Decode │ │
│ └──────┬───────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ Save Image │ │
│ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
节点操作 #
text
节点操作指南:
添加节点:
├── 双击空白处
├── 搜索节点名称
└── 点击添加
连接节点:
├── 从输出端口拖动到输入端口
└── 不同类型端口颜色不同
删除节点:
├── 选中节点
└── 按 Delete 键
复制节点:
├── 选中节点
└── Ctrl+C / Ctrl+V
移动画布:
├── 拖动空白处
└── 或使用中键
缩放:
└── 鼠标滚轮
搜索节点:
├── 双击空白处
└── 输入搜索词
高级工作流 #
多 LoRA 工作流 #
text
多 LoRA 加载工作流:
┌─────────────────────────────────────────────────────────────┐
│ │
│ ┌──────────────┐ │
│ │ Load │ │
│ │ Checkpoint │ │
│ └──────┬───────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ LoRA Loader │ │ LoRA Loader │ │
│ │ (Style) │ │ (Character) │ │
│ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │
│ └───────┬───────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ Model │ │
│ │ (Combined) │ │
│ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
说明:
├── 多个 LoRA Loader 节点
├── 连接到同一个 Model
├── 可调整每个 LoRA 权重
└── 自动叠加效果
ControlNet 工作流 #
text
ControlNet 工作流:
┌─────────────────────────────────────────────────────────────┐
│ │
│ ┌──────────────┐ │
│ │ Load Image │ │
│ └──────┬───────┘ │
│ │ │
│ ├──────────────────┐ │
│ ▼ ▼ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ Canny │ │ OpenPose │ │
│ │ Preprocessor │ │ Preprocessor │ │
│ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ ControlNet │ │ ControlNet │ │
│ │ Apply │ │ Apply │ │
│ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │
│ └───────┬──────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ KSampler │ │
│ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
说明:
├── 加载参考图像
├── 应用预处理器
├── ControlNet Apply 节点
├── 可叠加多个 ControlNet
└── 连接到 KSampler
图生图工作流 #
text
img2img 工作流:
┌─────────────────────────────────────────────────────────────┐
│ │
│ ┌──────────────┐ │
│ │ Load Image │ │
│ └──────┬───────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ VAE Encode │ │
│ │ Image │ │
│ └──────┬───────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ KSampler │ │
│ │ (with denoise) │
│ └──────┬───────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ VAE Decode │ │
│ └──────┬───────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ Save Image │ │
│ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
说明:
├── 加载输入图像
├── VAE Encode 编码到潜空间
├── KSampler 设置 denoise 参数
└── 控制修改程度
批量生成工作流 #
text
批量生成工作流:
方法一:批量潜空间
┌─────────────────────────────────────────────────────────────┐
│ ┌──────────────┐ │
│ │ Empty Latent │ │
│ │ batch_size: 4│ │
│ └──────┬───────┘ │
│ │ │
│ ▼ │
│ 一次生成 4 张图像 │
└─────────────────────────────────────────────────────────────┘
方法二:循环生成
┌─────────────────────────────────────────────────────────────┐
│ 使用 Primitive 节点 │
│ ├── 设置 seed_increment │
│ └── 自动递增种子 │
│ │
│ 或使用自定义循环节点 │
└─────────────────────────────────────────────────────────────┘
方法三:XY Plot
┌─────────────────────────────────────────────────────────────┐
│ 使用 XY Plot 节点 │
│ ├── X 轴: 不同参数 │
│ ├── Y 轴: 不同参数 │
│ └── 自动生成对比图 │
└─────────────────────────────────────────────────────────────┘
自定义节点 #
常用自定义节点 #
text
推荐自定义节点:
1. ComfyUI-Manager
├── 节点管理器
├── 安装/更新节点
└── 必装
2. ComfyUI-Impact-Pack
├── 丰富功能
├── 面部检测
└── 自动修复
3. ComfyUI-ControlNet-Aux
├── ControlNet 预处理器
└── 更多预处理器
4. ComfyUI_IPAdapter_plus
├── IP-Adapter 支持
└── 图像参考
5. ComfyUI-AnimateDiff
├── 动画生成
└── 视频创作
6. WAS Node Suite
├── 大量实用节点
└── 图像处理
安装自定义节点 #
text
安装方法:
方法一:ComfyUI Manager
┌─────────────────────────────────────────────────────────────┐
│ 1. 点击 Manager 按钮 │
│ 2. 搜索节点名称 │
│ 3. 点击 Install │
│ 4. 重启 ComfyUI │
└─────────────────────────────────────────────────────────────┘
方法二:手动安装
┌─────────────────────────────────────────────────────────────┐
│ cd ComfyUI/custom_nodes │
│ git clone [节点仓库地址] │
│ 重启 ComfyUI │
└─────────────────────────────────────────────────────────────┘
工作流管理 #
保存和加载 #
text
工作流保存:
保存方式:
├── Save (JSON): 保存工作流
├── Save (API Format): API 格式
└── Export: 导出为文件
加载方式:
├── Load: 加载工作流文件
├── Drag & Drop: 拖放文件
└── 默认加载: 自动加载上次工作流
工作流文件:
├── 格式: .json
├── 包含: 节点配置和连接
└── 不包含: 模型文件
工作流分享 #
text
分享工作流:
方法一:导出 JSON
├── 导出工作流文件
├── 分享 .json 文件
└── 接收者导入即可
方法二:嵌入图像
├── 保存图像时嵌入工作流
├── 分享图像
└── 拖入 ComfyUI 自动加载
方法三:截图
├── 截取工作流截图
├── 分享截图
└── 参考重建
社区资源:
├── ComfyWorkflows.com
├── OpenArt.ai
└── Civitai Workflows
自动化技巧 #
队列系统 #
text
ComfyUI 队列:
队列功能:
├── 添加多个任务
├── 自动依次执行
└── 后台运行
使用方法:
├── Queue Prompt: 添加到队列
├── Queue size: 查看队列数量
└── 可设置自动队列
批量处理:
├── 设置不同种子
├── 添加到队列
└── 自动批量生成
API 自动化 #
text
ComfyUI API:
启用 API:
├── 启动时添加 --listen
└── 默认端口: 8188
API 端点:
├── POST /prompt: 提交任务
├── GET /history: 查询历史
├── GET /view: 获取图像
└── WS /ws: WebSocket 连接
Python 调用示例:
┌─────────────────────────────────────────────────────────────┐
│ import requests │
│ import json │
│ │
│ # 加载工作流 │
│ with open('workflow.json') as f: │
│ workflow = json.load(f) │
│ │
│ # 提交任务 │
│ response = requests.post( │
│ 'http://127.0.0.1:8188/prompt', │
│ json={'prompt': workflow} │
│ ) │
└─────────────────────────────────────────────────────────────┘
性能优化 #
显存优化 #
text
显存优化技巧:
1. 使用低显存模式
└── 启动参数: --lowvram
2. 模型卸载
└── 自动卸载不用的模型
3. 批量处理优化
└── 合理设置 batch size
4. 使用 fp16
└── 默认启用
5. xformers
└── 启动参数: --xformers
速度优化 #
text
生成速度优化:
1. 使用高效采样器
├── DPM++ 2M
└── LCM
2. 减少步数
└── 20-25 步通常足够
3. 使用 TensorRT
└── 加速推理
4. 批量生成
└── 一次生成多张
5. 缓存优化
└── 利用 ComfyUI 缓存
下一步 #
掌握高级工作流后,继续学习:
最后更新:2026-04-05