Project Icon

sd-webui-controlnet

为Stable Diffusion WebUI增添高度可控的图像生成功能

sd-webui-controlnet扩展为Stable Diffusion WebUI集成了ControlNet功能。它支持多种控制模型和预处理器,实现像素级精确控制,兼容高分辨率修复和上采样脚本。用户可调整提示词与控制网络的权重,还可使用参考图像进行无模型控制。该扩展显著提升了Stable Diffusion的可控性,为AI图像生成开启更多可能性。

Stable Diffusion WebUI的ControlNet扩展

ControlNet和其他基于注入的SD控制的WebUI扩展。 图片

这个扩展是为AUTOMATIC1111的Stable Diffusion web UI设计的,允许Web UI将ControlNet添加到原始的Stable Diffusion模型中生成图像。这种添加是即时进行的,无需合并。

新闻

安装

  1. 打开"扩展"标签。
  2. 在该标签中打开"从URL安装"标签。
  3. 在"扩展的git仓库URL"中输入https://github.com/Mikubill/sd-webui-controlnet.git
  4. 点击"安装"按钮。
  5. 等待5秒,你会看到消息"已安装到stable-diffusion-webui\extensions\sd-webui-controlnet。使用已安装标签重启"。
  6. 转到"已安装"标签,点击"检查更新",然后点击"应用并重启UI"。(下次你也可以使用这些按钮来更新ControlNet。)
  7. 完全重启A1111 webui,包括你的终端。(如果你不知道什么是"终端",你可以重启电脑来达到同样的效果。)
  8. 下载模型(见下文)。
  9. 将模型放入正确的文件夹后,你可能需要刷新才能看到这些模型。刷新按钮在你的"模型"下拉菜单右侧。

下载模型

你可以在这里找到所有下载链接:https://github.com/Mikubill/sd-webui-controlnet/wiki/Model-download。

ControlNet 1.1的特性

完美支持所有ControlNet 1.0/1.1和T2I Adapter模型。

现在我们完美支持所有可用的模型和预处理器,包括对T2I风格适配器和ControlNet 1.1 Shuffle的完美支持。(确保你的YAML文件名和模型文件名相同,参见"stable-diffusion-webui\extensions\sd-webui-controlnet\models"中的YAML文件。)

完美支持A1111高分辨率修复

现在如果你在A1111中开启高分辨率修复,每个controlnet将输出两个不同的控制图像:一个小的和一个大的。小的用于基本生成,大的用于高分辨率修复生成。这两个控制图像由一个智能算法计算,称为"超高质量控制图像重采样"。这是默认开启的,你不需要更改任何设置。

完美支持所有A1111 Img2Img或Inpaint设置和所有蒙版类型

现在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将自动为你计算最佳的标注器分辨率,使每个像素完美匹配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):

  • "平衡":ControlNet在CFG比例的两侧,与在ControlNet 1.0中关闭"猜测模式"相同

  • "我的提示词更重要":ControlNet在CFG比例的两侧,逐步减少SD U-Net注入(layer_weight*=0.825**I,其中0<=I<13,13表示ControlNet注入SD 13次)。这样,你可以确保你的提示词在生成的图像中完美显示。

  • "ControlNet更重要":ControlNet仅在CFG比例的条件方(A1111批处理中的cond)上起作用。这意味着如果你的cfg-scale是X,ControlNet将变得X倍强。例如,如果你的cfg-scale是7,那么ControlNet就会变得7倍强。请注意,这里的X倍强与"控制权重"不同,因为你的权重并未被修改。这种"更强"的效果通常产生的伪影更少,并给予ControlNet更多空间来猜测你的提示中缺失的内容(在之前的1.0版本中,这被称为"猜测模式")。

输入(深度+canny+hed)"平衡""我的提示更重要""ControlNet更重要"

仅参考控制

现在我们有了一个reference-only预处理器,它不需要任何控制模型。它可以直接使用图像作为参考来引导扩散过程。

(提示词"一只狗在草地上奔跑,最佳质量,...")

image

这种方法类似于基于修复的参考,但不会使你的图像变得混乱。

许多专业的A1111用户知道一个技巧,可以通过修复来使用参考图像进行扩散。例如,如果你有一张512x512的狗的图片,想生成另一张具有相同狗的512x512图片,一些用户会将512x512的狗图片和一个512x512的空白图片连接成一个1024x512的图片,发送到修复功能,然后遮罩掉空白的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-specification

默认设置

这是我的设置。如果你遇到任何问题,可以使用这个设置作为健全性检查

image

使用以前的模型

使用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模型:

  1. https://huggingface.co/TencentARC/T2I-Adapter/tree/main/models 下载文件
  2. 将它们放入"stable-diffusion-webui\extensions\sd-webui-controlnet\models"目录。
  3. 确保pth文件和yaml文件的文件名一致。

注意,"CoAdapter"尚未实现。

展示区

以下结果来自ControlNet 1.0。

输入输出
(无预处理器)
(无预处理器)

以下示例来自T2I-Adapter。

来自 t2iadapter_color_sd14v1.pth

输入输出

来自 t2iadapter_style_sd14v1.pth

输入输出
(clip,非图像)

最低要求

  • (Windows)(NVIDIA:Ampere)4GB - 启用 --xformers 选项,并在用户界面中勾选"低VRAM模式",可支持最高768x832分辨率

多重ControlNet

此选项允许单次生成使用多个ControlNet输入。要启用此选项,请在设置中更改"多重ControlNet:最大模型数量(需要重启)"。请注意,更改后需要重启WebUI才能生效。

源A源B输出

控制权重/开始/结束

权重是ControlNet"影响"的权重。它类似于提示词的注意力/强调。例如(myprompt:1.2)。从技术角度来说,它是在将ControlNet输出与原始SD Unet合并之前,用于乘以ControlNet输出的因子。

引导开始/结束是ControlNet应用的总步骤百分比(引导强度 = 引导结束)。它类似于提示词编辑/转移。例如 [myprompt::0.8](从开始应用到总步骤的80%)

批处理模式

将任何单元设置为批处理模式以激活所有单元的批处理模式。为每个单元指定批处理目录,或使用img2img批处理选项卡中的新文本框作为后备选项。尽管该文本框位于img2img批处理选项卡中,但您也可以使用它在txt2img选项卡中生成图像。

请注意,此功能仅在gradio用户界面中可用。如需自定义批处理调度,请多次调用API。

API和脚本访问

此扩展可以通过API或外部扩展调用接受txt2img或img2img任务。请注意,对于外部调用,您可能需要在设置中启用"允许其他脚本控制此扩展"。 使用API:使用参数 --api 启动WebUI,然后访问 http://webui-address/docs 获取文档,或查看示例

使用外部调用:查看Wiki

命令行参数

此扩展为webui添加了以下命令行参数:

    --controlnet-dir <controlnet模型目录路径>                                添加controlnet模型目录
    --controlnet-annotator-models-path <标注器模型目录路径>                  设置标注器模型目录
    --no-half-controlnet                                                     以全精度加载controlnet模型
    --controlnet-preprocessor-cache-size                                     controlnet预处理器结果的缓存大小
    --controlnet-loglevel                                                    controlnet扩展的日志级别
    --controlnet-tracemalloc                                                 启用malloc内存追踪

MacOS支持

已在pytorch nightly版本上测试: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的启发

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号