一、介绍
本篇来介绍下ComfyUI里面如何使用 Controlnet这个神器,有用ControlNet和没用ControlNet,区别就是木棍和大炮,ControlNet是我们学习AI绘画必不可少的插件之一,这里我权当你已经了解过在WebUI那边关于Contrlnet的使用了,如果还没有,请先自行学习。
二、安装
2.1 插件安装
comfyUI里面默认只有一个Canny的预处理器,这里我们需要安装一下
管理器里面搜索 Controlnet,就可以搜到这个Fannovel16作者发布的Controlnet的预处理器插件了,点击安装成果后重启服务即可。
2.2 预处理模型安装
预处理插件下载了后,其实是没有预处理模型的,大家在每次运行一个预处理的时候会去检测文件夹里面是否有预处理的模型,网速不行的同学可能这里会卡主,所以这边我也提供了预处理的模型,网盘看下面 2.3章节。
大家可以下载了放到如下路径:
\ComfyUI\custom_nodes\comfyui_controlnet_aux\ckpts\lllyasviel\Annotators
2.3 controlnet 模型下载
Controlnet的模型目前涉及的范围很广,分两类
•
之前的Controlnet 1.1 ,针对曾经SD 1.5版本的
•
针对SDXL模型的Controlnet
官方下载地址:
1.1版本的Controlnet模型:https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main
SDXL的controlnet模型安装:https://huggingface.co/lllyasviel/sd_control_collection/tree/main
支持XL的模型版本非常多,大家不需要全部下载,按需即可,我推荐使用 diffusers、sai、t2i 这3个系列的即可,挑选自己喜欢的下载即可。
三、使用
我们知道,Contrlnet里面分为预处理和模型两块,安装好上面插件后,新建节点里面就多了个 ControlNet预处理器这个选项,里面就是我们常用到的一些关于ControlNet的预处理器。
要是用预处理,节点路径如下
我们先来个最常见的姿势图,左边图像拖出来选择加载图像,右边拖出来现在预览图像
然后运行以下,最终像这样,是不是很熟悉,这就是WebUI那边一套完整的预处理
3.1 加载默认文生图工作流
3.2 引入ControlNet模型-单个使用
接着通过新建节点 -> 条件 -> ContrlNet应用 来生成一个 ControlNet模型
对了,这里有ControlNet和 ControlNet应用(高级),我们来对比一下区别
可以看到高级的比普通的就多了一个负面条件以及开设时间和结束时间,高级这个更接近我们以前学的SD,所以这里我推荐用高级的就行。
可以看到ControlNet应用有几个属性,分别是
正面条件:用来连接CLIP文本,对应正面提示词
负面条件:用来连接CLIP文本,对应负面提示词
ContrlNet:用来连接模型
图像:用来对应预处理
强度:就是权重的意思
开始时间:Controlnet的开始时间
结束时间:Controlnet结束始时间
玩过SD的应该对这些属性不会陌生。
我们接着先连接图像,也就是预处理,预处理怎么生成刚才说过了,关键点就是用预处理的右边图像节点连接ContrlNet应用的左边图像节点。
然后,ControlNet左边这里拖出来连接以下ControlNet模型,这里有2个选项,我们选择第二个带Diff的即可。
第二个带diff的是兼容第一个的,所以在我们不知道我们的ControlNet是否属于diff模型的时候,一般是用第二个选项会更加方便一些。
然后就可以选择你要使用的ControlNet模型了,我这里用openpose姿势模型。
ControlNet模型这里你会发现左边有个model的紫色节点,这个节点是用来连接你最早那个大模型的,所以我们这里把他们连接起来。
接下来,就差最后这个条件了,条件节点用来连接CLIP这个文本输入的,左边的连接CLIP编辑器,右边的是连接到采样器的。
逻辑前后对比:
原本的是: CLIP-> 采样器
现在变成:CLIP-> ControlNet控制器 -> 采样器
实际效果看下图所示:
最终结果展示,可以看到,生成的图姿势确实和我们的参考图一致
3.3 引入ControlNet模型-多个使用
我们以前玩SD的时候,一般都是2-3个Controlnet一起结合使用的,比如即用了openpose,又用了线稿。
这里我们使用多个Controlent也很简单,就是把他们想之前用lora那样,串起来即可,one by one