广告
了解详情
核心节点解析|ControlNet模型和预处理器之间的那些事儿
西安/UI设计师/1年前/5947浏览
版权
核心节点解析|ControlNet模型和预处理器之间的那些事儿
大家好,我是三石
今天给大家打来comfyUI入门教程的是
ControlNet模型和预处理器的功能讲解
,ControlNet相信大家都有所耳闻,这是sd中非常重要的一个功能,可以在不改变物体框架的基础上,通过正向、负向提示词生成类似的图片,效果相当不错,比如下面这张,哈哈。虽然很抽象,但至少能帮助大家一眼能看懂ControlNet是干什么事情的。
没错,ControlNet的灵魂就是“控制”,我给他起了一个漂亮的解释,叫做“带着枷锁跳舞”。
官方解释是:ControlNet 是一种神经网络结构,通过添加额外条件来控制扩散模型。也就是实现对细节的精确控制。
了解了这个之后,我们就可以今天的主题了,本篇文章目录:
- ControlNet模型介绍
- ControlNet各个模型的差异
- ControlNet预处理器介绍与安装
- 预处理器安装报错问题处理
- ControlNet基础工作流搭建与案例分享
- 总结
1.ControlNet模型介绍
1.1 模型介绍
Controlnet截止目前一共发布了14种模型,有些模型的功能是大体类似的,所以我按照自己的理解,又把他们分成了5类,分别是:
- 景深控制模型:ControlNet 1.1 Depth、ControlNet 1.1 Normal
- 线条控制模型:ControlNet 1.1 Canny、ControlNet 1.1 MLSD、ControlNet 1.1 Scribble、ControlNet 1.1 Soft Edge、ControlNet 1.1 Lineart、ControlNet 1.1 Anime Lineart、
- 姿态控制模型:ControlNet 1.1 Openpose
- 色彩控制模型:ControlNet 1.1 Shuffle、ControlNet 1.1 Segmentation
- 特殊模型:ControlNet 1.1 Instruct Pix2Pix、ControlNet 1.1 Inpaint、ControlNet 1.1 Tile、
可以发现,模型最多的还是前三类,景深控制、线条控制和姿态控制。
1.2 模型下载与安装
那知道了模型,我们怎么安装呢?这里给大家分享下官方地址:
这里大家要注意,controlnet的版本要和底模的版本保持一致,不然就会报错,可能出现以下情况,看绿色箭头处大家就明白了。
接着我们就要安装了,这个也比较简单,安装路径看下图,这里建议大家把 ".pth" 和 ".yaml" 都下载放进去,然后刷新或者重启下comfyui就可以了。
安装之后,在comfyUI界面双击鼠标左键输入“apply controlNet”,就可以调出该节点了,怎么使用我会在最后的案例中进行说明。
1.3 模型版本命名规则
大家应该也发现了,作为设计师,每次看到一常串看不到的英文和汉字,就不知所云,这个我当时也郁闷了好久,为什么一个模型的命名要这么长。。。
后来,我发现原作者已经做了详细的解释,这里我也帮助大家整理理解下:
我们最需要关注的是“e/p/u”模型完成度,和“基于sd1.5版本进行训练”两个数值,一个决定了模型的稳定程度,一个决定了模型的版本,这里建议大家优先尝试“P,已完成模型”。
下面这张是原版:
2.ControlNet各个模型的差异
接下来就是ControlNet的各个模型的介绍了,其实在官方网站中已经说的很详细了,我这里就结合案例帮助大家更好地理解下各个模型的差异。
第一类是景深控制模型:ControlNet 1.1 Depth、ControlNet 1.1 Normal
这两个模型是能够基于图片的立体纵深效果生成类似的画面。
第二类是线条控制模型:ControlNet 1.1 Canny、ControlNet 1.1 MLSD、ControlNet 1.1 Scribble、ControlNet 1.1 Soft Edge、ControlNet 1.1 Lineart、ControlNet 1.1 Anime Lineart。
这6个模型是能够基于线稿生成类似的画面,区别在于线稿的类型不一样,有的是直线,有的是曲线,还有的是涂鸦线,这就类似于每个人不一样的起稿方式。
第三类是姿态控制模型ControlNet 1.1 Openpose
这个模型可以基于人物的内部框架,身体姿势生成类似的画面。
第四类是色彩控制模型
ControlNet 1.1 Shuffle、ControlNet 1.1 Segmentation
这类模型是能够在原来的颜色上进行再创作,非常有意思。
第五类是特殊模型:ControlNet 1.1 Instruct Pix2Pix、ControlNet 1.1 Tile、ControlNet 1.1 Inpaint、
这三种模型分别是“指令模型”,比如第一张图,只要输入“make hand on fire”,就可以让手上出现火焰效果;第二个是“分块高清处理模型”,可以把一张模糊的图片变高清;最后一个是“局部重新绘制”模型,顾名思义,可以在蒙版区域进行局部内容替换。
这是ControlNet 1.1 Inpaint局部替换的效果。
ok,到这里就把ControlNet的14个模型介绍完了,大家有不清楚的可以访问下面的官方进行更详细的了解,其实这里面虽然模型很多,但是理解之后还是比较容易记住的,并且常用的模型大改占了一半,比如canny,MLSD,openpose这些,大家记得主流的模型其实就好了,并且希望大家在自己的模型上多试试,这样能加深理解,我这里因为精力有限,也不跟大家再细致地聊每一个模型,我会在后续文章中根据具体的用到的工作流再跟大家详细介绍,望大家谅解。
好啦,我们进入下一话题!
3.ControlNet预处理器介绍与安装
3.1 ControlNet预处理器介绍
说完了ControlNet模型,接下来要跟大家分享下ControlNet预处理器是咋么一回事,我看了很多教程,一开始都不是很明白这个预处理器和模型之间到底是什么关系,但随着不断地探索,我终于明白了其中的奥秘,用一句话来表达:
Controlnet的核心理解在于他的模型出图 需要先适配 他的风格,才能出图,如果你上传的图片本身是已经预处理过的了,那么就不需要ControlNet预处理器了。
简而言之,
就是预处理器要先把图片处理成ControlNet模型能理解的样子
,比如下面的canny模型,他能理解的就是线稿,如果我们本地上传的就是一张线稿,那就不需要预处理器了,如果我们本地上传的是一张彩色图片,那就必须先通过相关的预处理器先处理成线稿,再“喂”给ControlNet模型。
我给大家举个例子,看下面这个案例,里面的面包的线稿是我从本地处理好上传的,这时候,就能生成类似线稿形状的面包。
但是如果我本地没有这张线稿,怎么办呢?
那也没关系,这个时候,ControlNet预处理器就派上用场了,他就是为这个而生的。我先让预处理器把本地的面包照片再comfyui中处理成线稿,再喂给ControlNet模型,就可以了。
这里大家要注意一点,就是预处理器和模型之间最好是对应关系,虽然不对应也能出图,但是有可能达不到我们想要的效果。
上面这个虽然没对应上,但是“scribble”模型也跟线条还有些关系,如果我们换成“openpose”模型,结果就真的是一点不像线稿图了。所以还是建议大家细心些,对对好。
3.2 ControlNet预处理器的安装
我们还需要安装下预处理器,这个安装教程跟之前一样,我这里推荐两种安装办法,一种是在官方网站下载进行本地安装,一种是在comfyui界面直接安装。
1.官方下载压缩包进行本地安装:
下载之后放到指定目录即可
2.在Comfyui界面直接安装
在管理器manager中,搜索“fannovel16”找到下面的节点,点击安装,然后重启软件即可。
3.3 ControlNet预处理器和模型的对应关系
在了解了预处理器的基本概念之后,我们还有一个问题需要解决,就是预处理器中有那么多的选项,我到底应该选择哪一个呢?我又应该怎么和controlNet模型对应上呢?
首先我们先解决第一个问题:同一个类型中应该选哪个?
比如“法向与深度”预处理器中有13个,我该怎么选择,这里我建议大家亲自去尝试,每一个处理器都试一下,看一下结果,时间长了,自然就清楚了,本人也是基本上把所有的预处理器都是试了一遍,如下图:
这里我就拿一个深度预处理器给大家看下不同的效果,大家可以发现,其实都相差不大,大家在遇到真正需求的时候,还是都尝试一下,就能理解了。
下面的线稿预处理器也是一样的,如果大家非要整清楚各个之间的细微差别的话,可以去站酷上搜索类似的文章,有些博主已经写的很详细啦,我这里就抛个砖,引个玉,哈哈。
当然,我也会在后续分享的工作流实战中,遇到哪个处理器,到时候再根据具体场景进行解析。
然后,我们解决第二个问题:怎么和controlNet模型对应上呢?
这里有两个方法,我也推荐给大家,第一个方法是去看官方文档,文档里写地非常详细,大家在使用的时候对照下就好了。
第二个办法就是看目录,仔细看下ControlNet预处理器的一级目录,大概也能猜到对应哪个ControlNet模型。
4.ControlNet预处理器安装报错问题处理
之所以把这单独拿出一个目录来讲,是我发现安装报错好像时有发生,所以我这里就想着帮助大家怎么解决运行预处理器的问题。
虽然我们通过上面的方式把预处理器装上了,但是在运行的时候,比如下面的“openpose姿态预处理器”时。
如果没有安装对应的模型,这时会出现下面的报错;
这个时候我们要做的就是把终端出现的那个模型,自己独立下载后放到指定的目录就好啦,比如上方的缺失模型是“body_pose_model.pth”,上网下载装到前面显示的目录就行。
访问刚刚的网址,拉到最底部,就有全部的预处理器资源文件啦(建议英文对照)
这里告诉大家一个小技巧,就是原作者已经在下载的文件上告诉我们的安装路径了,下面红框内的就是路径
5.ControlNet基础工作流搭建与案例分享
最后,跟大家分享下最基础的ControlNet工作流,熟悉了这个之后,后面都是在这个基础上做延展的,第一个给大家分享的是在背景不变的情况下,改变人物性别,姿势也没有变化。
这里用到的是ControlNet 1.1 Depth模型和“MiDaS深度预处理器”,然后通过固定两个采样器的种子来实现的,需要工作流参考的可以联系我哦。
第二个给大家分享的是上传一只鸟,然后通过“AnimalPose动物姿态预处理器”识别小鸟的肢体结构,和“openpose模型”,然后通过蒙版进行局部的调整,效果也是不错滴,需要工作流参考的可以联系我哦。
5.总结
好啦,今天的分享到这里就结束了,本篇文章我通过很长的篇幅帮助大家了解ControlNet各个模型的差异点,和跟ControlNet预处理器的相互辅助关系,其实SD做的就是控制,控制结构、姿态、外型等,这些都离不开ControlNet模型,所以大家如果对这一块感兴趣,可以仔细看下。
另外,安装报错的问题我也帮大家解决了,这样大家就可以开心的玩耍啦。
最后,祝大家玩好AI,出图快乐!
🔥
觉得有用的可以点个关注哦,后续我会结合具体场景搭建工作流,帮助大家更好地消化,欢迎大家一起讨论,一起进步。
110
举报
声明
234
分享
相关推荐
评论你的想法~
表情
喜欢TA的作品吗?喜欢就快来夸夸TA吧!
你可能喜欢
相关收藏夹
登录注册
99+登录即可同步推荐记录哦
99+登录即可加入我的收藏
评论登录即可评论想法
分享分享

























































































































