用于ControlNet和其他基于注入的SD控件的WebUI扩展。
针对 AUTOMATIC1111 的 Stable Diffusion web UI 网络用户界面的扩展,它可以让网络界面在原始的 Stable Diffusion 模型中添加 ControlNet 条件来生成图像。这种添加是实时的,不需要进行合并。
ControlNet 是一种神经网络结构,可以通过添加额外的条件来控制扩散模型。该扩展灵感来源于 kohya-ss/sd-webui-additional-networks。
这个扩展对于需要控制扩散模型的用户来说是非常有用的。添加 ControlNet 条件可以帮助用户更好地掌控模型的生成过程,从而生成更加符合用户需求的图像。同时,实时添加条件的特性也极大地提高了用户的使用体验。如果你需要控制扩散模型并且想要使用 Stable Diffusion 网络用户界面来生成图像,那么这个扩展就是你不可或缺的工具。
安装更新&模型下载
直接在你的SD下Extensions选项卡下输入网址:
https://github.com/Mikubill/sd-webui-controlnet.git
进行安装即可。
模型下载登录网址:
https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main
下载全部文件到你的sd目录下 extensions\sd-webui-controlnet\models 即可。
文件名上的字母标识:p是最终版,e是测试版,u是未完成。
扩展1.1的新特性
完美支持所有ControlNet 1.0/1.1和T2I适配器型号
对所有可用的型号和预处理器都提供了完美的支持,包括对T2I样式适配器和ControlNet 1.1 Shuffle的完美支持。(请确保YAML文件名和模型文件名相同,还可以在“stable-diffusion-webui\extensions\sd-webui-controlnet\models”中查看YAML文件。)
- **A1111高分辨率修复的完美支持:**如果在A1111中开启了高分辨率修复,每个controlnet将会输出两个不同大小的控制图像:一个小的和一个大的。小的控制图像用于基本生成,大的控制图像用于高分辨率修复生成。这两个控制图像由一种称为“超高质量控制图像重采样”的智能算法计算得出。这是默认开启的,不需要更改任何设置。
- A1111 I2I和Mask的完美支持: 对ControlNet与A1111的不同类型的遮罩进行了广泛的测试,包括“Inpaint masked”/“Inpaint not masked”、“Whole picture”/“Only masked”以及“Only masked padding”和“Mask blur”。调整大小完全匹配A1111的“Just resize”/“Crop and resize”/“Resize and fill”。这意味着可以在几乎任何A1111 UI中轻松使用ControlNet!
- 像素完美模式: 如果打开像素完美模式,您不需要手动设置预处理器(注释器)分辨率。ControlNet将自动为您计算最佳的注释器分辨率,以便每个像素完全匹配稳定扩散。
- 用户友好的GUI和预处理器预览: 我们重新组织了一些先前混淆的UI,例如“新画布的画布宽度/高度”,现在它在📝按钮中。现在,预览GUI由“allow preview”选项和触发按钮💥控制。预览图像的大小比以前更好,不需要上下滚动-您的a1111 GUI不会再乱了!
- 控制模式(以前称为猜测模式):已经修复了先前1.0版本的猜测模式中的许多错误,现在它被称为控制模式。
通过关键词控制ControlNet举例。
Input (depth+canny+hed) | Control Mode: “Balanced” | Control Mode: “My prompt is more important” | Control Mode: “ControlNet is more important” |
---|---|---|---|
默认设置
This is my setting. If you run into any problem, you can use this setting as a sanity check
官网案例适配示例
Source | Input | Output |
---|---|---|
(no preprocessor) | ||
(no preprocessor) | ||
T2I-Adapter 适配器支持
T2I-Adapter 是一个小型网络,可以为预训练的文本到图像模型提供额外的指导。
我测试的不是特别好用,可能方法不对。
使用 T2I-Adapter 模型方法:
- 从
https://huggingface.co/TencentARC/T2I-Adapter
下载文件。 - 复制相应的配置文件并将其重命名为与模型相同的名称 - 请参见下面的列表。
- 用草图模型生成图像时,强度(t)最好使用稍低的值,例如0.6-0.8。
Adapter | Config |
---|---|
t2iadapter_canny_sd14v1.pth | sketch_adapter_v14.yaml |
t2iadapter_sketch_sd14v1.pth | sketch_adapter_v14.yaml |
t2iadapter_seg_sd14v1.pth | image_adapter_v14.yaml |
t2iadapter_keypose_sd14v1.pth | image_adapter_v14.yaml |
t2iadapter_openpose_sd14v1.pth | image_adapter_v14.yaml |
t2iadapter_color_sd14v1.pth | t2iadapter_color_sd14v1.yaml |
t2iadapter_style_sd14v1.pth | t2iadapter_style_sd14v1.yaml |
T2I-Adapter 示例
Source | Input | Output |
---|---|---|
(no preprocessor) | ||
(no preprocessor) | ||
(no preprocessor) | ||
(no preprocessor) | ||
(clip, non-image) |
Examples by catboxanon, no tweaking or cherrypicking. (Color Guidance)
Image | Disabled | Enabled |
---|---|---|
Multi-ControlNet / 联合调节(实验)
此选项允许在单代中使用多个 ControlNet 输入。要启用此选项,请更改Multi ControlNet: Max models amount (requires restart)设置。注意需要重新启动 WebUI 才能使更改生效。
如果启用了其中任何一个,猜测模式将应用于所有 ControlNet。
Source A | Source B | Output |
---|---|---|
实际操作举例
案例中使用的通用关键词为
- 正面:Intricately detailed Full body, Wear evening dress,professional photograph, of (seductive royal vampire female), ((clothed)),((evening dress)),standing, in luxurious fantasy castle, toned abs, small breasts, big ass, pretty face, amber red eyes, (fangs), succubus, sexy, shallow depth of field, cinematic lighting, photographed on a Sony a9 II, (highly detailed:1.2), (soft focus), Game of Thrones film still, HDR, 8k resolution
- 负面:(monochrome:1.3), (oversaturated:1.3), bad hands, lowers, 3d render, cartoon, long body, wide hips, narrow waist, disfigured, ugly, cross eyed, squinting, grain, Deformed, blurry, bad anatomy, poorly drawn face, mutation, mutated, extra limb, ugly, poorly drawn hands, missing limb, floating limbs, disconnected limbs, malformed hands, blur, out of focus, long neck, disgusting, poorly drawn, mutilated, mangled, old, surreal, ((text)),exposed
- Base模型:clarity_19
- 采样方法:DPM++ SDE Karras
ControlNet 1.1 Depth (深度)
用深度图控制稳定扩散,该模型非常稳健,可以处理来自渲染引擎的真实深度图。
- 模型名称:control_v11f1p_sd15_depth [cfd03158]
- 模型文件:control_v11f1p_sd15_depth.pth
- 配置文件:control_v11f1p_sd15_depth.yaml
- 预处理器:depth, depth_leres, depth_zoe
ControlNet 1.1 Normal (正常)
使用法线贴图控制稳定扩散,使用 Bae 的法线图估计方法。只要法线贴图遵循ScanNet 的协议,该模型就可以接受来自渲染引擎的法线贴图。也就是说法线贴图的颜色应该看起来像这张图片的第二列。
- 模型名称: control_v11p_sd15_normalbae [316696f1]
- 模型文件:control_v11p_sd15_normalbae.pth
- 配置文件:control_v11p_sd15_normalbae.yaml
- 预处理器: normal_bae
ControlNet 1.1 Canny (边缘检测-精明)
使用 Canny Maps 控制稳定扩散,训练数据使用具有随机阈值的 Canny。
- 模型名称:control_v11p_sd15_canny [d14c016b]
- 模型文件:control_v11p_sd15_canny.pth
- 配置文件:control_v11p_sd15_canny.yaml
- 预处理器:canny
ControlNet 1.1 MLSD(线条检测)
用 M-LSD 直线控制稳定扩散,该模型从 ControlNet 1.0 恢复并使用 A100 80G 的 GPU 200 小时进行训练。
- 模型名称:control_v11p_sd15_mlsd [aca30ff0]
- 模型文件:control_v11p_sd15_mlsd.pth
- 配置文件:control_v11p_sd15_mlsd.yaml
- 预处理器:mlsd
ControlNet 1.1 Scribble(涂鸦)
用涂鸦控制稳定扩散,合成的涂鸦,该模型从 ControlNet 1.0 恢复并使用 A100 80G 的 GPU 200 小时进行训练。
- 模型名称:control_v11p_sd15_scribble [d4ba51ff]
- 模型文件:control_v11p_sd15_scribble.pth
- 配置文件:control_v11p_sd15_scribble.yaml
- 预处理器:pidinet_scribble, scribble_xdog, scribble_hed,手绘涂鸦
-
ControlNet 1.1 Soft Edge(软边缘)
使用软边控制稳定扩散,与以前的模型相比,该模型有了显着改进。添加了一种名为“SoftEdge_safe”的新型软边缘。这是因为 HED 或 PIDI 倾向于在软估计中隐藏原始图像的损坏灰度版本,而这种隐藏模式会分散 ControlNet 的注意力,从而导致不良结果。解决方案是使用预处理将边缘图量化为多个级别,以便完全删除隐藏的模式。
- 模型名称:control_v11p_sd15_softedge [a8575a2a]
- 模型文件:control_v11p_sd15_softedge.pth
- 配置文件:control_v11p_sd15_softedge.yaml
- 预处理器:hed, hed_safe,pidinet, pidinet_safe, pidinet_sketch, pidinet_scribble
ControlNet 1.1 Segmentation(分段)
用语义分割控制稳定扩散,该模型可以接收 ADE20K 或 COCO 两种类型的注释。识别分段协议对于 ControlNet 编码器来说是微不足道的,并且训练多个分段协议的模型可以带来更好的性能。
- 模型名称:control_v11p_sd15_seg [e1f51eb9]
- 模型文件:control_v11p_sd15_seg.pth
- 配置文件:control_v11p_sd15_seg.yaml
- 预处理器:segmentation,oneformer_coco, oneformer_ade20k
ControlNet 1.1 Openpose (姿态检测)
使用 Openpose 控制稳定扩散,该模型经过训练。
- 模型名称:control_v11p_sd15_openpose [cab727d4]
- 模型文件:control_v11p_sd15_openpose.pth
- 配置文件:control_v11p_sd15_openpose.yaml
- 预处理器:openpose, openpose_hand, openpose_face, openpose_faceonly, openpose_full
可以接受以下组合:
- Openpose= Openpose 身
- Openpose Full = Openpose 身体 + Openpose 手 + Openpose 脸
ControlNet 1.1 Lineart(线稿)
用线稿控制稳定扩散,该模型是在 awacke1/Image-to-Line-Drawings 上训练的。预处理器可以从图像(Lineart 和 Lineart_Coarse)生成详细或粗略的线稿。该模型经过足够的数据增强训练,可以接收手动绘制的线稿。
- 模型名称:control_v11p_sd15_lineart [43d4be0d]
- 模型文件:control_v11p_sd15_lineart.pth
- 配置文件:control_v11p_sd15_lineart.yaml
- 预处理器:lineart, lineart_coarse, lineart_anime, lineart_standard, lineart_anime_denoise
ControlNet 1.1 Anime Lineart(动漫线稿)
用动漫艺术线条控制稳定扩散,需要anything x.x 模型进行生成。
- 模型名称:control_v11p_sd15s2_lineart_anime [3825e83e]
- 模型文件:control_v11p_sd15s2_lineart_anime.pth
- 配置文件:control_v11p_sd15s2_lineart_anime.yaml
- 预处理器:lineart, lineart_coarse, lineart_anime, lineart_standard, lineart_anime_denoise
- base model:anything-v-4.5
ControlNet 1.1 Shuffle(洗牌)
通过内容随机播放控制稳定的传播,该模型经过训练以重组图像。我们使用随机流来打乱图像并控制稳定扩散来重组图像。事实上,由于 ControlNet 被训练来重组图像,我们甚至不需要打乱输入——有时我们可以只使用原始图像作为输入。ControlNet可以通过提示或其他ControlNet的引导来改变图像风格。Shuffle 将是唯一一种图像风格化方法,与其他模型ControlNet模型合用效果会更好。
- 模型名称:control_v11e_sd15_shuffle [526bfdae]
- 模型文件:control_v11e_sd15_shuffle.pth
- 配置文件:control_v11e_sd15_shuffle.yaml
- 预处理器:shuffle
ControlNet 1.1 指导 Pix2Pix
使用 Instruct Pix2Pix 控制稳定扩散,这个模型是用50%的指令提示和50%的描述提示来训练的。例如,a lovely boy 是描述提示,而 turn boy lovely 是指令提示,该模型可以应用于任何基础模型。
- 模型名称:control_v11e_sd15_ip2p [c4bb465c]
- 模型文件:control_v11e_sd15_ip2p.pth
- 配置文件:control_v11e_sd15_ip2p.yaml
- 预处理器:none, canny, depth, depth_leres, hed, hed_safe, mediapipe_face, mlsd, normal_map, openpose, openpose_hand, openpose_face, openpose_faceonly, openpose_full, clip_vision, color, pidinet, pidinet_safe, pidinet_sketch, pidinet_scribble, scribble_xdog, scribble_hed, segmentation, threshold, depth_zoe, normal_bae, oneformer_coco, oneformer_ade20k, lineart, lineart_coarse, lineart_anime, lineart_standard, shuffle, tile_resample, inpaint, invert, lineart_anime_denoise
主要可以通过单张控制效果输出,组合使用效果更佳。
ControlNet 1.1 Inpaint(修复)
使用 Inpaint 控制稳定扩散。这个修复 ControlNet 使用 50% 的随机掩码和 50% 的随机光流遮挡掩码进行训练。这意味着该模型不仅可以支持修复应用程序,还可以处理视频光流扭曲。也许我们将来会提供一些示例(取决于我们的工作量)。
此 gradio 演示不包括后期处理。理想情况下,您需要在每次扩散迭代中对潜像进行后处理,并对 vae 解码后的图像进行后处理,使未遮罩区域保持不变。然而,这实现起来很复杂,也许更好的想法是在 a1111 中实现。在这个 gradio 示例中,输出只是扩散的原始输出,图像中未遮罩的区域可能会因为 vae 或扩散过程而改变。
- 模型名称:control_v11p_sd15_inpaint [ebff9138]
- 模型文件:control_v11p_sd15_inpaint.pth
- 配置文件:control_v11p_sd15_inpaint.yaml
- 预处理器:none, canny, depth, depth_leres, hed, hed_safe, mediapipe_face, mlsd, normal_map, openpose, openpose_hand, openpose_face, openpose_faceonly, openpose_full, clip_vision, color, pidinet, pidinet_safe, pidinet_sketch, pidinet_scribble, scribble_xdog, scribble_hed, segmentation, threshold, depth_zoe, normal_bae, oneformer_coco, oneformer_ade20k, lineart, lineart_coarse, lineart_anime, lineart_standard, shuffle, tile_resample, inpaint, invert, lineart_anime_denoise
ControlNet 1.1 Tile(未完成)
用瓷砖控制稳定扩散,越来越多的人开始考虑采用不同的方法在拼贴处进行漫射,以便图像可以非常大(4k 或 8k)。
- 模型名称:control_v11f1e_sd15_tile [a371b31b]
- 模型文件:control_v11f1e_sd15_tile.pth
- 配置文件:control_v11f1e_sd15_tile.yaml
- 预处理器:none, canny, depth, depth_leres, hed, hed_safe, mediapipe_face, mlsd, normal_map, openpose, openpose_hand, openpose_face, openpose_faceonly, openpose_full, clip_vision, color, pidinet, pidinet_safe, pidinet_sketch, pidinet_scribble, scribble_xdog, scribble_hed, segmentation, threshold, depth_zoe, normal_bae, oneformer_coco, oneformer_ade20k, lineart, lineart_coarse, lineart_anime, lineart_standard, shuffle, tile_resample, inpaint, invert, lineart_anime_denoise
待更新。