AI绘画:ControlNet是什么以及它能做什么
你好!如果说LoRA让SD变得"灵活",那么ControlNet让SD变得"听话"。在ControlNet出现之前,AI绘画很大程度上是"碰运气"——你输入Prompt,AI给你结果,但构图、姿势、空间关系这些你没法精确控制。ControlNet改变了这一切。
一、ControlNet的革命性意义
1.1 ControlNet之前的世界
在ControlNet诞生前(2023年2月前),AI绘画最大的痛点是:
- 无法精确控制构图(人物在画面的位置、大小)
- 无法指定人物姿势(举手、奔跑、坐着等)
- 无法保持特定空间关系(沙发在左边、窗户在右边)
- 只能通过Prompt"祈祷"AI画出你想要的布局
你输入"a person standing on the left, looking right",AI可能把人放在中间、或是右边。Prompt只是"建议",不是"指令"。
1.2 ControlNet带来的改变
💡 ControlNet在SD的U-Net旁边增加了"控制网络",接收额外的控制信号,将你的精确意图"注入"到生成过程中。
有了ControlNet,你可以:
- ✅ 用边缘图控制精确的构图
- ✅ 用骨骼图锁定人物姿势
- ✅ 用深度图定义空间关系
- ✅ 用涂鸦草图"画"出你想要的画面
- ✅ 用参考图进行风格迁移
🔧ControlNet把AI绘画从"提建议"变成了"下指令"。
二、ControlNet的工作原理
2.1 双网络架构
ControlNet在SD原本的U-Net旁边复制了一个"控制网络":
- 原U-Net:照常工作,处理去噪
- ControlNet:接收控制信号(如Canny边缘图),提取特征
- 两个网络的输出在特定层合并,引导生成方向
2.2 控制信号
你可以用任何图像作为控制信号的基础。ControlNet的"预处理器"会将你的输入图片转化为特定的控制信号。
比如,你上传一张建筑照片,Canny预处理器提取边缘线条,ControlNet就"看到"了这栋建筑的轮廓,在生成时保持这个轮廓。
三、ControlNet的15+种预处理器
3.1 构图控制类
🔧Canny(边缘检测):
- 提取图像边缘线条
- 最常用的构图控制
- 适用:保持精确构图、线稿上色
- 参数:Low Threshold / High Threshold(边缘敏感度)
🔧Lineart(线稿):
- 提取更细致的线稿
- 比Canny更"干净"
- 适用:动漫线稿上色
🔧SoftEdge(柔和边缘):
- Canny的"柔和版"
- 保留更多自由发挥空间
- 适用:需要构图但不想太死板
🔧Scribble(涂鸦):
- 用简单涂鸦引导AI
- 你画几笔,AI完成剩余
- 适用:快速原型、创意探索
3.2 空间深度类
🔧Depth(深度图):
- 提取场景的深度信息
- 白色=近,黑色=远
- 适用:建筑/室内设计/场景重构
- 预处理器:Midas/Zoe/LeRes
🔧Normal Map(法线图):
- 提取表面方向信息
- 适用:3D渲染、表面纹理
3.3 人物姿态类
🔧OpenPose(骨骼检测):
- 检测人体/手部/面部关键点
- 精确控制人物姿势
- 适用:人物动作、舞蹈、多人场景
- 支持DWPose等改进版本
3.4 语义理解类
🔧Segmentation(语义分割):
- 将图像分为不同语义区域
- 每类物体有不同颜色
- 适用:复杂场景中各区域的独立控制
3.5 风格参考类
🔧Reference(参考):
- 直接参考原图的风格和内容
- 类似"图生图"但更灵活
🔧IP-Adapter(图像提示适配器):
- 强大的图片风格迁移
- 只需一张参考图即可影响生成风格
🔧Tile(分块):
- 分块处理+细节增强
- 适用:放大+去噪+增强细节
🔧Inpaint(增强局部重绘):
- ControlNet增强版Inpaint
- 比WebUI自带Inpaint效果更好
四、ControlNet的使用
4.1 安装
在WebUI中:Extensions → Install from URL → 输入ControlNet的GitHub地址 → Install
⚠️ 还需要下载ControlNet模型文件(.pth/.safetensors),放入models/ControlNet/文件夹。
4.2 基本操作流程
① 准备一张控制参考图(如建筑照片、人物照片)
② 在ControlNet面板中上传
③ 选择预处理器(如Canny)
④ 选择对应的ControlNet模型
⑤ 调整Control Weight(控制强度,推荐0.5-1.0)
⑥ 设置Starting/Ending控制步数
⑦ 输入Prompt,点击Generate
💡关键参数:
- Control Weight:控制强度,1.0=完全控制,0.5=半控制
- Starting Step:从第几步开始控制(如0=从第1步开始)
- Ending Step:到第几步结束控制(如0.8=最后20%步数不控制,给AI自由发挥空间)
4.3 多ControlNet同时使用
可以开启多个ControlNet Unit(WebUI设置中可扩展到3-5个),实现:
- Canny控制构图 + OpenPose控制姿势
- Depth控制空间 + Reference控制风格
- Lineart控制线条 + Segmentation控制内容
✅ ControlNet彻底解决了AI绘画"随机性"的问题,是专业创作的核心工具。