ControlNet 指南 2026:姿态、深度、Canny——Stable Diffusion 的控制方式详解
Stable Diffusion 生成漂亮但你不需要的图。ControlNet 让它跟着你的姿态、深度或草图走——每种控制模式怎么工作、什么时候用,看这篇。
💡 你将学到
Stable Diffusion 生成漂亮但你不需要的图。ControlNet 让它跟着你的姿态、深度或草图走——每种控制模式怎么工作、什么时候用,看这篇。
ControlNet 为什么存在
文生图是抽奖:模型听到你的提示词,自己掷骰子决定构图。ControlNet(34,064 stars,2026-08-13 实测)是让你喂给模型第二个输入的扩展——姿态骨架、深度图、边缘画——让生成以它为前提。同样的模型和提示词,但构图归你了。生态领头的是 Automatic1111 类界面里的 sd-webui-controlnet 插件(17,852 stars),ComfyUI(127,047 stars)则原生带 ControlNet 节点。
值得用的控制模式
Canny(边缘):喂线条图或边缘图,输出跟随这些边缘。心里有草图或具体布局时用它,是最可控的模式。
OpenPose(姿态):喂关节骨架,模型尊重姿态。角色摆姿的标准工具:拍照→提取姿态→任意风格重绘角色。
Depth(深度):喂深度图(灰度,近白远黑),模型保留空间结构。构图和透视比线条重要的场景最好用。
法线/涂鸦/分割:表面方向、粗略草图或分区标签。控制类型换灵活度;涂鸦最松散也最宽容。
实用工作流
- 从参考图提取控制信号:摆姿用 OpenPose 预处理、结构用 Midas 深度、布局用 Canny
- 加载匹配的 ControlNet 模型(control_v11p_sd15_openpose、control_v11f1p_sd15_depth 这类)
- 设控制权重:姿态 0.6-0.8(要风格自由度),Canny 0.8-1.0(要边缘被尊重)
- 跨变体保持提示词和种子一致,才能看出控制信号单独改变了什么
匹配模型世代
ControlNet 是按基础模型训练的。SD1.5 的控制模型最全,SDXL 和 Flux 的少一些。检查你的 ControlNet 权重和基础模型家族是否匹配,否则条件控制会静默劣化——一个看起来像提示词问题的经典故障。
什么时候 ControlNet 胜过提示词工程
为了让人物朝左你写过五段提示词?那你用错了工具。凡是位置性的东西——姿态、取景、构图、布局——都是 ControlNet 的活。提示词工程管风格和内容,ControlNet 管结构。
