ComfyUI:节点式扩散模型工作流搭建
ComfyUI 节点式扩散模型工作流搭建完全指南
ComfyUI 是一款基于节点的 Stable Diffusion 图形界面,通过可视化的方式将扩散模型的各个组件串联成完整的工作流,为 AI 绘画提供极高的灵活性和可复现性。本教程将带你从零开始,理解核心概念并亲手搭建自己的工作流。
认识 ComfyUI:为什么选择节点式界面
传统 AI 绘画工具(如 Automatic1111 WebUI)将所有功能打包在黑盒界面中,参数调整空间有限。ComfyUI 将模型加载、文本编码、采样、解码等每一步都拆解为独立的节点,通过连线传递数据。这让用户能够:
- 精确控制管线:自由组合模型、LoRA、ControlNet 等模块。
- 轻松复用实验:工作流可保存为 JSON 文件,分享即复现。
- 尝试前沿技术:新模型或新方法仅需新增节点,无需等待界面更新。
- 高效批次处理:利用队列和缓存机制,极大提升生产速度。
即使你没有编程基础,只要理解几个关键节点,就能搭建出专业的生成流程。
环境准备:安装与启动
在开始之前,请确保你的系统满足要求:NVIDIA 显卡(建议 6GB 显存以上),已安装 Git 和 Python 3.10。
-
下载 ComfyUI
打开终端,克隆官方仓库:git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI -
安装依赖
使用 pip 安装所需包(建议创建虚拟环境):pip install -r requirements.txt -
放置模型
将下载的 Stable Diffusion 检查点文件(.safetensors 或 .ckpt)放入models/checkpoints/文件夹。常见的模型如 SD1.5、SDXL 或 SD3 均可直接使用。 -
启动界面
运行主程序:python main.py默认会在浏览器中打开
http://127.0.0.1:8188,你将看到画布式的节点编辑区。
核心概念:图与节点
ComfyUI 的工作区本质上是一个有向无环图(DAG),由节点和连线组成。每个节点完成特定计算,输入/输出通过插槽连接。数据从左向右流动:左侧提供条件与噪声,右侧输出图像。
节点类型速览
| 类别 | 常见节点 | 作用 |
|---|---|---|
| 加载器(Loader) | Load Checkpoint, Load VAE, Load LoRA | 将模型或模块加载到显存 |
| 条件(Conditioning) | CLIP Text Encode | 将提示词转为模型可理解的嵌入向量 |
| 潜变量(Latent) | Empty Latent Image, VAE Encode | 生成或处理潜空间中的图像 |
| 采样(Sampling) | KSampler, KSampler Advanced | 执行扩散去噪过程 |
| 解码/图像(Image) | VAE Decode, Save Image | 将潜变量变回像素并保存 |
基础连线规则
- 输出插槽(右侧圆点)必须连接到同类型或兼容类型的输入插槽(左侧圆点)。
- 鼠标悬停在插槽上会显示数据类型(
MODEL、CLIP、VAE、LATENT、CONDITIONING、IMAGE等)。 - 错误连接会立即以红色高亮提示。
搭建你的第一个工作流:文生图
我们将从最简单但完整的文生图流程开始,只需要 7 个节点。
步骤一:加载模型
在画布右键选择 Add Node → loaders → Load Checkpoint。
通过下拉菜单选择你放入 checkpoints/ 文件夹的模型。该节点会输出 MODEL、CLIP 和 VAE 三个数据口。
步骤二:编码提示词
添加两个 CLIP Text Encode 节点(在 conditioning 类中)。
将 Load Checkpoint 节点的 CLIP 输出分别连接到两个文本编码节点的 clip 输入。
在第一个节点输入正向提示词(如“一只在月球上奔跑的柴犬,写实风格,高细节”),第二个输入负向提示词(如“模糊,低质量,变形”)。
步骤三:生成初始潜空间噪声
添加 Empty Latent Image 节点(latent 类)。
设置宽度、高度和批次大小(batch_size)。例如 512×512,批次 1。此节点输出一个符合指定尺寸的随机噪声潜变量。
步骤四:配置采样器
添加 KSampler 节点(sampling 类)。
连接输入:
model:来自 Load Checkpoint 的 MODEL。positive和negative:来自两个文本编码节点的 CONDITIONING。latent_image:来自 Empty Latent Image 的 LATENT。
在 KSampler 的参数中设置:
seed:固定或随机(设为 -1 即为随机)。control_after_generate:生成后种子的变化方式,建议increment。steps:采样步数,SD1.5 推荐 20~30 步。cfg:提示词引导系数,一般 7 左右。sampler_name:如euler或dpmpp_2m。scheduler:如normal或karras。denoise:文生图保持 1.0。
步骤五:解码并保存图像
添加 VAE Decode(latent 类)和 Save Image(image 类)。
将 KSampler 输出的 LATENT 连接到 VAE Decode 的 samples,再将 Load Checkpoint 的 VAE 连接到 VAE Decode 的 vae。
最后将 VAE Decode 输出的 IMAGE 连入 Save Image 的 images,可设置输出前缀名。
点击侧边栏的“Queue Prompt”按钮,几秒后你的第一张 AI 图像即会出现在输出面板中。
进阶工作流:图生图与 ControlNet 引入
实际创作中,我们常常对已有图像进行变化或控制构图。ComfyUI 替换几个节点即可实现。
图生图(Image to Image)
将 Empty Latent Image 替换为以下流程:
- 用
Load Image节点加载一幅参考图。 - 用
VAE Encode节点(使用与主模型相同的 VAE)把像素图像编码到潜空间。 - 将 VAE Encode 输出的 LATENT 连接到 KSampler 的
latent_image输入。 - 在 KSampler 中降低
denoise值(例如 0.6~0.8),数值越小保留原图信息越多。
这样就实现了以原图为基础的重绘或风格化。
加入 ControlNet 精准控制
ControlNet 通过边缘、深度、姿态等条件引导生成。加入步骤如下:
- 下载 ControlNet 模型并放入
models/controlnet/文件夹。 - 添加
Load ControlNet Model节点,选择对应模型(如 canny 控制网)。 - 添加
Apply ControlNet节点,连接:conditioning:来自正向提示词编码后的 CONDITIONING。control_net:来自 Load ControlNet Model 的 CONTROL_NET。image:经过预处理的图像(如 canny 边缘提取的图像)。可使用Canny Edge节点处理输入图像。
- 将
Apply ControlNet输出的新 CONDITIONING 替换掉原来直接连入 KSampler 的正向条件。
这样,生成结果会严格遵循边缘图的线条结构。
LoRA 与多重模型混合
LoRA 是一种轻量级微调模型,可以快速切换风格或角色。
- 将
Load LoRA节点插入到 Load Checkpoint 之后。 - Load Checkpoint 的 MODEL 和 CLIP 分别连接 Load LoRA 的
model和clip输入。 - Load LoRA 再输出新的 MODEL 和 CLIP,传给后续节点。
- 可在参数中调整 LoRA 强度(如 0.8)。堆叠多个 LoRA 节点可以实现风格混合。
工作流保存与加载
完成一个复杂的工作流后,务必保存以复用:
- 点击菜单中的
Workflow→Save或Save As,将生成 JSON 文件。 - 支持拖拽 JSON 文件到画布直接加载,或通过
Load按钮选择。 - 如果你生成了一张图像,ComfyUI 自动将生成该图像的工作流嵌入到 PNG 文件的元数据中。把图片拖入画布即可还原整个工作流(甚至包括当时使用的模型名称和种子)。这一特性对于回溯实验极为有用。
常用技巧与排错
- 节点对齐与整理:使用右键菜单
Align或快捷键Ctrl+G分组,保持画布清晰。 - 队列与批次:通过 Extra Options 可以设置批次数量, 一次生成多张图。
- 显存优化:当显存不足时,启用
--lowvram或--novram启动参数(在启动命令后添加)。ComfyUI 会自动将部分模型卸载以节省显存,代价是生成速度略降。 - 自定义节点:社区提供了大量自定义节点(如效率节点包 Efficiency Nodes、ControlNet 辅助预处理器等),使用 ComfyUI Manager 可以方便地安装和管理。
- 错误排查:如果节点变红,鼠标悬停会显示错误原因。最常见的是数据类型不匹配或缺少模型,检查连接线或模型路径。
结语
ComfyUI 打破了传统 UI 的限制,将扩散模型的生成过程拆解为可组合的“乐高积木”。一旦你习惯了节点式思维,任何新的 AI 绘画技术都能迅速融入自己的工作流。从最简单的文生图到复杂的 ControlNet + IP-Adapter + 多重采样回路,你的创意可以天马行空且精确复现。立即打开画布,用节点搭建属于你的创作管线吧。