它来了!SDXL + ControlNet 终于强强联合!
发布时间:2024年06月06日
一、ControlNet 简介
SDXL 1.0 发布已经过去20多天,终于迎来了首批能够应用于 SDXL 的 ControlNet 模型了!
我们都知道,相比起通过提示词的方式,ControlNet 能够以更加精确的方式引导 stable diffusion 模型生成我们想要的内容。
就好比当我们想要一张“鲲鲲山水图”的时候,会发现很难通过语言来描述这样的景象。但是有了 ControlNet 之后,一切都会变得容易许多。我们只需要一张“鲲”的图片作为 ControlNet 的输入,然后在提示词框内输入山水的描述,我们的“鲲鲲山水图”就呼之欲出了。
Stable diffusion V1.5 以及基于此模型的微调模型都能使用非常多种类的 ControlNet 模型,比如 depth(深度图)、canny(边缘检测)和 openpose(人物姿势)等等。具体内容可看往期介绍 ControlNet 的内容。
那么大家可能就会会有疑问了,老版本的 ControlNet 模型能不能在 SDXL 中使用呢?
答案恐怕是“不能”。
由于 SDXL 的模型架构相比 SD 1.5有明显的改变,因此不能兼容以往的 ControlNet 模型。在 SDXL 正式发布之前,ControlNet 官方就已经开始着手训练适用于 SDXL 的 ControlNet 新模型,目前仍在测试阶段,正式版本应该在不久后就会公开。
那么今天要介绍的 ControlNet 模型来自哪里呢?答案是第三方。事实上,SD 1.5 使用的一些 ControlNet 模型并不是官方模型,比如广为使用的 qrcode(二维码)模型。此模型在上期制作“隐藏字”的文章中已经大展拳脚。
二、SDXL 的 ControlNet 模型
目前适用于 SDXL 的 ControlNet 模型有三个,包括 depth(深度图)、canny(线条检测)和 openpose(人物姿势检测)。
其中前两个模型为 Hugging Face 上一个称作 “diffusers” 的团队发布,这个团队为非盈利组织,由多名AI热衷者自发组建而成,发布过许多 diffusion 相关的模型。
Canny 模型生成效果示例
图源:Hugging Face/diffusers
Depth 模型生成效果示例
图源:Hugging Face/diffusers
而 openpose 模型则是由 Hugging Face 上的 “thibaud” 发布,他貌似是一个活跃于AI开源社区的大佬,之前还发布过适用于 SD 2.1 的ControlNet 模型。
Openpose 模型生成效果示例
图源:Hugging Face/thibaud
三、如何使用 SDXL ControlNet?
由于 SDXL 模型参数量较大,导致 ControlNet 的参数量也水涨船高,因此要想流畅运行 SDXL + ControlNet,需要较大的显存和内存。
性能要求:建议显存至少8G,推荐12G及以上,内存至少16G,推荐32G及以上。
如果想正常使用 SDXL ControlNet,ComfyUI 是最好的选择。后面如果能在 A1111 中使用 SDXL ControlNet,我会第一时间写一篇文章介绍,毕竟 A1111 的图形界面真的太直观,太好用了。
但是目前来看,A1111 还是比较适合运行 SD1.5 模型,对 SDXL 的支持仍然不理想,如果还要加上 ControlNet 的话,运行起来速度肯定奇慢无比,除非原作者能够专门针对 SDXL 进行底层代码优化,这工程量可能又有点大了。
因此,如果你真的很想玩转 SDXL 模型,我还是建议你开始学习使用 ComfyUI 的使用方法,这会大大要提高 SDXL 的运行速度,也能降低对电脑的性能要求。
使用 SDXL ControlNet 需要安装或下载的内容包括:
· ComfyUI
· ComfyUI Manager(ComfyUI的一个插件,安装后方便管理 ComfyUI 其它文件)
· comfyui_controlnet_aux(ComfyUI 的自定义节点,运行 SDXL ControlNet 必备)
· ControlNet 模型文件
· 另外,建议自备一个梯子,这能省去安装和使用过程的很多麻烦
下面一一介绍具体步骤。
1、ComfyUI 的简介和安装方法点击这里
2、安装 ComfyUI manager(ComfyUI 管理器)
① 进入 ComfyUI_windows_portable\ComfyUI\custom_nodes 路径
② 在路径框内输入 cmd,回车,打开 cmd 面板
③ 输入 git clone https://github.com/ltdrdata/ComfyUI-Manager.git,回车
④ 等待下载完成后,重启 ComfyUI 即可
⑤ 如果下载失败,请尝试使用梯子
⑥ 重启后如果你可以在右侧看到 “manager” 选项框,表示安装完成。
3、安装 comfyui_controlnet_aux
① 点击 “manager” 选项框,选择 “Install Custom Nodes”。如果始终不弹出自定义节点列表,请检查是否开启梯子。
② 在右上方的框内输入 controlnet,然后点击 “search”,找到如下栏目
③ 点击右边的 “install”,需要注意,因为我已经安装了该自定义节点,所以才呈现两个选项,正常情况下为单个选项
④ 安装好后重启一下
⑤ 如果你能找到如下的栏目,则表示安装成功
4、下载 ControlNet 模型
请将下载的模型转移到 \ComfyUI_windows_portable\ComfyUI\models\controlnet 路径下,并将模型重命名以方便区分。
§ Depth(深度图检测)模型下载链接:https://huggingface.co/diffusers/controlnet-depth-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors
§ Canny(边缘检测)模型下载链接:https://huggingface.co/diffusers/controlnet-canny-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors
§ Openpose(人物姿势)模型下载链接:https://huggingface.co/thibaud/controlnet-openpose-sdxl-1.0/resolve/main/OpenPoseXL2.safetensors
另外,Depth 和 Canny 两种模型还提供了两种缩小版的模型,会损失部分性能,但能够大幅降低存储空间以及提高出图速度。原模型的大小约5G,有5x和7x的缩小版本,缩小后的模型大小分别约为 1G 和 0.7G。如果你的显存大于8G,可以下载原模型使用;如果你的显存小于8G,则还是推荐使用两个缩小版的模型。
§ 缩小5x的 Depth 模型下载链接:https://huggingface.co/diffusers/controlnet-depth-sdxl-1.0-mid/resolve/main/diffusion_pytorch_model.safetensors
§ 缩小7x的 Depth 模型下载链接:https://huggingface.co/diffusers/controlnet-depth-sdxl-1.0-small/resolve/main/diffusion_pytorch_model.safetensors
§ 缩小5x的 Canny 模型下载链接:https://huggingface.co/diffusers/controlnet-canny-sdxl-1.0-mid/resolve/main/diffusion_pytorch_model.safetensors
§ 缩小7x的 Canny 模型下载链接:https://huggingface.co/diffusers/controlnet-canny-sdxl-1.0-small/resolve/main/diffusion_pytorch_model.safetensors
四、SDXL ControlNet 使用方法
1、下载 .json 格式的文件,里边包含三个文件,分别为 Depth、Canny 和 openpose 的 ComfyUI 流程文件。下载链接:https://pan.baidu.com/s/1nUzxJ1oe3ur3POSiITiWWA?pwd=69il
2、打开 ComfyUI,点击 “Load”
3、根据自己的需要选择并加载其中一个 json 文件,这里我选择加载 SDXL+openpose.json
4、选择 SDXL 模型,这里我使用的是 SDXL 基础模型,你也可以使用其它 SDXL 模型
5、选择 ControlNet 模型,此设置下,只能为 openpose 模型
6、上传参考图
7、ControlNet 强度在下图所示位置调整
8、设置参考图处理分辨率。保持图片的长宽比,如果设置的长宽比与参考图不同,建议在 “crop” 选项中选择 “center”。此设置与 A1111 中的处理分辨率选项所起的作用基本相同。
9、此处可以设置要检测的对象,可以单独设置是否需要检测手部、身体或脸部
10、设置输出图片大小。建议输出图片的长宽比与原图保持相同。
11、设置采样参数。此处根据自己的喜好设置即可。点击节点左上方的灰色小圆点即可展开或折叠节点。
10、点击右上角的 “queue prompt” 即可生成图片。首次运行需要下载相关的预处理器模型文件,如果出现报错,请开启梯子
11、其它 ControlNet 的使用方法类似,加载不同的 .json 文件即可
五、总结
总的来说,已经陆陆续续有一些 SDXL 的 ControlNet 模型开始发布了,前面介绍的三种模型是相对来说传播比较广,性能也相对稳定的模型,可以在 ComfyUI 中完美运行。后续如果有更多 ControlNet 模型发布,我也会继续扩充这部分内容,敬请期待吧!
最后,需要注意的是,目前所有发布的 SDXL ControlNet 模型的表现还不是特别稳定,偶尔生成的结果会不理想,这是正常现象,多生成几张图片就好了。
出自:https://mp.weixin.qq.com/s/Ki_91zZ6xGc41i-f7ISrKA
如果你想要了解关于智能工具类的内容,可以查看 智汇宝库,这是一个提供智能工具的网站。
在这你可以找到各种智能工具的相关信息,了解智能工具的用法以及最新动态。
精挑细选,让优质AI原生应用触手可及,依托领先大模型能力,助力企业业务提效和创新发展。