第十三:Stable Diffusion-ADetailer插件实现一键解决画全身图总是人脸扭曲?

1.After detailer该插件可以自动检测生成图片的人脸,针对人脸自动上蒙版
1.1.自动进行重绘,整个流程一气呵成,因此可以避免许多重复的操作

2.除此Adetailer还可以检测整个人物的手部、眼睛甚至全身,并针对这些部分进行重绘
2.1.能够搭配ControlNet使用,也是Adetailer的功能之一。

3.当使用ADetailer后,绝对不会再使用inpaint(局部重绘)来修复脸部扭曲了!
3.1.但还是可以使用inpaint来处理其它情况

一.ADetailer的安装

1.浏览器打开网址:https://github.com/Bing-su/adetailer

2.点击Code,点击Download

在这里插入图片描述

3.将下载的压缩包解压,并将文件夹移动到**\AI-stable-diffusion-webui\extensions**路径下

4.安装好后,第一次启动webui可能会卡在如下界面,此时打开任务管理器
4.1.如果看到网络有在接收数据,那就是没有问题的,等待下载完成即可

在这里插入图片描述

5.打开webui后,可在如下位置找到该插件

在这里插入图片描述

二.脸部修复方法

1.所有修复方法所使用的输入图片如下,可以发现人脸的扭曲是比较严重的
2.局部重绘(inpaint)
2.1.将文生图界面生成的图片发送到局部重绘
2.1.1.如果是外部图片,则先将图片上传到图像信息(PNG info)页面,再发送到局部重绘

在这里插入图片描述

2.2.将人物的脸部使用画笔涂抹完全

在这里插入图片描述

2.3.绘制区域(inpaint area)一定要选择仅蒙版(only mask)
2.3.1.这样模型才会使用全图分辨率(我这张图是512x768)去生成蒙版区域
2.3.2.生成一个高分辨率的脸部图片,然后再缩放为原始分辨率,这样就可以生成正常的人脸

在这里插入图片描述

2.4.重绘幅度设置为0.6以下,否则无法生成正常的人脸
2.4.1.种子可以设置为随机,并将生成数量调高

在这里插入图片描述

2.5.点击生成

在这里插入图片描述

2.6.可以发现已经完美修复。同样的方法还可以用来修复手部、背景以及服饰细节等等

2.7.会发现上图中的人脸变化不是很大
2.7.1.如果想要更近一步获得更多不同的脸部表现,则需要配合controlnet的inpaint使用

2.8.打开controlnet面板,不需要上传图片

在这里插入图片描述

2.9.重绘幅度设置为1,也可以更低一点,取决于你想要的变化有多大,其它参数保持不变

在这里插入图片描述

2.10.点击生成

2.10.1.最后将生成的图片发送到后期处理(Extra)页面,4x放大并开启脸部修复
2.11.参数详情
2.11.1.局部重绘最重要的参数就是重绘幅度(denosing strength)
2.11.2.不要将此值设置过高即可,大于0.6都很容易导致脸部崩溃

在这里插入图片描述

3.Adetailer
3.1.Adetailer的效果和局部重绘,实现一键脸部修复的功能
3.2.Adetailer model(模型)可以识别图片中人物的脸部,并自动绘制一个蒙版
3.3.然后使用默认的参数来处理,最终获得修复后的效果
3.4.ADtailer既可以在文生图界面使用,也可以在图生图界面配合更加复杂的参数设置来获取更丰富的生成效果
3.5.文生图界面
3.5.1.按平常进行文生图的操作进行其它设置

3.5.2.打开Adetailer,选择启用(enable),模型默认即可

在这里插入图片描述

3.5.3.点击生成

在这里插入图片描述

3.5.4.与原图的效果对比

在这里插入图片描述

3.6.图生图界面
3.6.1.将文生图界面生成的图片发送到图生图,这样提示词和其它设置就会自动填充

3.6.2.将重绘幅度设置为0.1或更低

3.6.3.打开Adetailer,选择启用(enable),模型默认即可

3.6.4.点击生成,如果重绘幅度很低,那么效果与文生图界面使用ADetailer基本相同
3.7.参数详情:Detection model(检测模型)

3.7.1.检测模型可以分为以下几类

Face_xxxx: 检测和重绘人脸
Hand_xxxx: 检测和重绘手
Person_xxxx: 检测和重绘整个人
Mediapipe_face_xxxxx: 检测和重绘人脸
3.7.2.face_yolo和person_yolo模型是最有用的两个模型
3.7.2.1.默认选项下即为face_yolo模型,上面已经演示face_yolo模型的效果
3.7.2.2.而person_yolo模型的效果如下,整个人物都会发生一定的变化

在这里插入图片描述

3.7.3.Hands model可以检测和重绘手部,但是对此功能别抱太大希望
3.7.3.1.SD模型目前很难画出完好的手部,所以不管重绘多少次
3.7.4.可能效果都不会很完美,但总归可以获得相对来说够看的图片
3.7.5.另外,模型名称的后缀8s和8n有什么意义呢?

在这里插入图片描述

3.7.6.简单来说8s的参数量是8n的三倍多,意味着8s处理时间还会比8n长,但效果更好

3.7.6.1.8n模型修复脸部的效果已经很不错,所以通常情况下选择8n即可,修复不佳再切换为8s模型
3.7.7.最后可能注意到Adetailer的以下选项

在这里插入图片描述

3.7.8.Adetailer最多允许你设置两个检测和重绘模型,设置好后会逐一进行修复
3.7.9.如果想要一次性进行更多检测,则需要在设置(settings)>> ADetailer中将选项的数值2调高

3.7.10.Adetailer还有专门的提示词框来指导生成重绘区域,因此可以根据需要来设置额外的提示词
3.7.11.此提示词框可以使用Lora!因此可以将想要的面部lora输入提示词框内来获得想要的结果
3.8.Detection(检测)

3.8.1.一般保持默认设置即可,如果发现要修复的地方没有变化
3.8.2.则适当降低Detection model confidence threshold的值再重新生成

在这里插入图片描述

3.8.3.Mask Preprocessing(蒙版前处理)

3.8.4.该选项下的设置保持默认即可

3.8.5.Inpainting(局部重绘)

在这里插入图片描述

3.9.重绘幅度(denosing strength)是最重要的参数,这可能是唯一有必要调整的参数

3.9.1.如果需要更大的变化则提升重绘幅度,反之亦然
3.9.2.它与局部重绘的重绘幅度所起的效果完全相同
3.93.指明插件的inpainting页面下的所有参数与局部重绘页面参数的对应关系

在这里插入图片描述

3.9.4.其它选项你也可以自行设置,但一般不需要更改也能获得很好的效果
10.Controlnet

在这里插入图片描述

10.1.Adetailer还可以与controlnet一起使用

10.2.可以在Controlnet model选项下选择不同的模型
10.2.1.仅支持inpaint, scribble, lineart, openpose, tile五种模型

10.3.选择模型后,预处理会自动选择,不需要额外设置
11.下面对各个ControlNet模型的作用做简单介绍
11.1.Inpaint:ControlNet的Inpaint与普通inpaint最大的区别
11.1.1.在于能够在很高的重绘幅度下仍然保持整体画面的统一

11.1.2.如果将ADetailer的重绘幅度设置为1,不使用inpaint和使用inpaint的区别

在这里插入图片描述

11.2.Scribble:在较高的重绘幅度下,可以保持人物的身形或面部曲线

在这里插入图片描述

11.3.Lineart:与scribble所起到的作用类似

在这里插入图片描述

11.4.Openpose:在较高的重绘幅度下,可以保持人物的姿势
11.4.1.适合与person_yolo模型一起使用
11.4.2.可以在人物姿势不发生变化的情况下,更改人物的服饰和身材等

在这里插入图片描述

11.5.Tile:给人物更改或添加更多细节,当需要重新生成或添加更多细节时开启tile

在这里插入图片描述

三.ADetailer和脸部修复的区别

1.ADetailer和face restoration两者都可以用于修复扭曲的脸部
1.1.ADetailer生成更高分辨率的图像,然后缩小图像尺寸来修复脸部
1.2.而face restoration则使用另一个AI模型,例如CodeFormer和GFPGAN,来修复脸部
2.更推荐使用ADetailer进行修复(例如局部重绘)

2.1.面部修复模型产生的风格可能与你的模型不一致

2.2.可以通过修改提示和ControlNet来进一步指导局部重绘的结果

2.3.通过Adetailer你可以获得更加丰富的脸部特征
3.何时使用ADetailer

3.1.在ADetailer中,可以自动完成所有需要手动操作的工作,无需额外的手动步骤
3.2.ADetailer相当于实现了以下过程的自动化:

3.2.1.将图像发送至inpainting(图像修复)
3.2.2.创建蒙版(inpaint mask)
3.2.3.设置ControlNet(可选设置)
3.2.4.生成修复后的图像
3.3.因此使用这个插件的最大价值在于自动化,使可以使用相同的设置修复多张图像
3.3.1.如果使用手动流程,这样的操作将会很繁琐

3.4.所以如果需要使用inpaint工具来修复人脸、手部或者全身的时候就可以使用ADetailer
4.Tips: 当ADetailer与img2img一起使用时,有两个重绘幅度需要设置
4.1.img2img的重绘幅度设置适用于整个图像
4.2.而ADetailer中的inpainting重绘幅度设置仅适用于蒙版部分
5.另外,还可以选择在“设置” > “ADetailer”中开启保存检测模型结果的功能

5.1.这将保存另一张图像,其中包含检测到的区域和置信度分数

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卢卡平头哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值