ControlNet:从随机生成到"指哪打哪"的绝对控制
在 ControlNet 诞生之前,AI 画师们只能通过疯狂堆砌提示词来"祈求" AI 画出想要的姿势或构图,如同隔山打牛。而 ControlNet 的出现彻底终结了这个瞎猜的时代,让你能够通过线稿、深度图、人体骨架等视觉条件,直接"锁死"画面的布局。
1. ControlNet 究竟是什么?
ControlNet 是一个神经网络架构扩展,它的作用是"拷贝"一份原有大模型的结构,并在上面添加额外的空间调节条件。简单来说,它就像是给 AI 画家套上了一个"拓写板"或"人体模型",要求它必须在这个框架内进行创作。
2. WebUI 中的安装方法
- 安装插件代码: 打开 WebUI,进入
Extensions->Install from URL标签页,在 URL 框输入https://github.com/Mikubill/sd-webui-controlnet.git,点击 Install,完成后在Installed页点击Apply and restart UI重启。 - 下载控制模型: 这一步最占硬盘!前往 Hugging Face 搜索
lllyasviel/ControlNet-v1-1,你会看到一大堆.pth文件。每种控制方式(Canny, Depth, OpenPose等)都有一个约 1.4GB 的专属模型文件。 - 存放模型: 将下载好的
.pth模型放入stable-diffusion-webui\extensions\sd-webui-controlnet\models目录中。在 WebUI 的 ControlNet 面板点击蓝色刷新按钮即可读取。
3. 核心模型解析与实战
ControlNet 有十几种不同的控制模型,这里介绍最常用的三大金刚:
👑 Canny (边缘检测)
这是最严格的控制方式。预处理器提取原图的硬边缘线稿(就像简笔画)。
- 适用场景: 将草图转化为精美插画、保持建筑/物品的精确轮廓进行材质替换。
- 使用技巧: 可以调节预处理器的上限和下限阈值,数值越低提取的线条越杂乱,越高提取的越干净。
👑 Depth (深度检测)
它通过计算画面中物体的前后距离,生成一张灰度的"深度图"(越亮代表越近,越暗越远)。它只保留了画面的立体关系,忽略了表面细节。
- 适用场景: 场景气氛图的重绘、室内设计的渲染、保持大体透视关系不变的情况下大改内容。
- 优势: 比 Canny 宽松很多,给大模型的发挥空间更大,最不容易产生崩坏和违和感。
👑 OpenPose (人体骨架检测)
最被大众熟知的功能。它会自动识别原图中人物的关节(如肩膀、肘部、膝盖甚至手指和面部表情),并生成彩色火柴人骨架图。
- 适用场景: 绝对控制人物姿势,实现特定动作。
- 进阶玩法: 你可以去
OpenPose Editor插件里,像摆弄关节人偶一样手捏一个自己想要的姿势,发送给 ControlNet 生成。
4. 多路 ControlNet 的叠加魔法
在 WebUI 的设置界面 (Settings -> ControlNet),你可以找到
Multi ControlNet: Max models amount (requires restart) 选项,将其设为 2 或 3。
实战组合:OpenPose + Canny
比如你想画一个特定姿势,并且手里拿着一把特定形状的剑的任务。你可以:
- 在 Unit 0 启用 OpenPose,锁死人物挥手的姿势。
- 在 Unit 1 启用 Canny,放入一张你画好的剑的草图,锁死武器外部轮廓。
- 输入提示词生成,AI 将同时满足这两个苛刻的物理条件。
⚠️ 注意显存
每多开一路 ControlNet,就会多加载一个 1.4GB 的模型进显卡。如果显存不足(如 8G),多路控制极易爆显存失败。建议勾选 LowVRAM 选项尝试。
5. 控制权重与介入时机 (Tip)
在 ControlNet 界面最下方有几个关键滑块调节:
- Control Weight (控制权重): 默认为 1。如果设得太高,画面会死板或者焦化;设得太低,AI 可能会无视你的约束去野蛮生长。通常在
0.6 - 0.8之间微调会有意想不到的效果。 - Starting/Ending Control Step (介入/退出时机): 默认是从 0% 管到 100%。如果你希望姿势被固定,但脸部和衣服细节让 AI
更自由地发挥,可以尝试让 ControlNet 在
0.7(即 70% 进度时) 提前退出。