为Stable Diffusion WebUI提供ControlNet扩展,无需合并模型即可动态添加控制功能,支持多种预处理器和模型,提升图像生成精度与灵活性。【此简介由AI生成】
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 2 年前 |
ControlNet 用于 Stable Diffusion WebUI 的扩展
用于 ControlNet 和其他基于注入的 SD 控制的 WebUI 扩展。
此扩展适用于 AUTOMATIC1111 的 Stable Diffusion web UI,允许 Web UI 将 ControlNet 添加到原始 Stable Diffusion 模型中生成图像。此添加是即时的,无需合并。
新闻
- [2024-07-09] 🔥[v1.1.454] ControlNet 联合模型支持 [讨论线程:https://github.com/Mikubill/sd-webui-controlnet/discussions/2989]
- [2024-07-01] 🔥[v1.1.452] Depth Anything V2 - UDAV2 深度预处理器 [拉取线程:https://github.com/Mikubill/sd-webui-controlnet/pull/2969]
- [2024-05-19] 🔥[v1.1.449] Anyline 预处理器 & MistoLine SDXL 模型 [讨论线程:https://github.com/Mikubill/sd-webui-controlnet/discussions/2907]
- [2024-05-04] 🔥[v1.1.447] PuLID [讨论线程:https://github.com/Mikubill/sd-webui-controlnet/discussions/2841]
- [2024-04-30] 🔥为 ControlNet/IPAdapter 支持 有效区域遮罩 [讨论线程:https://github.com/Mikubill/sd-webui-controlnet/discussions/2831]
- [2024-04-27] 🔥发布 ControlNet-lllite Normal Dsine [讨论线程:https://github.com/Mikubill/sd-webui-controlnet/discussions/2813]
- [2024-04-19] 🔥[v1.1.445] IPAdapter 高级权重 [即时风格] [讨论线程:https://github.com/Mikubill/sd-webui-controlnet/discussions/2770]
- [2024-04-17] 🔥[v1.1.444] Marigold 深度预处理器 [讨论线程:https://github.com/Mikubill/sd-webui-controlnet/discussions/2760]
- [2024-04-15] 🔥发布 ControlNet++ 模型 [讨论线程:https://github.com/Mikubill/sd-webui-controlnet/discussions/2778]
- [2024-04-13] 🔥发布 TTPLanet_SDXL_Controlnet_Tile_Realistic v2 [Civitai 页面]
- [2024-03-31] 🔥[v1.1.443] IP-Adapter CLIP 遮罩和 ip-adapter-auto 预处理器 [讨论线程:https://github.com/Mikubill/sd-webui-controlnet/discussions/2723]
- [2024-03-20] 🔥IPAdapter 组合 [讨论线程:https://github.com/Mikubill/sd-webui-controlnet/discussions/2781]
安装
- 打开“扩展”标签页。
- 在标签页中打开“从 URL 安装”标签页。
- 将
https://github.com/Mikubill/sd-webui-controlnet.git输入到“扩展的 Git 仓库 URL”中。 - 点击“安装”按钮。
- 等待 5 秒钟,您将看到消息“已安装到 stable-diffusion-webui\extensions\sd-webui-controlnet。使用已安装标签页重启”。
- 转到“已安装”标签页,点击“检查更新”,然后点击“应用并重启 UI”。(下次您也可以使用这些按钮来更新 ControlNet。)
- 完全重启 A1111 webui,包括您的终端。(如果您不知道什么是“终端”,您可以重新启动计算机以实现相同的效果。)
- 下载模型(见下文)。
- 将模型放入正确的文件夹后,您可能需要刷新才能看到模型。刷新按钮位于您的“模型”下拉菜单右侧。
下载模型
您可以在此处找到所有下载链接:https://github.com/Mikubill/sd-webui-controlnet/wiki/Model-download。
ControlNet 1.1 中的功能
完美支持所有 ControlNet 1.0/1.1 和 T2I 适配器模型。
现在我们完美支持所有可用的模型和预处理器,包括对 T2I 风格适配器和 ControlNet 1.1 洗牌的完美支持。(确保您的 YAML 文件名和模型文件名相同,也请查看“stable-diffusion-webui\extensions\sd-webui-controlnet\models”中的 YAML 文件。)
完美支持 A1111 高分辨率修复
现在如果您在 A1111 中启用了高分辨率修复,每个 controlnet 将输出两种不同的控制图像:一个小的一个大的。小的用于您的基生成,大的用于您的高分辨率修复生成。这两种控制图像是由一种称为“超高质量控制图像重采样”的智能算法计算得出的。这是默认启用的,您无需更改任何设置。
完美支持 A1111 所有 Img2Img 或修复设置以及所有遮罩类型
现在 ControlNet 已经过广泛测试,适用于 A1111 的不同类型的遮罩,包括“修复遮罩”/“未修复遮罩”,以及“整张图片”/“仅遮罩”和“仅遮罩填充”&“遮罩模糊”。调整大小完美匹配 A1111 的“仅调整大小”/“裁剪并调整大小”/“调整大小并填充”。这意味着您几乎可以在 A1111 UI 的任何地方无障碍地使用 ControlNet!
新的“像素完美”模式
现在如果您启用了像素完美模式,您无需手动设置预处理器(标注器)分辨率。ControlNet 将自动为您计算最佳标注器分辨率,以便每个像素完美匹配 Stable Diffusion。
用户友好的 GUI 和预处理器预览
我们重新组织了一些之前令人困惑的 UI,例如“新画布的宽度/高度”,现在它在 📝 按钮中。现在预览 GUI 由“允许预览”选项和触发按钮 💥 控制。预览图像的大小比以前更好,您无需上下滚动——您的 a1111 GUI 将不再混乱!
支持几乎所有升级脚本
现在 ControlNet 1.1 可以支持几乎所有升级/平铺方法。ControlNet 1.1 支持脚本“Ultimate SD upscale”和几乎所有其他基于平铺的扩展。请不要将 "Ultimate SD upscale" 与“SD upscale”混淆——它们是不同的脚本。请注意,最推荐的升级方法是 "Tiled VAE/Diffusion",但我们尽可能多地测试了其他方法/扩展。请注意,“SD upscale”自 1.1.117 版本起得到支持,如果您使用它,您需要将所有 ControlNet 图像留白(我们不推荐使用“SD upscale”,因为它有点问题且无法维护——请使用“Ultimate SD upscale”代替)。
更多控制模式(之前称为猜测模式)
我们修复了之前 1.0 版本中的许多猜测模式 bug,现在它被称为控制模式

现在您可以控制哪个方面更重要(您的提示或您的 ControlNet):
-
“平衡”:在 CFG 尺度的两边使用 ControlNet,与在 ControlNet 1.0 中关闭“猜测模式”相同。
-
“我的提示更重要”:在 CFG 尺度的两边使用 ControlNet,逐渐减少 SD U-Net 注入(layer_weight*=0.825**I,其中 0<=I <13,13 表示 ControlNet 注入 SD 13 次)。这样,您可以确保您的提示在生成的图像中完美显示。
-
“ControlNet 更重要”:仅在 CFG 尺度的条件侧使用 ControlNet(A1111 的 batch-cond-uncond 中的 cond)。这意味着如果您的 cfg-scale 是 X,则 ControlNet 会强大 X 倍。例如,如果您的 cfg-scale 是 7,则 ControlNet 会强大 7 倍。请注意,这里的 X 倍更强大与“控制权重”不同,因为您的权重没有被修改。这种“更强大”的效果通常具有较少的伪影,并给 ControlNet 更多猜测您提示中缺失内容的余地(在之前的 1.0 中,它被称为“猜测模式”)。
| 输入(深度+canny+hed) | “平衡” | “我的提示更重要” | “ControlNet 更重要” |
![]() |
![]() |
![]() |
![]() |
仅参考控制
我们现在拥有一个 reference-only 预处理器,它不需要任何控制模型。它可以直接使用图像作为参考来指导扩散。
(提示:“在草原上奔跑的狗,最佳质量,...”)

这种方法与基于修复的参考方法相似,但它不会使您的图像变得杂乱。
许多专业的 A1111 用户知道一个技巧,即通过修复使用参考图像进行扩散。例如,如果您有一个 512x512 的狗图像,并希望生成另一张具有相同狗的 512x512 图像,一些用户会将 512x512 的狗图像和一个 512x512 的空白图像拼接成 1024x512 的图像,发送到修复,然后遮盖空白部分以扩散出外观相似的狗。然而,这种方法通常不太令人满意,因为图像被拼接在一起,会出现许多失真。
这个 reference-only 的 ControlNet 可以直接将您的 SD 注意力层链接到任何独立图像,这样您的 SD 将读取任意图像作为参考。您至少需要 ControlNet 1.1.153 来使用它。
使用时,只需选择 reference-only 作为预处理器并放入一个图像。您的 SD 将仅使用该图像作为参考。
注意,这种方法尽可能保持“无主观性”。它只包含非常基本的连接代码,没有任何个人偏好,来连接您的参考图像和注意力层。然而,尽管我们尽力不包含任何主观性代码,我们仍然需要编写一些主观实现来处理权重、cfg-scale 等内容 - 技术报告即将到来。
更多示例 这里。
技术文档
参见 ControlNet 1.1 的文档:
https://github.com/lllyasviel/ControlNet-v1-1-nightly#model-specification
默认设置
这是我设置的默认值。如果您遇到任何问题,您可以使用这个设置作为健全性检查

使用旧模型
使用 ControlNet 1.0 模型
https://huggingface.co/lllyasviel/ControlNet/tree/main/models
您仍然可以使用 ControlNet 1.0 中的所有旧模型。现在,之前的 “depth” 被称为 “depth_midas”,之前的 “normal” 被称为 “normal_midas”,之前的 “hed” 被称为 “softedge_hed”。从 1.1 版本开始,所有线图、边缘图、线艺图、边界图都将具有黑色背景和白色线条。
使用 T2I-Adapter 模型
(来自 TencentARC/T2I-Adapter)
要使用 T2I-Adapter 模型:
- 从 https://huggingface.co/TencentARC/T2I-Adapter/tree/main/models 下载文件
- 将它们放在 "stable-diffusion-webui\extensions\sd-webui-controlnet\models" 中
- 确保.pth 文件和 yaml 文件的文件名一致。
注意 “CoAdapter” 尚未实现。
图库
以下结果是来自 ControlNet 1.0 的。
| 来源 | 输入 | 输出 |
|---|---|---|
| (无预处理器) | ![]() |
![]() |
| (无预处理器) | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
以下示例来自 T2I-Adapter。
来自 t2iadapter_color_sd14v1.pth 的:
| 来源 | 输入 | 输出 |
|---|---|---|
![]() |
![]() |
![]() |
来自 t2iadapter_style_sd14v1.pth 的:
| 来源 | 输入 | 输出 |
|---|---|---|
![]() |
(clip, 非图像) | ![]() |
最低要求
- (Windows)(NVIDIA: Ampere) 4gb - 开启
--xformers,并在 UI 中勾选Low VRAM模式,最高可达 768x832
多 ControlNet
此选项允许单个生成使用多个 ControlNet 输入。要启用此选项,请更改设置中的 Multi ControlNet: Max models amount (requires restart)。注意,您需要重启 WebUI 才能使更改生效。
| 来源 A | 来源 B | 输出 |
![]() |
![]() |
![]() |
控制权重/开始/结束
权重是控制网“影响”的权重。它与提示注意/强调类似。例如(myprompt: 1.2)。从技术上来说,它是将控制网输出乘以的系数,然后与原始 SD Unet 合并。
引导开始/结束是控制网应用的总步骤的百分比(引导强度 = 引导结束)。它与提示编辑/移位类似。例如 [myprompt::0.8](从开始应用到总步骤的 80%)
批量模式
将任何单元放入批量模式以激活所有单元的批量模式。为每个单元指定一个批处理目录,或者在 img2img 批量选项卡中使用新的文本框作为后备。尽管文本框位于 img2img 批量选项卡中,但您也可以使用它来在 txt2img 选项卡中生成图像。
请注意,此功能仅在 gradio 用户界面中可用。可以根据需要调用 API 以进行自定义批处理调度。
API 与脚本访问
此扩展可以通过 API 或外部扩展调用接受 txt2img 或 img2img 任务。请注意,您可能需要在设置中启用“允许其他脚本控制此扩展”,以进行外部调用。
要使用 API:使用参数 --api 启动 WebUI,然后访问 http://webui-address/docs 查看文档或查看 示例。
要使用外部调用:查看 Wiki
命令行参数
此扩展为 webui 添加了以下命令行参数:
--controlnet-dir <path to directory with controlnet models> ADD a controlnet models directory
--controlnet-annotator-models-path <path to directory with annotator model directories> SET the directory for annotator models
--no-half-controlnet load controlnet models in full precision
--controlnet-preprocessor-cache-size Cache size for controlnet preprocessor results
--controlnet-loglevel Log level for the controlnet extension
--controlnet-tracemalloc Enable malloc memory tracing
MacOS 支持
已与 PyTorch 夜间版本进行测试:https://github.com/Mikubill/sd-webui-controlnet/pull/143#issuecomment-1435058285
若要在此扩展中配合 MPS 和普通 PyTorch 使用,目前可能需要使用 --no-half 参数启动 WebUI。
已弃用版本存档
旧版本(sd-webui-controlnet 1.0)已存档于
https://github.com/lllyasviel/webui-controlnet-v1-archived
使用此版本并非暂停更新的临时措施。一旦选择此版本,将永久停止接收更新。
若您需要在专业工作室中100%精确复现之前所有结果的每个像素,请考虑使用此版本。
致谢
此实现受 kohya-ss/sd-webui-additional-networks 启发。


























