ControlNet 和其他基于注入的 SD 控件的 WebUI 扩展。
此扩展适用于 AUTOMATIC1111 的稳定扩散 Web UI,允许 Web UI 将 ControlNet 添加到原始稳定扩散模型以生成图像。添加是即时的,不需要合并。
https://github.com/Mikubill/sd-webui-controlnet.git
到“扩展 git 存储库的 URL”。您可以在这里找到所有下载链接:https://github.com/Mikubill/sd-webui-controlnet/wiki/Model-download。
现在我们完美支持所有可用的模型和预处理器,包括完美支持 T2I 样式适配器和 ControlNet 1.1 Shuffle。 (确保您的 YAML 文件名和模型文件名相同,另请参阅“stable-diffusion-webuiextensionssd-webui-controlnetmodels”中的 YAML 文件。)
现在,如果您在 A1111 中打开 High-Res Fix,每个控制网络将输出两个不同的控制图像:一大一小。小的用于您的基本生成,大的用于您的高分辨率修复生成。这两个控制图像是通过称为“超高质量控制图像重采样”的智能算法计算的。默认情况下此功能处于打开状态,您无需更改任何设置。
现在,ControlNet 使用 A1111 的不同类型的遮罩进行了广泛的测试,包括“遮罩修复”/“未遮罩修复”、“全图”/“仅遮罩”、“仅遮罩填充”和“遮罩模糊”。调整大小与A1111的“仅调整大小”/“裁剪并调整大小”/“调整大小并填充”完美匹配。这意味着您可以毫无困难地在 A1111 UI 中的几乎所有位置使用 ControlNet!
现在,如果您打开像素完美模式,则无需手动设置预处理器(注释器)分辨率。 ControlNet 将自动为您计算最佳注释器分辨率,以便每个像素完美匹配稳定扩散。
我们重新组织了一些以前令人困惑的用户界面,例如“新画布的画布宽度/高度”,现在它位于按钮中。现在预览 GUI 由“允许预览”选项和触发按钮 ? 控制。预览图像尺寸比以前更好,并且您不需要上下滚动 - 您的 a1111 GUI 将不再混乱!
现在ControlNet 1.1可以支持几乎所有的Upscaling/Tile方法。 ControlNet 1.1 支持脚本“Ultimate SD upscale”和几乎所有其他基于图块的扩展。请不要将“Ultimate SD upscale”与“SD upscale”混淆 - 它们是不同的脚本。请注意,最推荐的升级方法是“平铺 VAE/扩散”,但我们测试了尽可能多的方法/扩展。请注意,自 1.1.117 起支持“SD upscale”,如果您使用它,则需要将所有 ControlNet 图像保留为空白(我们不推荐“SD upscale”,因为它有些错误并且无法维护 - 使用“终极 SD 高档”而不是)。
我们修复了之前1.0的猜测模式中的许多错误,现在它被称为控制模式
现在您可以控制哪个方面更重要(您的提示或您的 ControlNet):
“平衡”:CFG 刻度两侧的 ControlNet,与关闭 ControlNet 1.0 中的“猜测模式”相同
“我的提示更重要”:CFG规模两侧的ControlNet,逐渐减少SD U-Net注入(layer_weight*=0.825**I,其中0<=I <13,13表示ControlNet注入SD 13次)。通过这种方式,您可以确保您的提示完美地显示在生成的图像中。
“ControlNet 更重要”:ControlNet 仅在 CFG 规模的条件侧(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 图像,发送到 inpaint,然后屏蔽掉空白 512x512 部分来漫射具有相似外观的狗。然而,这种方法通常不太令人满意,因为图像是相连的并且会出现许多失真。
这个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-specation
这是我的设置。如果遇到任何问题,可以使用此设置作为健全性检查
https://huggingface.co/lllyasviel/ControlNet/tree/main/models
您仍然可以使用以前的 ControlNet 1.0 中的所有先前模型。现在,以前的“深度”现在称为“深度_midas”,以前的“法线”称为“normal_midas”,以前的“hed”称为“softedge_hed”。从1.1开始,所有的线图、边缘图、线稿图、边界图都将有黑色背景和白色线条。
(来自腾讯ARC/T2I-Adapter)
要使用 T2I 适配器型号:
请注意,“CoAdapter”尚未实现。
以下结果来自 ControlNet 1.0。
来源 | 输入 | 输出 |
---|---|---|
(无预处理器) | ||
(无预处理器) | ||
以下示例来自 T2I-Adapter。
来自t2iadapter_color_sd14v1.pth
:
来源 | 输入 | 输出 |
---|---|---|
来自t2iadapter_style_sd14v1.pth
:
来源 | 输入 | 输出 |
---|---|---|
(剪辑,非图像) |
--xformers
并在 UI 中勾选Low VRAM
模式,最高可达 768x832此选项允许单代有多个 ControlNet 输入。要启用此选项,请更改设置中的Multi ControlNet: Max models amount (requires restart)
。请注意,您需要重新启动 WebUI 才能使更改生效。
来源A | 来源B | 输出 |
权重是controlnet“影响力”的权重。它类似于提示注意/强调。例如(我的提示:1.2)。从技术上讲,它是在将 ControlNet 输出与原始 SD Unet 合并之前将其相乘的系数。
引导开始/结束是控制网应用的总步数的百分比(引导强度 = 引导结束)。它类似于提示编辑/移动。例如 [myprompt::0.8] (它适用于从开始到总步骤的 80%)
将任何单元置于批处理模式以激活所有单元的批处理模式。为每个单元指定一个批处理目录,或使用 img2img 批处理选项卡中的新文本框作为后备。尽管文本框位于 img2img 批处理选项卡中,但您也可以使用它在 txt2img 选项卡中生成图像。
请注意,此功能仅在 gradio 用户界面中可用。根据需要多次调用 API 以进行自定义批量调度。
此扩展程序可以通过 API 或外部扩展程序调用接受 txt2img 或 img2img 任务。请注意,您可能需要在外部呼叫设置中启用Allow other scripts to control this extension
。
要使用 API:使用参数--api
启动 WebUI,然后转至http://webui-address/docs
获取文档或结帐示例。
使用外部调用:Checkout Wiki
此扩展将这些命令行参数添加到 webui:
--controlnet-dir ADD a controlnet models directory
--controlnet-annotator-models-path 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
每晚使用 pytorch 进行测试:#143(评论)
要将此扩展与 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