进阶 13 分钟图像

ControlNet:掌握其 images

直接回答

ControlNet 为扩散模型添加视觉条件(轮廓、深度、姿态),以固定画面构图,而提示词则控制风格。其方法在 ICCV 2023 上获得了最佳论文奖。它可在 ComfyUI、Forge 或 AUTOMATIC1111 中使用,并有适用于 SD 1.5、SDXL、SD 3.5 Large、Flux.1 和 Z-Image Turbo 的版本。注意:每个控制模型只能用于训练时所针对的模型系列。

提示词描述的是内容,而不是位置。ControlNet 以参考结构、姿态、轮廓或深度图为条件来控制图像生成,让结果遵循你设定的构图。本指南更新至 2026 年 9 月 28 日,介绍如何选择控制方式、调节强度和应用区间、不同模型系列的文件大小,以及官方提供的控制模型目前有哪些;自 SD 1.5 以来,官方提供的模型已发生很大变化。

作者: Mohamed Meguedmi·更新于 2026-09-29·已在 Windows、macOS 和 Linux 上测试

#所解决的问题

文字并不适合描述几何结构。提示词可以描述主体、风格和氛围,但无法用文字固定一只手的位置、建筑的角度或产品的精确轮廓。换一个随机种子重新生成,整个构图就会改变。ControlNet 改变的是输入,而不是提示词:您提供一张包含所需结构信息的图像,模型在每一步去噪时都以这张图像为条件,而提示词控制其余所有内容。

该方法源自研究论文《Adding Conditional Control to Text-to-Image Diffusion Models》,作者为Lvmin Zhang、Anyi Rao和Maneesh Agrawala。论文发表于ICCV 2023会议论文集,并获得该会议的最佳论文奖——Marr奖。摘要描述了其原理:ControlNet冻结扩散模型,复用其预训练编码层作为基础,并通过“零卷积”(zero convolutions)连接可训练副本。这些卷积层初始化为零,使参数逐步增长,避免有害噪声干扰训练。作者还表明,无论使用小型数据集(少于50,000张图像),还是大型数据集(超过一百万张图像),训练都能保持稳健。

对您的影响:在不重新训练的情况下,为现有模型增加控制功能,且每种控制都对应一个独立文件。因此,必须为特定模型家族使用正确的文件。

#选择控制类型

AI 图像工具包

在本地无限制地生成 AI 图像与视频:在你的 GPU 或 Mac 上使用 ComfyUI、Flux、Z-Image、Wan 2.2——提供可直接加载的工作流,并介绍相关法律框架。

  • 在线空间,终身可用
  • PDF + 文件
  • 30 天内退款
各控制方式捕捉的内容,使用 ControlNet 1.1 的 SD 1.5 模型
控制它所捕获的内容用于什么场景?SD 1.5使用的ControlNet 1.1模型
轮廓(canny、softedge、lineart)线条与轮廓精确保留形状:产品、标志、涂色画control_v11p_sd15_canny, _softedge, _lineart, _lineart_anime
深度与相机的距离改变材质和细节,同时保持立体形态和透视关系control_v11f1p_sd15_depth
姿势关节骨架人物:姿势固定,其余方面不受限制control_v11p_sd15_openpose
分割按类别划分的区域场景布局:这里是天空,那里是建筑control_v11p_sd15_seg
草图(scribble)粗糙的草图将手绘图像转换为渲染图像control_v11p_sd15_scribble
法线贴图表面朝向受光照影响的凹凸起伏和细节control_v11p_sd15_normalbae
瓦片(tile)图像区域的内容放大以增加细节control_v11f1e_sd15_tile

ControlNet 1.1 官方仓库公布了 14 个模型,其中 11 个可用于生产环境,3 个为实验性模型,全部采用统一的命名规则。对于深度控制,仓库列出了三种支持的预处理器:Depth_Midas、Depth_Leres 和 Depth_Zoe。预处理器是将您的参考图像转换成控制图的工具,例如将照片转换成深度图。

实用原则:选择尽可能宽松、但仍能保留您所关注内容的控制方式。对一张照片采用轮廓条件控制,会复现这张照片;如果这就是想要的结果,那么生成就没有必要了。深度或姿态通常能更好地平衡遵循控制条件与创造性。

#关键设置

名称因工具而异,但有三个设置在各处都会出现。下表根据相关文档,列出了它们在三种最常用环境中的名称。

不同工具中的 ControlNet 设置
设置ComfyUI(Apply ControlNet 节点)diffusers 库AUTOMATIC1111 扩展
控制强度strength:数值越高,对图像的控制力越强controlnet_conditioning_scale:控制权重Control Weight:控制权重,相当于提示词中某个词的强调程度
应用时机start_percent 和 end_percent:0.2 表示控制从去噪过程进行到 20% 时开始,0.8 表示控制在进行到 80% 时停止control_guidance_start 和 control_guidance_end,以步骤比例(0到1)表示Start 和 End:控制开始和结束时,生成过程所进行到的比例
控制图精度预处理器分辨率,需在预处理器节点中设置控制图像的尺寸Pixel-Perfect 模式会自动计算最佳预处理器分辨率

控制强度是最有效的调节手段:接近最大值时,生成结果会显得僵硬,降低强度能改善大多数呆板的图像。在去噪结束前停止控制,可以固定构图,同时让模型自由表现材质和光照。AUTOMATIC1111 的扩展提供了一个有三个选项的 Control Mode:Balanced、My prompt is more important 和 ControlNet is more important,用于在提示词和控制之间进行权衡。

#模型作者发布的初始参数值

与其编造数字,不如从发布方提供的数据出发。不同系列之间的数据差异明显,这也提醒我们,适用于 SD 1.5 的设置不能直接照搬。

根据模型说明和 diffusers 文档推荐的参数值
模型推荐设置来源
Flux.1 dev,Union Pro 2.0(Shakker Labs),canny或soft edge强度 0.7;结束位置 0.8模型卡
Flux.1 dev, Union Pro 2.0, 深度强度 0.8;结束点 0.8模型卡
Flux.1 dev,Union Pro 2.0,姿态强度 0.9;在 0.65 处结束模型卡
Flux.1 dev,Union Pro 2.0,灰度强度 0.9;结束位置 0.8模型卡
Z-Image Turbo,Fun ControlNet Unioncontrol_context_scale 在 0.65 到 0.80 之间模型卡
Flux.1 dev,ControlNet canny(InstantX)官方示例中的强度为0.5diffusers文档
SDXL,结合两种控制(Canny和深度)官方示例中每个均为0.5diffusers文档
!
控制模型必须与基础模型相匹配
ControlNet 是针对特定架构进行训练的。适用于 SD 1.5 的文件无法在 SDXL 或 Flux 中使用,常见现象是输出完全忽略控制信号,或退化为噪声。在下载前,请务必检查文件说明中列出的架构家族。

#不同ControlNet适用于哪些模型家族

自 SD 1.5 以来,可用方案变化很大,许多指南已经过时。表格区分了模型开发实验室发布的内容和社区发布的内容,因为这会影响维护和许可证。

截至撰写时各模型系列的可用方案
系列模型发布方发布的控制方案社区或第三方提供的控制模型
SD 1.5lllyasviel 的 ControlNet 1.1:14 个模型(canny、深度、姿态、分割、草图、Tile……)众多衍生模型
SDXLStability AI的Control-LoRA:canny、深度、重着色和草图diffusers 团队提供的 ControlNet Canny 和深度控制模型;xinsir 提供的 ControlNet Union(一个文件,多种模式)
SD 3.5 LargeStability AI于2024年11月26日发布的三个ControlNet:Blur、Canny和Depth可比较的参考资料较少
Flux.1 devFLUX.1 Canny和Depth由Black Forest Labs发布,提供完整模型和LoRA版本,发布于2024年11月InstantX 的 ControlNet Union(测试版)和 Shakker Labs 的 Union Pro 2.0
Z-Image Turbo截至我们检查时,开发方(Tongyi-MAI)的Hugging Face页面上没有这类模型Alibaba PAI 的 Fun ControlNet Union:canny、HED、深度、姿态和 MLSD

有两点值得说明。首先,Black Forest Labs 已在其 API 中将 FLUX.1 Depth 和 FLUX.1 Canny 标记为弃用,包括其 LoRA 版本:开放权重仍可在 Hugging Face 上获取,但发布方已不再维护这些模型。其次,「Union」模型将多种模式整合到一个文件中,可以节省磁盘空间,但各模型的成熟度参差不齐:InstantX 的 Flux ControlNet Union 模型说明将其描述为首个测试版本,可能尚未完成全部训练。

许可证不会自动沿用基础模型的许可证:每个控制文件都有自己的许可证,而且不同文件的许可证各不相同。

各控制模型的许可证,依据 Hugging Face 仓库元数据及所引用的许可证
控制许可证要点
ControlNet 1.1 用于 SD 1.5OpenRAILRAIL类型许可,带有使用限制
ControlNet canny SDXL(diffusers团队出品)OpenRAIL++如同 SDXL:使用限制见附录
xinsir 的 ControlNet Union SDXLApache 2.0宽松
Stability AI 的 Control-LoRAStability AI Control-LoRA Community License每月活跃用户超过100万时,商业使用需获得Stability AI许可
ControlNets SD 3.5 LargeStability AI社区许可商业使用免费,年营业额低于100万美元
FLUX.1 Canny 和 Depth [dev]FluxDev非商业授权模型说明页明确指出,根据许可证,生成的图像可用于个人、科研和商业用途
适用于 Flux 的 InstantX Union 和 Shakker Labs Union Pro 2.0FluxDev非商业授权商业使用前请务必阅读
适用于Z-Image Turbo的Fun ControlNet UnionApache 2.0宽松

#文件和内存方面的开销

ControlNet 是一个与基础模型配合运行的额外网络:它会增加显存占用和每张图像的处理时间。Hugging Face 上公布的文件大小可以提供初步的量级参考:这些文件的大小需要与基础模型及其文本编码器的权重大小相加。

控制文件大小,依据 Hugging Face 和 Stability AI 数据
控制文件大小
适用于 SD 1.5 的 ControlNet 1.1,原始版本(.pth)每个均为 1.45 GB
SDXL,diffusers 团队的 ControlNet canny全精度 5 GB,半精度 2.5 GB
SDXL,xinsir 的 ControlNet Union2.51 GB
SDXL,Stability AI的Control-LoRA约 738 MB,而原始 ControlNet 为 4.7 GB
SD 3.5 Large, ControlNet canny8.61 GB
Flux.1 dev,InstantX 的 ControlNet Union6.6 GB
Flux.1 dev,Shakker Labs 的 Union Pro 2.04.28 GB
Flux.1 dev,LoRA 形式的 FLUX.1 Depth(Black Forest Labs)1.24 GB,而完整的 Canny 模型为 23.8 GB
Z-Image Turbo,Fun ControlNet Union3.1 GB

两个要点。首先,以 LoRA 形式进行的控制仅占完整模型的一小部分:Stability AI 将 Control-LoRA 定义为一种使控制扩展到更广泛消费级显卡的方式。其次,需警惕文件格式:ControlNet 1.1 的 .pth 文件是 Python pickles,Hugging Face 已明确提示存在 pickle 导入警告。建议使用 .safetensors 格式,该格式无法执行代码。

需要额外多少显存?开发商并未公布通用数值,实际测量结果取决于模型和分辨率。显存耗尽时,应依次采取以下措施:降低分辨率、减少同时使用的控制数量,然后改用更轻量的控制方案,例如Control-LoRA或半精度版本。关于基础显存需求,请参阅显存指南。

#在哪里使用

ControlNet 不是独立应用程序,而是在图像生成界面中运行。在 ComfyUI 中,两个节点负责这项工作:Load ControlNet 读取 models/controlnet 文件夹中的文件,Apply ControlNet 接收控制图像和上方表格中的设置。ComfyUI 文档明确指出,软件核心并不包含所有预处理器,通常需要 ComfyUI ControlNet aux 这样的扩展。请记住,扩展是以您的权限执行的代码:只安装您熟知的扩展。对于 Z-Image Turbo,控制文件应放在另一个文件夹 models/model_patches 中。

在传统 Web 界面中,AUTOMATIC1111 的 sd-webui-controlnet 扩展会在提示词下方添加一个面板。其最新动态条目是 1.1.454 版本,日期为 2024 年 7 月,最后一次提交也在同月:该扩展仍可用于 SD 1.5 和 SDXL,但不会继续跟进新模型。根据 Forge 的 README,Forge 直接集成了 ControlNet,无需使用这一扩展。

#同时组合多种控制

完全可以叠加两个控制,例如用姿态控制人物的姿势,用深度控制场景。diffusers 文档给出的规则是:为了获得良好效果,应对条件输入应用掩码,使其作用区域不重叠,并尝试不同的强度来调整各项控制的权重。文档中的 SDXL 示例将 canny 和深度控制结合使用,两者的强度均为 0.5。在 ComfyUI 中,则依次连接 Apply ControlNet 节点。两种方式都适用相同的原则:只叠加作用于图像不同方面的控制,并降低各项控制的强度,因为它们的效果会叠加。

#当控制被忽略时

控制项未出现在列表中
文件位于错误的文件夹中,或其配置文件名称与文件名不一致。在ComfyUI中,文件夹应为models/controlnet。
生成结果忽略了参考图像
基础模型与控制模型所属系列不兼容、预处理器生成了空的控制图,或控制强度过低。在怀疑其他问题之前,请先显示控制图本身。
图片僵硬,缺乏生机
力度过高,或在整个去噪过程中持续应用控制。请降低力度,并在结束前停止控制。
使用 Union 模型效果令人失望
InstantX 的 Union 模型作者指出,即使是经过充分训练的 Union 模型,也可能不如专用模型,例如姿态模型。请尝试使用专用的 ControlNet,并按照 Shakker Labs 模型说明中的建议,编写详细的提示词。
内存已满
降低分辨率,移除一个控制,或使用该控制的更轻量版本。

#FAQ

FAQ
ControlNet 是做什么的?+
用于以轮廓、深度或姿态骨架等结构参考为条件来生成图像,让图像遵循该结构,同时由提示词控制主题和风格。该方法发表于 ICCV 2023 会议论文集:它冻结扩散模型,并训练一个通过零初始化卷积连接的副本;原始模型不会被重新训练。
ControlNet 需要高性能显卡吗?+
它为基础模型增加了第二个网络,因此会增加内存占用和耗时。开发方并未公布通用的额外显存开销数据。在 SD 1.5 上,一个原版控制模型的大小为 1.45 GB;在 SDXL 上,Stability AI 的 Control-LoRA 约为 738 MB,而原版为 4.7 GB。先从一个轻量级控制模型开始,再逐步增加。
为何我的输出忽略了控制图像?+
通常是控制模型与基础模型所属系列(SD 1.5、SDXL、Flux)不匹配,或预处理器生成了空的控制图,或控制强度过低。请先查看控制图本身。对于较新的模型,控制的应用时段也很重要:如果控制过早停止,之后就不再起作用。
控制角色姿势应选择哪种控制方式?+
采用姿势条件控制:它固定关节骨架,同时让服装、外观和背景保持自由。在 Flux 中使用 Shakker Labs 的 Union Pro 2.0 模型时,模型说明建议将姿势控制强度设为 0.9,并在去噪进程的 0.65 处停止控制。若使用轮廓控制,则会锁定整个外形,而这通常不是控制角色姿势时的目的。
ControlNet是否支持SDXL、Flux和Z-Image?+
是的,但来源有所不同。SDXL:Stability AI 的 Control-LoRA 和第三方模型。SD 3.5 Large:Stability AI 的三个 ControlNet 模型。Flux.1:Black Forest Labs 的 FLUX.1 Canny 和 Depth(在 API 中已被弃用),以及社区 Union 模型。Z-Image Turbo:阿里巴巴 PAI 的 Fun ControlNet Union,推荐值为 0.65 至 0.80。
可以同时使用多个 ControlNet 吗?+
是的。diffusers 文档建议对条件进行遮罩,使它们互不重叠,并调整各自的强度;其 SDXL 示例中 canny 和深度均使用 0.5。在 ComfyUI 中,需串联 Apply ControlNet 节点。仅组合互补的控制,例如姿态和背景。
这份指南对您有帮助吗?

有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。