news 2026/10/15 16:14:09

AI绘画:ControlNet是什么以及它能做什么

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI绘画:ControlNet是什么以及它能做什么

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绘画"随机性"的问题,是专业创作的核心工具。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/15 16:14:02

TMC2226步进驱动IC:2A RMS静音方案与StealthChop2调优实战

做运动控制这些年,步进电机的噪音问题一直排在客户反馈的Top 3。无论是桌面级3D打印机、激光雕刻机,还是小型自动化设备,电机一跑起来那种高频啸叫,真的很劝退。直到我把驱动从老式A4988换成TMC2226-SA-T之后,才体会到…

作者头像 李华
网站建设 2026/10/15 16:13:17

Modbus功能码详解:从01到23的报文结构与调试避坑指南

1. 搞懂Modbus功能码,先弄明白它到底在解决什么问题干了十来年自动化,现场调试最怕遇到什么?不是PLC程序写得有多复杂,也不是上位机界面有多花哨,而是通讯不通。尤其是Modbus这种在工控圈里遍地都是的协议,…

作者头像 李华
网站建设 2026/10/15 16:12:55

Spring @Configuration proxyBeanMethods 原理与避坑指南

1. 从一个诡异的Bug说起:为什么我的Bean被创建了两次前段时间帮一个朋友排查问题,场景很典型:他写了一个Configuration配置类,里面用Bean声明了两个Bean,其中一个Bean的方法体里直接调用了另一个Bean方法。按他的理解&…

作者头像 李华
网站建设 2026/10/15 16:12:53

Spring @Configuration proxyBeanMethods属性详解:Full与Lite模式原理及选型

1. 从一个诡异的Bug说起:为什么我的Bean被创建了两次前段时间帮一个朋友排查问题,场景很典型:他写了一个配置类,里面用Bean声明了两个组件,其中一个组件依赖另一个。启动之后日志里发现同一个Bean的初始化方法被打印了…

作者头像 李华
网站建设 2026/10/15 16:12:46

ROS机器人视觉避障部署全流程:从深度相机选型到局部规划器调优实战

1. 项目缘起与整体设计思路机器人视觉避障这件事,说起来简单——不就是让机器人看到东西然后绕开嘛。但真到部署阶段,你会发现从传感器选型到算法落地,中间隔着无数个让人抓狂的细节。我前后在三个不同平台上折腾过这套流程,从室内…

作者头像 李华
网站建设 2026/10/15 16:12:36

智慧档案传感网络可靠性设计:断线识别、自动重连与断点续传实战

智慧档案传感网络这个名字听起来挺数字化,但真正碰过档案库房环境监控项目的人都知道,这套系统最磨人的地方根本不在传感器选型或平台界面,而在链路断线识别、自动重连与断点续传这三件"吃力不讨好"的可靠性设计上。我在某档案库房…

作者头像 李华