🎈为什么有这篇文章
中文网络上或者B站很多UP,在讲述WebUI中使用这个controlnet来换脸的时候,要么讲的过于复杂,要么就是没有讲清楚,所以这里整理下详细的使用方法,并记录下生成的内容。
如果懒得看文字可以看同款视频哈:
【AI写真Instant_ID全网最详细教程Stable Diffusion WebUI免费生产力】
🧵准备工作
首先,需要在将webui的本体升级到1.8.0或者更新的版本,这里保证与controlnet的兼容性;
其次,升级controlnet版本到3月6号以后的版本;
升级完成后,controlnet的版本为1.1.441(或者更新的版本应该也可以)。
第三,下载预处理器并放在controlnet的预处理器文件夹中;
预处理器下载地址:
https://huggingface.co/DIAMONIK7777/antelopev2/tree/main
如果你的网络不好可以到我的网盘下载:https://pan.quark.cn/s/34ac9d88ad7c
本地预处理器地址:
第四,下载controlnet模型到本地的controlnet模型文件夹中;
模型下载地址:
- ipadapter model
- ControlNet model
- 如果你的网络不好可以到我的网盘下载:https://pan.quark.cn/s/34ac9d88ad7c
- 然后放在本地的controlnet的模型文件夹下:
🧨图像生成
接下来就是具体的使用方法了。
Instant ID使用ControlNet和IP-Adapter的组合来控制扩散过程中的面部特征。Instant ID 的一项独特设计是,它将来自 ip-adapter识别到的面部特征信息,作为交叉输入传递到 ControlNet的unet网络部分。而如果不使用这个模型,ControlNet的unet网络的cross attention(交叉注意力) 输入是提示的文本嵌入。
在webui中具体使用Instant_ID这个controlnet的时候,跟其他的controlnet使用方法不同的是,他需要使用两个模型搭配才能生效,也就是要开启两个controlnet。
并且,两个模型的顺序不能出错。
第一个Controlnet设置:
这里上传的图像是你要参考的脸部特征的信息,也就是生成的最终人物像谁。
采样器是embedding结尾的,模型是一个特定的ip-adapter模型,这俩组合就是提取人物面部特征的。
需要注意的是,官方并没有强制要求选择“更偏向ControlNet”,但是我测试下来,如果不选择这个,生成的图像分辨率会相对低一些,所以建议这么设置。
当然,你可以适当降低控制权重,一定程度上也能提升生成的图像的分辨率。
第二个Controlnet设置:
这里也需要上传一张图像,这张图像是生成图像的人物的面部参考信息。这张图像中人物的姿势和面部表情特征会被参考。
这里的预处理器选择的keypoints结尾的预处理器模型,模型是instant_id_sdxl模型,对,这里仅仅支持sdxl的大模型(也支持sdxl_turbo模型),官方并没有支持sd1.5或者其他的版本。
这两个模型搭配起来,会控制最终生成的图像中,人物面部的占比,面部朝向,面部表情等等面部信息,姿态信息,从实验结果来看,一定程度上会参考,但参考的不多。
这里仍然勾选了“更偏向Controlnet”,也是由于勾选之后,一定程度上可以提升生成图像的分辨率。
至于“完美像素模式”,从实测结果看,勾选不勾选影响并不是很大。
接下来是基础的文生图设置部分;
这里有以下几个重点:
第一,模型必须选择sdxl或者sdxl turbo模型;
第二,CFG Scale这里,也就是提示词引导系数,官方建议是4~5之间,但是实测下来,这个参数的设定其实与你的模型非常相关,如果你是标准的sdxl微调模型,那么这个值在3~4之间可能会更好,否则生成的图像可能会比较模型,如果你的模型是sdxl turbo模型,那么,这个值甚至可以调整到1~1.5,效果也还不错。
第三,迭代步数部分,并不需要太高步数,步数太高反而容易崩,如果是标准模型,20步就差不多,如果是sdxl turbo模型,就按照turbo类通用的7~9步就好了;
第四,宽度和高度,众所周知,1024x1024是默认的最佳分辨率,但是这里如果是1024x1024的话,(估计是原作者训练集的问题),容易生成带水印的图像,所以大家可以稍微错开这个分辨率,比如说使用768x1024等,可以有效规避这个水印的问题;
👑生成效果
面部信息使用路人甲同学(如果用某些名人的话,效果会更好,但是由于都懂的原因,会根本发不出来),面部位置用了狼叔的一张剧照;
(仅作技术免费交流学习示意,如果有侵权,我会删掉)
生成的图像示意:
貌似,效果还不错?
🎇加速技巧
s你会发现使用这个Instant_ID的时候,每次都会加载模型、卸载模型,这样就会降低生成的速度从而影响创作者的心情。
如果你的显卡显存较大(12G以上),可以试试让controlnet支持缓存两个模型。
操作方法如下:
第一:进入webui的设置页面;
第二,找到controlnet选项;
第三,在右侧找到模型缓存数量选项,然后拉到2;(默认为1,如果你之前调整过,那就不用再调整了)
第四,重新启动webui;
这样你再使用Instant_ID的时候,速度就会变得很快乐,如果是4090,使用默认的sdxl模型,大概速度在5秒左右可以生成一张1024x768的图像;(供参考)
当然,这个也是支持使用高分辨率修复的,只是花的时间会略微长一点。
🎉写在最后~
去年的时候写了两门比较基础的Stable Diffuison WebUI的基础文字课程,大家如果喜欢的话,可以按需购买,在这里首先感谢各位老板的支持和厚爱~
✨StableDiffusion系统基础课(适合啥也不会的朋友,但是得有块Nvidia显卡):
https://blog.csdn.net/jumengxiaoketang/category_12477471.html
🎆综合案例课程(适合有一点基础的朋友):
https://blog.csdn.net/jumengxiaoketang/category_12526584.html
这里是聚梦小课堂,就算不买课也没关系,点个关注,交个朋友😄