Control Net
ControlNet是一个非常强大的工具。尽管我在网上查找了很多资料,但要么不够全面,要么解释得比较模糊,实际操作起来也不容易理解。最近,我花了一些时间自己摸索,基本上弄清楚了ControlNet的用法,也更加惊叹于它的强大。实际上,一旦你弄清楚了,ControlNet并不那么复杂。
我打算分几篇文章来写,具体的规划还没有确定,就按照灵感来写吧。不过我不打算写关于如何安装ControlNet的内容,因为网上已经有很多相关的教程了。今天是第一篇,我会总体介绍ControlNet,包括它的各种模型和基本用法,让你不再对ControlNet感到害怕。不过,今天的介绍不会特别详细地讲解每种模型的具体用法和调整方法,而是希望能够让大家理解如何使用,然后自己去挖掘ControlNet的魅力。
简单来说,画一幅画需要考虑两个方面,即构图和风格。大家可能听说过现在的AI绘画就像炼丹一样,但实际上炼的是什么呢?简单来说,就是通过各种咒语来控制画面的构图和风格。
大家应该也觉得这些咒语很繁琐吧?在我看来,这种所谓的咒语其实是反人类的,因为AI本来就应该降低门槛而不是增加门槛。随着AI技术的迅猛发展,这种咒语肯定会被淘汰掉。实际上,现在已经有了两个强大的工具来解决这个问题,即ControlNet用于控制构图,LoRA用于控制风格。
ControlNet模型建议下载V1.1版本,模型目录在这里:llyasviel/ControlNet-v1-1 at main
三个前提要点
我觉得在用ControlNet之前,有必要先理清三个概念或者要点,才能事半功倍。我自己之前就走了不少弯路。
-
ControlNet的本质是文生图(txt2img)
很多刚上手的同学并不知道这个点,第一印象就是我是用图去控制生图啊,不应该是图生图吗(img2img)?然后WEB UI中,不管是txt2img还是img2img中都有ControlNet,所以这是大家(最起码是我自己)开始用的时候的一个困惑,我到底该怎么用??
其实吧,看看原作者的论文题目就知道了,《Adding Conditional Control toText-to-Image Diffusion Models》,这不就是一个不折不扣的txt2img的工具嘛!再仔细看他的github上的说明,也会发现他的样例基本全是txt2img(只有一个例外,也就是他的inpaint模型,后面介绍到时会详细说明)
所以:使用ControlNet请优先使用txt2img这个页签。
-
预处理器与模型要配合使用
展开ControlNet配置项的时候,那么多预处理器、那么多模型,也是一脸懵的。。。那么第二点必需要理清楚的就是:尽量要保证预处理器(preprocessor)跟模型(model)是同类的。这点,webui已经帮我们做好同类适配了,选择与处理后会自动选择同类的模型。
-
先用默认参数尝试
大家用ControlNet比较懵的地方(其实整个WEB UI都是这样)还在于可调参数太多,这个软件说真的不是给咱们普通用户用的。那么这里就是我建议的第三点:刚开始上手时,都直接用默认参数,先看看出图效果如何,是不是你想要的模式。如果是,那么再针对这个模型进行参数细调。
安装教程
自动下载
目前ControlNet
插件已集成在Stable Diffusion WebUI
的扩展内,可以一键自动下载安装。
根据图片红框顺序点击安装即可,Stable Diffusion WebUI -> 扩展 -> 可用 -> 加载 -> sd-webui-controlnet -> install
。
安装完成后,重新加载Stable Diffusion WebUI
的主界面。
注意:如果遇到报错,或者长时间卡顿在安装状态,可以刷新WebUI界面尝试重新安装。但是,重新安装时可能存在报错,大概意思是提示您已经存在未完成的下载文件,无法继续安装。此时需要你手动前往
Stable Diffusion WebUI
的项目目录,手动删除之前未下载完成的已损坏文件,以本站的完整路径为例:<D:\openai.wiki\stable-diffusion-webui\tmp\sd-webui-controlnet
>,删除除该目录内的<sd-webui-controlnet
>文件夹,然后重新来到UI界面点击Install按钮安装。
手动下载
如果您无法通过自动安装,也可以手动下载自行安装。
GitHub下载地址:https://github.com/Mikubill/sd-webui-controlnet。
网盘下载地址:为方便无法使用外网的大家使用,也可通过点击连接自行下载。
下载完成后,将sd-webui-controlnet-main.zip
文件解压至你的Stable Diffusion WebUI
项目extensions
文件夹内。例如本站的完成路径为:D:\openai.wiki\stable-diffusion-webui\extensions\sd-webui-controlnet
。
安装完成后,重新加载Stable Diffusion WebUI
的主界面。
在完成上述所有安装步骤之后,您将会在Stable Diffusion WebUI
的网页主界面看到关于ControlNet的窗口,界面如下。
至此,安装完成。
模型下载
在使用之前,你还需要下载ControlNet的模型:ControlNet全部模型V1.1版本
模型安装:下载之后的模型,应该放置在.\stable-diffusion-webui\extensions\sd-webui-controlnet\models
目录下
完整版本
其实关于ControlNet
的模型不止以上那部分,在你所使用期间,也会自动下载一些其它模型,这些模型的目录可能位于.\stable-diffusion-webui\extensions\sd-webui-controlnet\annotator\clip_vision
,又或者.\stable-diffusion-webui\extensions\sd-webui-controlnet\annotator\downloads
之类的目录下,但是有些朋友可能网络不太好,无法下载,所以这里将整个ControlNet
的插件全部都已经打包,方便大家下载后直接使用:ControlNet插件+预处理模型+ControlNet模型+组件模型=ControlNet完整版
如果你之前已经下载安装过ControlNet
,请手动将.\stable-diffusion-webui\extensions\sd-webui-controlnet
文件夹删除。
将该压缩包下载之后,解压至.\stable-diffusion-webui\extensions
目录下即可。
使用流程
下图给出了使用Control Net的通用方法步骤,适用于所有Control Net的模型
参数介绍
参数推荐使用默认的参数,当然如果你想产生更好的效果,就要自己调参。