ComfyUI、Stable Diffusion 与 ControlNet:从"会画画"到"可控生成"的完整指南
生成式 AI 在 2023~2025 年间迅速改变了创作方式:从插画、广告、电商图,到短视频分镜、产品概念设计,AI 正在成为创作者的"新画笔"。但许多刚入门的人常常被这三个词困住:
-
Stable Diffusion 到底是什么?
-
ControlNet 是插件还是模型?
-
ComfyUI 只是一个界面,为什么大家都说它是"生产力神器"?
这篇文章将从零开始解释这三者的定位与原理,并给出实战工作流示例,让你理解它们如何协作,把"随缘画图"变成"可控生产"。
一、Stable Diffusion 是什么?它为什么能画画?
1. 一句话理解 Stable Diffusion
Stable Diffusion(简称 SD)是一种生成式图像模型:你输入文字描述(Prompt)或图片,它能够生成新的图片。
你可以把它看成一个"会画画的大脑",学过大量图片后,能根据提示词进行创作。
2. Stable Diffusion 的工作方式:从噪声到图像
Stable Diffusion 属于扩散模型(Diffusion Model)。其核心思想是:
-
把真实图片不断加入噪声,直到变成一张"纯噪点图"。
-
训练模型学习反过程:如何一步步把噪声"去掉",恢复出清晰图像。
-
最终在生成时:
从随机噪声开始 → 多步去噪 → 得到符合文本描述的图片。
因此,Stable Diffusion 并不是"拼贴图片",而是一种真正的"生成"和"推理"。
3. Stable Diffusion 系统的关键组件
理解 SD,至少需要知道这三个部分:
UNet(去噪网络)
每一步去噪由 UNet 执行,它决定图像结构、细节、风格与内容,是 SD 的核心"绘画引擎"。
VAE(编码/解码器)
把图像压缩到"潜空间(Latent Space)"里运算,最后再解码回可见图片。它是 SD 高效运行的关键。
Text Encoder(文本编码器)
将 prompt 转成模型可理解的语义向量,让 SD 知道你想要什么。
4. Stable Diffusion 能做什么?
-
文生图(txt2img)
-
图生图(img2img)
-
局部重绘(Inpainting)
-
扩图、修复、超分
-
通过 LoRA/Dreambooth 定制画风、人物
-
与 ControlNet 联动实现结构与姿势控制
二、ControlNet 是什么?为什么说它解决了 SD 的"最大痛点"?
1. ControlNet定义
ControlNet 是 Stable Diffusion 的"外挂控制系统",用于让生成结果严格遵循你的结构约束。
如果 Stable Diffusion 是"画画的大脑",那么 ControlNet 就像是你给大脑提供的:
-
构图稿(轮廓线)
-
动作参考(人体骨架)
-
空间结构(深度图)
-
线稿草图(草稿/涂鸦)
让它不再"自由发挥",而是按你要求的结构去生成。
2. 为什么 Stable Diffusion 需要 ControlNet?
Stable Diffusion 很强,但它有一个天然缺点:
"可控性不足"。
你可能遇到这些问题:
-
想要特定姿势,但人物手脚总是乱
-
想保持构图和轮廓,但画面结构跑偏
-
想换风格但保持产品形状不变,非常困难
ControlNet 的价值在于:
"你给结构,我负责画风和细节。"
3. ControlNet 的原理(简化版)
ControlNet 的实现方式是:
在 SD 的 UNet 外增加一条"控制分支"。
这条分支:
-
接收你的控制图(Pose/Edge/Depth)
-
输出控制信号
-
在每一步去噪时影响 UNet 的生成过程
所以生成过程变成:
文本提示词决定风格与内容
控制图决定结构与形态
最终得到"风格可变,但结构稳定"的图像。
4. ControlNet 常见类型及用途
下面是你最常用的几类 ControlNet:
OpenPose(人体骨架/姿势)
用途:人物姿势、舞蹈动作、摄影pose复刻、换装保持动作
Canny / HED(边缘/线稿)
用途:保持轮廓结构,适合产品图、建筑、构图复刻、草图生成
Depth(深度图)
用途:保持透视、空间关系、光照体积感
Scribble(涂鸦)
用途:随手画几笔就能生成完整场景
Tile(细节补偿/超分)
用途:高质量超分、纹理增强、修复模糊细节
5. ControlNet 的关键参数(决定效果的核心)
想用好 ControlNet,必须理解这些参数:
-
Weight(权重):控制强度。越大越像控制图
-
Start / End:控制从去噪第几步开始生效、到第几步结束
-
Preprocessor(预处理器):把输入图转成骨架/边缘/深度图
-
Model(控制模型):与预处理器匹配的 ControlNet 权重文件
一句话:
预处理器负责"生成控制图",模型负责"理解控制图并施加约束"。
三、ComfyUI 是什么?为什么它成为进阶与生产必选?
1. 一句话定义 ComfyUI
ComfyUI 是一个节点式(Node-based)的 Stable Diffusion 工作流编辑器。
它不是模型,而是一个把 SD 推理过程拆解成"节点模块",让你自由组合工作流的工具。
你可以把它看成"生成式 AI 的工业化流水线系统"。
2. ComfyUI vs WebUI(A1111)怎么选?
你可能听说过另一个主流界面:A1111 WebUI。
两者区别非常清晰:
WebUI(A1111)
上手快:写 prompt → 点生成
高阶流程受限:复杂 pipeline 需要插件,且流程相对固定
适合:入门、快速出图、轻度创作
ComfyUI
极强自由度:任意组合节点
易复现:工作流 JSON 可分享
适合生产:批量生成、多阶段重绘、复杂控制
学习曲线更陡,需要理解 latent、采样等概念
适合:进阶、工作流搭建、商业生产
3. ComfyUI 的核心思维:数据流与节点
ComfyUI 的使用逻辑是:
每个节点是一个"功能模块"
节点之间连线是"数据流动"
例如最基础的 SD 文生图流程:
-
Load Checkpoint(加载 SD 模型)
-
CLIP Text Encode(编码 prompt)
-
KSampler(采样生成 latent)
-
VAE Decode(解码成图像)
-
Save Image(保存)
理解这一点,你就会发现:
ComfyUI 的本质是把 SD 的生成流程透明化、模块化、可编排化。
四、三者关系:稳定生成的"铁三角"
简单记住:
Stable Diffusion = 生成模型(大脑)
ControlNet = 可控生成外挂(结构控制)
ComfyUI = 工作流搭建器(生产管线)
它们的关系像:
-
SD 提供生成能力
-
ControlNet 提供可控性
-
ComfyUI 把这一切变成"工程化流程",可复用、可扩展、可批量生产
五、实战:一个典型的"可控生成"工作流案例
场景:你想把一个人物姿势变成不同画风插画,同时保持动作不变
目标:
-
动作一致
-
风格可变(写实/二次元/赛博朋克)
-
细节质量高
流程:
-
输入一张人物照片
-
用 OpenPose 预处理生成骨架
-
用 ControlNet OpenPose 固定姿势
-
用 prompt 描述风格与内容
-
用 Stable Diffusion 生成画面
-
可选:用 Tile ControlNet 或 HiRes 细化细节
如果在 ComfyUI 中,这就是一个非常自然的节点链条,而且你可以把它保存成 JSON,之后换模型、换 LoRA、换 prompt 都能复用。
六、入门与进阶路线
第一步:先把 Stable Diffusion 的核心参数学懂
重点:
-
Prompt / Negative Prompt
-
Steps(步数)
-
CFG Scale(提示词引导强度)
-
Sampler(采样器)
-
Seed(随机种子)
-
Denoise Strength(img2img 的变化幅度)
这些是"生成质量与可控性的底座"。
第二步:学习 ControlNet 三件套
从最常用的三类开始:
-
OpenPose(姿势)
-
Canny(轮廓)
-
Depth(空间结构)
并重点掌握:
-
Weight 怎么调
-
Start/End 怎么调
-
控制图质量如何影响结果
第三步:用 ComfyUI 进行工作流思维训练
你只需要先掌握:
-
一个最小文生图工作流
-
ControlNet 如何接入
-
多阶段生成(先出构图 → 再细化)
之后你会发现 ComfyUI 能把你的"出图经验"沉淀成"可复用资产"。
七、总结:你到底应该怎么选?
如果你只是玩一玩、快速出图:
WebUI + SD + ControlNet 够用
如果你希望进入生产、做商业项目、做稳定可复现的图像流程:
ComfyUI + SD + ControlNet 是更可靠的选择
真正决定"效率与质量"的不是模型本身,而是你构建工作流的能力。