Stable Diffusion高级教程:ControlNet基础知识(预处理器及专用模型)
一、背景知识
回顾之前所学,就会发现:从文生图→图生图→ControlNet都是为了进一步控制SD的输出结果,为了生成的图片更贴近你的想法,让AI做那个懂你的AI。
ControlNet 直译:控制网络,是2023年2月10日预印本网站arXiv的论文提到的一种控制预训练的大型扩散模型以支持额外的输入条件的方法,同日作者在GitHub公开源代码。翻译成白话就是更强大的用来控制图像的一种办法。短短两个月,ControlNet已经收获7.1K stars。有兴趣可以去看看:https://github.com/Mikubill/sd-webui-controlnet
二、ControlNet下载与安装
因为ControlNet是单独的一个功能,所以默认webui是没有安装的,如果是用的秋叶大佬的一键启动端,就在扩展页面下载安装,如下图:
点击“加载自:”之后稍等一下,下面就会出现很多扩展功能,在里面找ControlNet,点击这行后面的Install按钮,等待安装完成。
安装完成后重启页面,就可以在文生图下方看到ControlNet了:
由于Controlnet的强大之处,我们使用时一般会多个Controlnet并行控制,所以需要先在设置页面 调整同时可用Controlnet的数量,如下图:
一般调到3就可以了,代表可以同时使用3个Controlnet进行控制。设置好后点保存。返回文生图界面。
在Controlnet这里能看到有3个Controlnet就对了。这样就可以用多种办法控制图像的生成。
如果安装完成后,没看到Controlnet下方的三个按钮,如下图所示:
则代表你的Controlnet没有安装成功。需要按以下步骤操作:
1、关闭webui界面,关闭控制台;
2、删除…:\novelai-webui-aki-v3\extensions文件夹下的“sd-webui-controlnet”文件夹;
3、删除…:\novelai-webui-aki-v3\tmp文件夹下的“sd-webui-controlnet”文件夹;
4、打开webui界面,在扩展页面,点击“从网址安装”,在下方框里粘贴地址:https://github.com/Mikubill/sd-webui-controlnet.git,点击安装。如果没反应,则可能需要魔法。
5、安装完成后重启webui即可看到这三个按钮,否则无法正常使用。
三、Controlnet的预处理器
预处理器 其作用是对提供的图片进行处理,提取出特征图。
这个功能提取的是你输入的图片,就像图生图一样,只是比图生图还纯粹,只提取预处理器会的特征。
比如openpose,提取的就是人物动作姿势,其他的所有内容统统都忽略,这个动作图包含整体的骨架信息,还通过不同的颜色区分了左右,区分了正反,这样就可以准确还原人物动作。
这里点箭头,弹出来的页面就是所有的预处理器。这里的预处理器顺序是乱的,没有逻辑,还是看下面轩轩大佬整理的思维导图:
大佬就是大佬,清晰明了。这下知道自己想要生成的图片带那些特征就选哪个预处理器预先处理原图。
下面给大家看看每个预处理器的效果图:
0、选择none的话直接将参考图片作为输入
1、canny:边缘检测,非常精准的边缘检测:
2、hed:HED边缘检测
3、midas:深度图提取
4、mlsd:M-LSD线段检测
5、openpose:姿态检测
6、fake_scribble:涂鸦风格线段
此外还有新增的:
7、openpose姿态+手部都检测(加上了手部骨路,试图解决手的问题)
8、LeResi深度估算
9、法线贴图
10、风格约束clip version
等等,Controlnet更新速度极快,以上是常用的一些预处理介绍,目前更新了更多内容,详见下图:
四、Controlnet专用模型
是的,你没看错,Controlnet有专用模型,都是配合预处理器一起使用的,文件都不小,复制链接到浏览器进行下载:https://pan.quark.cn/s/9b172c711c4e
下载完成后放入…:\novelai-webui-aki-v3\extensions\sd-webui-controlnet\models文件夹,点击模型后的刷新按钮就可以看到了
例如,你选择canny预处理,则模型就得选模型名称中带canny的。
打个不太恰当的比方:Controlnet就像一个厨师,预处理就是原材料,模型就是菜谱,你给的原材料和菜谱不匹配时就没办法做出美味佳肴。只有适量的材料配合标准的菜谱才能做出一道美味。