ComfyUI 介绍

前言
ComfyUI 是一款基于节点/图形界面的 Stable Diffusion 工作流工具,通过可视化节点连接的方式,让用户能够灵活地构建和调整 AI 图像生成流程。
与传统的 WebUI(如 AUTOMATIC1111)不同,ComfyUI 采用节点编辑器的方式,让每一步操作都变得清晰可见,用户可以自由组合不同的模块,实现高度定制化的图像生成。
什么是 ComfyUI
ComfyUI 是一个基于节点的 Stable Diffusion 图形用户界面。它使用流程图的方式,将图像生成的每个步骤抽象为节点(Node),用户通过拖拽和连线来构建完整的生成流程。
核心特点:
- 节点化流程:每个操作(加载模型、编码提示词、采样、解码等)都是一个独立的节点,流程一目了然。
- 高度可定制:可以自由组合节点,实现复杂的图像生成逻辑。
- 内存效率高:只加载当前需要的模型,显存占用更少。
- 工作流可复用:可以将构建好的工作流保存为 JSON 文件或直接导出为图片,方便分享和复用。
- 支持最新技术:通常能更快地支持 Stable Diffusion 生态中的最新模型和技术。
ComfyUI 与 WebUI 的对比
| 特性 | ComfyUI | AUTOMATIC1111 WebUI |
|---|---|---|
| 操作方式 | 节点连线 | 传统表单/选项卡 |
| 学习曲线 | 较陡 | 较平缓 |
| 灵活性 | 极高 | 中等 |
| 显存占用 | 较低 | 较高 |
| 工作流复用 | 原生支持 | 需插件 |
| 批量处理 | 灵活 | 支持 |
| 社区生态 | 快速增长 | 成熟 |
安装与配置
1. 环境要求
- 操作系统:Windows / Linux / macOS
- 显卡:NVIDIA 显卡(推荐 6GB 以上显存),支持 AMD 和 Intel Arc(实验性)
- Python:3.10 或以上版本
- 存储空间:至少 50GB(用于存放模型文件)
2. 安装方式
方式一:官方整合包(推荐新手)
直接从 ComfyUI 的 GitHub Releases 页面下载整合包,解压后运行 run_nvidia_gpu.bat(NVIDIA 显卡)即可。
方式二:手动安装
# 克隆仓库
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
# 创建虚拟环境
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/macOS
source venv/bin/activate
# 安装依赖
pip install -r requirements.txt
# 启动
python main.py
启动后,在浏览器中访问 http://127.0.0.1:8188 即可看到 ComfyUI 界面。
3. 模型放置
模型文件需要放置在对应的目录下:
| 模型类型 | 目录路径 |
|---|---|
| Checkpoint 大模型 | ComfyUI/models/checkpoints/ |
| VAE 模型 | ComfyUI/models/vae/ |
| LoRA 模型 | ComfyUI/models/loras/ |
| ControlNet 模型 | ComfyUI/models/controlnet/ |
| Embedding | ComfyUI/models/embeddings/ |
| Upscale 模型 | ComfyUI/models/upscale_models/ |
| CLIP 模型 | ComfyUI/models/clip/ |
界面介绍
1. 主界面布局
ComfyUI 的界面主要由以下几个部分组成:
- 画布区域:中间最大的区域,用于放置和连接节点,构建工作流。
- 菜单栏:顶部包含常用操作按钮。
- 节点面板:右键画布空白处弹出,可以搜索和添加节点。
- 提示词输入框:部分节点中包含文本输入区域。
2. 核心概念
节点(Node)
每个节点代表一个独立的操作单元。节点左侧有输入点(Input),右侧有输出点(Output)。通过将输出点连接到另一个节点的输入点来传递数据。
连线(Connection)
连线表示数据在节点之间的流向。例如,CLIP Text Encode 节点的输出连接到 KSampler 的 positive 输入。
工作流(Workflow)
一个完整的工作流由多个节点和连线组成,定义了从输入到输出的完整图像生成过程。
基础工作流
1. 文生图(Text-to-Image)
一个最基本的文生图工作流包含以下节点:
Load Checkpoint → CLIP Text Encode (正向) → KSampler → VAE Decode → Save Image
→ CLIP Text Encode (负向) ↗
各节点说明:
- Load Checkpoint:加载大模型,输出 Model、CLIP 和 VAE。
- CLIP Text Encode:将文本提示词编码为模型可理解的向量。
- KSampler:核心采样节点,根据提示词和模型生成潜空间图像。参数包括步数、CFG Scale、采样器名称、调度器等。
- VAE Decode:将潜空间图像解码为可见的 PNG 图像。
- Save Image:保存生成的图像到本地。
2. 图生图(Image-to-Image)
图生图工作流需要额外添加图像加载和编码节点:
Load Image → VAE Encode → KSampler → VAE Decode → Save Image
Load Checkpoint ↗ ↗
CLIP Text Encode ↗
关键参数:
- denoise(降噪强度):控制对原图的修改程度,值越大变化越大(0~1)。
3. 常用采样参数说明
| 参数 | 说明 | 推荐值 |
|---|---|---|
| Seed | 随机种子,固定可获得可复现结果 | 随机或固定 |
| Steps | 采样步数 | 20-40 |
| CFG Scale | 提示词引导强度 | 5-8 |
| Sampler | 采样器 | Euler a、DPM++ 2M Karras |
| Scheduler | 调度器 | Karras、Normal |
进阶功能
1. LoRA 模型的使用
LoRA(Low-Rank Adaptation)是一种轻量级模型微调技术,可以影响生成图像的风格、角色、姿势等。
在 ComfyUI 中使用 LoRA 非常简单,只需在 Load Checkpoint 和 CLIP Text Encode 之间插入 Load LoRA 节点,并调整权重即可。
Load Checkpoint → Load LoRA → CLIP Text Encode → ...
model_weight 和 clip_weight 分别控制 LoRA 对模型和 CLIP 的影响程度,通常设为 0.5-1.0。
2. ControlNet 的使用
ControlNet 是一个强大的控制网络,可以让用户通过参考图像来控制生成图像的构图、姿势、深度等。
常用 ControlNet 类型:
- Canny(边缘检测):控制图像的整体构图和轮廓。
- Depth(深度图):控制图像的深度和空间关系。
- OpenPose(姿态):控制人物姿态。
- Scribble(涂鸦):通过简单涂鸦引导构图。
- IP-Adapter:通过参考图像引导风格和内容。
工作流示例:
Load Image → Canny Edge Detector → ControlNet Apply → KSampler → ...
Load Checkpoint → ... ↗
3. 图像放大(Upscale)
ComfyUI 提供多种图像放大方式:
- Latent Upscale:在潜空间中进行放大,速度快但细节可能不够。
- Upscale Model:使用专门的放大模型(如 ESRGAN、4x-UltraSharp)进行像素级放大,效果更好。
- Ultimate SD Upscale:分块放大,适合大幅放大,能有效避免显存溢出。
4. 区域提示(Regional Prompting)
通过区域提示功能,可以在图像的不同区域应用不同的提示词,实现精细化的画面控制。这在需要复杂构图时非常有用。
工作流管理
1. 保存与加载
- 保存:点击菜单栏的 “Save” 按钮,将当前工作流保存为 JSON 文件。
- 加载:将 JSON 文件拖入 ComfyUI 窗口即可加载。
- 导出为图片:ComfyUI 生成的图片中嵌入了工作流信息,将图片拖入 ComfyUI 可以还原完整工作流。
2. 工作流分享
ComfyUI 的工作流天然适合分享:
- 可以直接分享 JSON 文件。
- 可以通过生成的图片传递工作流。
- 社区平台(如 Civitai、OpenArt)上有大量现成的工作流可供下载。
常用插件推荐
ComfyUI 拥有丰富的插件生态系统,以下是一些常用插件:
- ComfyUI Manager:插件管理器,可以方便地安装、更新和管理其他插件。
- Efficiency Nodes:提供一系列效率节点,简化常见操作。
- ControlNet Auxiliary Preprocessors:提供 ControlNet 预处理节点。
- AnimateDiff Evolved:支持动画生成。
- WAS Node Suite:提供大量实用节点,如图像处理、文本处理等。
- Impact Pack:提供区域性提示、面部细化等功能。
性能优化建议
1. 显存优化
- 使用
--lowvram参数启动,降低显存占用。 - 使用
--force-fp16参数,强制使用半精度计算。 - 关闭不用的节点,及时释放显存。
2. 生成速度优化
- 使用
--highvram参数(显存充足时),将模型常驻显存。 - 考虑使用 TensorRT 加速。
- 使用 LCM 采样器或 Turbo 模型,减少采样步数。
3. 批量处理
可以通过添加 Batch 节点或使用 Queue 功能实现批量图像生成,适合需要大量出图的场景。
常见问题
Q:ComfyUI 启动后提示缺少模型?
A:确保模型文件已放置在正确的目录下,并且文件名与工作流中引用的模型名称一致。
Q:生成的图片是全黑的?
A:通常是因为 VAE 模型不匹配或缺失。检查 Load Checkpoint 节点的 VAE 输出,或尝试使用独立的 Load VAE 节点。
Q:如何更新 ComfyUI?
A:在 ComfyUI 目录下执行 git pull 即可更新。如果使用 ComfyUI Manager,也可以通过它来更新。
Q:工作流中某个节点报错?
A:通常是因为缺少该节点所需的自定义插件。建议安装 ComfyUI Manager 插件,它会自动检测并提示缺失的节点插件。
结语
ComfyUI 以其灵活、高效的节点化工作流,正在成为 AI 绘画领域越来越重要的工具。虽然学习曲线比传统 WebUI 稍陡,但一旦掌握,你将能够实现更复杂、更精细的图像生成控制。
随着 Stable Diffusion 生态的不断发展,ComfyUI 凭借其模块化架构,能够更快地适配新技术,是值得深入学习的 AI 绘画工具。
推荐资源: