Stable Diffusion插件Controlnet V1.1安装使用教程
Stable Diffusion插件Controlnet V1.1安装使用教程
Stable Diffusion WebUI的绘画插件Controlnet最近更新至V1.1版本,发布了14个优化模型,并新增了多个预处理器,让其功能比之前更加好用。最近几天又连续更新了3个新Reference预处理器,可以直接根据图像生产风格类似的变体。本文将详细介绍Controlnet插件的安装步骤以及V1.1版本的新功能使用方法。
使用Reference only预处理器生成一张图片的多个变体
一、安装Controlnet插件
Controlnet插件安装网址:https://github.com/Mikubill/sd-webui-controlnet
- 打开WebUI,点击“扩展”选项卡,选择“从网址安装”,复制(https://github.com/Mikubill/sd-webui-controlnet.git),粘贴在第一行的“拓展的git仓库网址”中。点击“安装”按钮,等待十几秒后,在下方看到一行小字“Installed into stable-diffusion-webui\extensions\sd-webui-controlnet. Use Installed tab to restart”,表示安装成功。
(从网址安装可以保证插件的更新能在WebUI中自动显示,如果是下载压缩包文件放进根目录,就无法自动更新)
- 点击左侧的“已安装”选项卡,单击“检查更新”,等待进度条完成;然后单击“应用并重新启动UI”;最后完全关闭WebUI程序,重新启动进入(也可以重启电脑),我们就可以在WebUI主界面中下方看到Controlnet的选项。
如果安装后Controlnet界面只有一个选项卡,你可以点击“设置”界面,找到Controlnet,将Multi Controlnet中设置你想要的值,点击保存设置并重启WebUI。
此时我们可以打开WebUI所在的文件夹,进入Controlnet的根目录,具体路径为C:\Stable Diffusion\novelai-webui-aki-v3\extensions\sd-webui-controlnet,打开models文件夹,里面有38个尾缀为.yaml的文件,最新的Reference系列也在其中;再点开WebUI中Controlnet中预处理器(preprocessors)列表,会发现二者的内容完全一致。因为yaml文件就是预处理器文件,它们规定Controlnet提取图像的那些特征。
到这一步我们已经成功安装了Controlnet插件,以及提取预处理器所需要的.yaml文件,下一步就是安装模型(models),模型的文件尾缀为pth,它的作用是将图像特征执行到我们的图像生成过程中,Controlnet V1.1的模型需要我们到Huggingface中去下载。
二、安装V1.1新模型
Controlnet V1.1模型下载:https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main(文末有安装包)
在这个Huggingface页面中,我们只需要下载全部14个.pth尾缀的模型文件,下载方式为点击“文件大小”右侧的下载小箭头。下载完成后,将14个文件放入.yaml所在的文件夹,即C:\Stable Diffusion\novelai-webui-aki-v3\extensions\sd-webui-controlnet\models。
三、安装T21模型
T2I-Adapter模型下载:https://huggingface.co/TencentARC/T2I-Adapter/tree/main/models(文末的链接里有T2I-Adapter的Color、Style模型)
T2I-Adapter详细介绍:https://github.com/TencentARC/T2I-Adapter
ControlNet V1.1支持目前所有可用的模型和预处理器,包括T2I-Adapter模型。T2I-Adapter模型由TencentARC研发,和ControlNet的模型作用类似,都是可以精准控制图像生成效果,T2I-Adapter的模型可在ControlNet中使用,而且二者模型功能有重合。
ControlNet插件的自带T2I-Adapter的Color、Sketch和style预处理器,为sd14版本,所以我们可以只下载Color和Style对应的模型(Sketch功能和softedge差不多,我就不重复下载了),记得要选择对应的sd14的版本,不然模型无法生效。这两个模型我都放进都文末的链接里了。
下载完成后,依旧是放入Controlnet根目录的models文件夹中,然后在WebUI的Controlnet中,按“模型”选项右侧蓝色小图标刷新模型,就能看与我们下载的全部16个模型了。
四、试用V1.1新功能
Controlnet V1.1更新介绍:https://github.com/lllyasviel/ControlNet-v1-1-nightly
Controlnet V1.1在V1.0的基础上对模型进行了优化,并新增了不少新的预处理器,还进一步规范了模型的命名,方便大家识别模型的不同版本和状态,具体见下图:
不同模型的作用和使用方法,Controlnet官方的在相关Github界面中都有详细介绍,篇幅所限我就不一一赘述了。我选了3个功能做演示,让大家快速熟悉Controlnet V1.1的用法。
1. Reference预处理器
Reference是官方最新推出的预处理器,共有三种型号Reference_only、Reference_adain和Reference_adain+atten。它只有yam l配置文件,没有pth模型文件,可以根据上传的图像生成类似的变体,来看一下它的具体使用效果。
- 在Controlnet上传一张图片,勾选启用,预处理器选择Reference_only,其他参数默认。
- 选择一个大模型(因为要生成写实人像,所以我选择写实风模型RealisticVisionV20),输入提示词“best quality, A handsome man wearing a (white T-Shirt), angry”,步数25,采样方法EularA,画面尺寸512*768px,然后点击生成。
- 生成图与原图风格内容类似,但是人物的表情已经在angry的作用下发生变化了。我以同样的参数又测试了Reference_adain和Reference_adain+atten,可以看出only和adain+atten比较贴近原图形象,adain变化最明显。
- 使用Reference时我们需要了解的一项参数是“Style Fidelity”,意思是风格保真度。
我用adain+atten处理器和固定的种子值,分别生成了Style Fidelity为0/0.5/1的图像。Style Fidelity为0时,生成图像的色调、人物的衣着、背景与原图差异很明显,人物的表情更符合提示词;Style Fidelity为1时,图像的色调和人物五官和原图非常相似,甚至提示词angry已经不起作用的,人物是微笑的。所以Style Fidelity数值越高,生成的图像就越像原图。
Reference预处理器需要在高于1.1.171的更新中使用,官方推荐的两个参数:
- Reference_only / Style Fidelity: 0.5 建议作为默认值,出图效果稳定
- Reference_adain+attn/ Style Fidelity: 1.0 是目前最先进的,值得尝试,但不建议作为默认值
2. Tile磁贴
Tile模型的作用是可以忽略原图的细节,根据现有像素和提示词生成新的细节,目前主要作用是将严重模糊的图片放大并变得高清。我们以一张64x64 px的图片看一下它效果。
- 在Controlnet上传一张图片,勾选启用,预处理器选择tile_resample,模型选择对应的control_v11f1e_sd15_tile,其他参数默认。
- 选择一个大模型(我用的写实风模型realisticVisionV20),输入提示词“best quality, a cute dog on grassland”,步数25,采样方法EularA,画面尺寸512*512px,生成批次2,固定种子值12345,然后点击点击生成,最后得到了2张非常高清的图像,只是细节上有轻微差别。
- 我又用几种不同的图像放大工具对64x64px的原图进行放大,得到的结果如下:
由于64x64 px分辨过于低,用一般放大工具的极限放大4倍也只有256*256px;而且原图的像素值太少,所以图像即使变大,看着依旧模糊。而Tile模型则可以再有限像素值的基础上,分块扩散画面的内容,最终生成与原图相似且极为清晰的图片。
Tile模型还有一个特点:当提示词与给定的图像不符合时,Tile会忽略提示词的影响,转而自动识别图块内部的内容,并增加识别语义的影响,从而生成与图块相似的图像。
下图是官方给的一个示例,提示词是““a handsome man”,指定的图块里却是一片树叶,而Tile的生成结果也是将树叶放大了,没有在树叶里再加一个帅哥,这说明Tile自动识别的图块的内容是“树叶”并进行了处理。
3. T2I-Adapter Style
最后给大家介绍一非常有意思的T2I-Adapter Style模型,它可以将一张图片的风格迁移到另一张图片上。我成功用Style模型将一张建筑照片转为赛博朋克风的图片,具体操作如下:
- 在Controlnet中点击Controlnet Unit 0,上传一张512*768 px的建筑图片,我们称为主图。勾选启用,预处理器选择mlsd,并选择对应的mlsd模型,以固定图像额主体结构。点击预处理器旁的爆炸小按钮,预览出图效果。
- 点开Controlnet Unit 1, 上传一张512*768 px的霓虹光效图片,称为副图。勾选启用,预处理器选择t2ia_style_clipvision,并选择对应的style模型。
- 选择一个大模型(我用的是realisticVisionV20),提示词可以不写,步数25,图像尺寸512*768 px,生成批次2,点击生成。最终效果图如下,霓虹光效的风格已经完美迁移到建筑照片上了。因为使用了mlsd模型进行结构控制,原图的建筑结构保留得很完整。
- 我将Controlnet Unit 1的霓虹图像换成了一张动漫风格的图像,看看能不能将原图建筑变成二次元风格,结果并不理想(下图二),想了想发现可能是大模型不对,于是把写实风的realisticVisionV20改成了二次元风的AnythingV3模型,配对的VAE模型为vae-ft-mse-840000-ema-pruned,效果就好了很多。
使用T2I-Adapter Style模型需要注意:
- 接受风格改变的主图放在Controlnet Unit 0,提供风格的副图放在Controlnet Unit 1,顺序不能颠倒,不然会影响出图效果。
- 主图、副图、最终生成图像的尺寸要保持一致。
- 大模型的风格要与副图(提供风格的图片)的风格一致,才能得到最好的效果。