AI绘画Stable Diffusion画全身图总是人脸扭曲?ADetailer插件实现一键解决!

news2024/11/19 8:31:06

大家好,我是向阳

你是否遇到过SD生成的人物脸部扭曲、甚至令人恶心的情况?也曾感到束手无策?别担心,这份教程专为你而来。

在使用SD生成人物全身照时,你可能经常发现人物的脸部会出现扭曲问题。这是因为人物面部像素占比过少,导致无法充分还原面部信息。

解决这个问题的常见方法是使用局部重绘(inpaint)工具,通过设置适当的参数,往往可以取得很不错的效果。

不过,如果要大批量的生成人物全身图的话,每张图都要自己画蒙版再调参数,这就显得很繁琐,即使是单张图片进行这样的操作,有时候都会觉得心烦,那么有没有一种能够自动将扭曲的人脸修复的插件呢?答案是:有的!

After detailer(简称Adetailer)就是最佳的解决方法,该插件可以自动检测生成图片的人脸,针对人脸自动上蒙版,自动进行重绘,整个流程一气呵成,因此可以避免许多重复的操作。除此之外,Adetailer还可以检测整个人物的手部、眼睛甚至全身,并针对这些部分进行重绘。能够搭配ControlNet使用,也是Adetailer的功能之一。

我敢肯定,当使用了ADetailer之后,你绝对不会再使用inpaint(局部重绘)来修复脸部扭曲了!但我们还是可以使用inpaint来处理其它情况。

下面将介绍使用局部重绘(inpaint)和Adetailer修复人脸的方法步骤。


1、ADetailer的安装

正式开始之前,请按照下面的步骤将插件安装好。

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

注意:该方法需要科学上网,如无法下载,请看文末扫描免费获取ADetailer插件安装包哦

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

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

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

2、脸部修复方法

本教程所有修复方法所使用的输入图片如下,可以发现人脸的扭曲是比较严重的。

1、局部重绘(inpaint)

1)使用方法

① 将文生图界面生成的图片发送到局部重绘。如果是外部图片,则先将图片上传到图像信息(PNG info)页面,再发送到局部重绘。

② 将人物的脸部使用画笔涂抹完全,如下图所示

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

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

⑤ 点击生成

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

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

⑧ 打开controlnet面板,不需要上传图片,其它设置如下

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

⑩ 点击生成

最后将生成的图片发送到后期处理(Extra)页面,4x放大并开启脸部修复,就可以获得很不错的效果了

2)参数详情

局部重绘最重要的参数就是重绘幅度(denosing strength),不要将此值设置过高即可,大于0.6都很容易导致脸部崩溃。

2、Adetailer

Adetailer的效果和局部重绘差不多,只不过Adetailer帮我们省去了绘制蒙版以及设置参数的步骤,实现一键脸部修复的功能。Adetailer model(模型)可以识别图片中人物的脸部,并自动绘制一个蒙版,然后使用默认的参数来处理,最终获得修复后的效果。

1)使用方法

ADtailer既可以在文生图界面使用,也可以在图生图界面配合更加复杂的参数设置来获取更丰富的生成效果。

文生图界面:

① 按平常进行文生图的操作进行其它设置

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

③ 点击生成

④ 与原图的效果对比

图生图界面:

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

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

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

④ 点击生成,如果重绘幅度很低,那么效果与文生图界面使用ADetailer基本相同,这里就不做展示了

2)参数详情

Detection model(检测模型)

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

  • Face_xxxx: 检测和重绘人脸

  • Hand_xxxx: 检测和重绘手

  • Person_xxxx: 检测和重绘整个人

  • Mediapipe_face_xxxxx: 检测和重绘人脸

face_yoloperson_yolo模型是最有用的两个模型,默认选项下即为face_yolo模型,上面已经演示了face_yolo模型的效果,不再示例,而person_yolo模型的效果如下,整个人物都会发生一定的变化。

Hands model可以检测和重绘手部,但是对此功能别抱太大希望,SD模型目前很难画出完好的手部,所以不管你重绘多少次,可能效果都不会很完美,但总归可以获得相对来说够看的图片。

另外,模型名称的后缀8s8n有什么意义呢?对比可看下图:

简单来说8s的参数量是8n的三倍多,意味着8s处理时间还会比8n长,但效果更好。8n模型修复脸部的效果已经很不错了,所以通常情况下选择8n即可,修复不佳再切换为8s模型。

最后你可能注意到Adetailer的以下选项

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

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

Detection(检测)

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

Mask Preprocessing(蒙版前处理)

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

Inpainting(局部重绘)

重绘幅度(denosing strength)是最重要的参数,这可能是唯一有必要调整的参数,如果需要更大的变化则提升重绘幅度,反之亦然,它与局部重绘的重绘幅度所起的效果完全相同。下图来自ADetailer官方,指明了插件的inpainting页面下的所有参数与局部重绘页面参数的对应关系。

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

Controlnet

Adetailer还可以与controlnet一起使用。

你可以在Controlnet model选项下选择不同的模型,仅支持 inpaint, scribble, lineart, openpose, tile五种模型。选择模型后,预处理会自动选择,不需要额外设置。

下面对各个ControlNet模型的作用做一简单介绍。

Inpaint:

ControlNet的Inpaint与普通inpaint最大的区别在于能够在很高的重绘幅度下仍然保持整体画面的统一。

举个例子,如果我将ADetailer的重绘幅度设置为1,不使用inpaint和使用inpaint的区别可以在下图中明显看出来:

Scribble:

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

Lineart:

与scribble所起到的作用类似

Openpose:

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

Tile:

给人物更改或添加更多细节,当你需要重新生成或添加更多细节时开启tile。

3、ADetailer和脸部修复的区别

ADetailer和face restoration两者都可以用于修复扭曲的脸部。ADetailer生成更高分辨率的图像,然后缩小图像尺寸来修复脸部。而face restoration则使用另一个AI模型,例如CodeFormer和GFPGAN,来修复脸部。

我更推荐使用ADetailer进行修复(例如局部重绘),理由如下:

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

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

③ 通过Adetailer你可以获得更加丰富的脸部特征

4、何时使用ADetailer

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

① 将图像发送至inpainting(图像修复)。

② 创建蒙版(inpaint mask)。

③ 设置ControlNet(可选设置)。

④ 生成修复后的图像。

因此使用这个插件的最大价值在于自动化,使你可以使用相同的设置修复多张图像。如果使用手动流程,这样的操作将会很繁琐。

所以如果你需要使用inpaint工具来修复人脸、手部或者全身的时候就可以使用ADetailer。

Tips: 当ADetailer与img2img一起使用时,有两个重绘幅度需要设置。img2img的重绘幅度设置适用于整个图像,而ADetailer中的inpainting重绘幅度设置仅适用于蒙版部分。

另外,你还可以选择在“设置” > “ADetailer”中开启保存检测模型结果的功能。这将保存另一张图像,其中包含检测到的区域和置信度分数,如下图所示。

写在最后

感兴趣的小伙伴,赠送全套AIGC学习资料,包含AI绘画、AI人工智能等前沿科技教程和软件工具,具体看这里。

AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。

在这里插入图片描述

一、AIGC所有方向的学习路线

AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

在这里插入图片描述

二、AIGC必备工具

工具都帮大家整理好了,安装就可直接上手!
在这里插入图片描述

三、最新AIGC学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述
在这里插入图片描述

四、AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

若有侵权,请联系删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1896481.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TP8/6 更改后台入口地址admin改为myadmin 隐藏真实后台网址

原来www.xxx.com/admin 改后www.xxx.com/myadmin config/app.php // 应用映射(自动多应用模式有效)app_map > [admintest>admin], 官方文档:ThinkPHP官方手册

免费申请 HTTPS 证书的八大方法

大家好,我是CodeQi! 一位热衷于技术分享的码仔。 为了保证网站的安全和数据的隐私性,使用 HTTPS 加密协议已成为必需。HTTPS 证书由受信任的证书颁发机构 (CA) 签发,可以加密客户端和服务器之间的通信。 幸运的是,有许多方法可以免费申请 HTTPS 证书。本文将介绍八种方法…

云仓酒庄天津分公司:深化业务常态化运营

标题:云仓酒庄天津分公司:深化业务常态化运营,以沙龙为纽带,构建价值叠加的酒业新生态 在当今复杂多变的经济环境中,传统酒业面临着前所未有的挑战与机遇。随着数字化转型的加速和消费者偏好的日益多元化,…

springcloud+vue项目,controller层接口返回json数据,前端可以接收到数据,但浏览器“F12-->网络-->响应“显示为空的问题处理

1.显示为空的场景 SharetekR(access_tokeneyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJQQzoxODA1ODA4ODc1MjUwMTIyNzUyIiwicm5TdHIiOiJrZEoxV05CV3NBSUdYb05TbktSU3kzOGNuSnk3c3FRTSIsInVzZXJJZCI6MTgwNTgwODg3NTI1MDEyMjc1MiwidXNlck5h…

【Python】九种数据类型详讲(内含常见常见的字符串函数汇总)

个人主页:【😊个人主页】 系列专栏:【❤️Python】 文章目录 前言Number(数字)整数类型int (整型,长整型)float(浮点型)complex(复数)…

从硬件角度看Linux的内存管理

1. 分页机制 分段机制的地址映射颗粒度太大,以整个进程地址空间为单位的分配方式导致内存利用率不高。 分页机制把这个分配机制的单位继续细化为固定大小的页(Page),进程的虚拟地址空间也按照页来分割,这样常用的数据和代码就可以以页为单位…

赛灵思的乘法器IP核的blocking mode

一、文档中的解释 我以为乘法器使用blocking mode的输入buffer很大,结果如下图,FFT的buffer就buffer了一个时钟周期,接下来就是只能用一个fifo,35个时钟周期之后,再把值给到乘法器了,然后把乘法器可以改回到…

FPC生产工艺全流程详解

FPC生产制作繁琐而且难度较大,与普通PCB比较,FPC单位面积电路的造价高很多,但是,由于FPC优异的柔性、轻薄和可靠性等特性,给众多领域的设备和产品提供了更广泛的实现空间和新的设计方案,比如沉金板在电子、…

windows server2016搭建AD域服务器

文章目录 一、背景二、搭建AD域服务器步骤三、生成可供java程序使用的keystore文件四、导出某用户的keytab文件本人其他相关文章链接 一、背景 亲测可用,之前搜索了很多博客,啥样的都有,就是不介绍报错以及配置用处,根本不懂照抄那些配置是干…

【在大模型RAG系统中应用知识图谱】

【引子】 关于大模型及其应用方面的文章层出不穷,聚焦于自己面对的问题,有针对性的阅读会有很多的启发,本文源自Whyhow.ai 上的一些文字和示例。对于在大模型应用过程中如何使用知识图谱比较有参考价值,特汇总分享给大家。 在基于…

命令行运行git reflog(reference log)报错的解决办法

文章目录 1. 检查 Git 是否已安装2. 检查 PATH 环境变量3. 重新安装 Git 在Git中, reflog的英文全称是 “ reference log”。意思是 引用日志(参考日志)。它记录了本地仓库中HEAD和分支引用所指向的提交的变更历史。这包括了你所有的提交&…

推荐算法学习笔记2.1:基于深度学习的推荐算法-基于共线矩阵的深度推荐算法-AutoRec模型

AutoRec模型 前置知识:推荐算法学习笔记1.1:传统推荐算法-协同过滤算法 AutoRec模型通过引入自编码器结构,将共线矩阵中的用户向量(基于用户的U-AutoRec)或物品向量(基于物品的I-AutoRec)嵌入到低维空间后还…

Java的数据类型(复习版)

思维导图 一.字面常量 什么是常量?在我的理解看来常量就是在一个程序运行期间,保持不变的量就是常量。 例如: System.out.println(100);System.out.println(a);System.out.println(3.114);这些都可以称为常量。 字面常量的分类:…

喜报 | 怿星携高性价比国产方案亮相IAEIS峰会并荣获“优秀创新产品奖”

近日,由深圳市汽车电子行业协会主办的主题为:“布局全球产业链,促进智能网联汽车产业高质量发展”IAEIS 2024第十三届国际汽车电子产业峰会”暨“2023年度汽车电子科学技术奖”颁奖典礼在深圳隆重举行。 怿星科技携高性价比的「车载网络通信 …

知识库系统平台管理与优化

在之前做的关于FAQ知识库问答系统中,总结了相关踩坑内容,梳理如下,供大家参考。系统平台的管理与优化对于企业来说至关重要,它不仅关乎数据处理的效率,还直接影响到用户体验和业务成果。本文将从系统平台管理方式、系统…

【pytorch16】MLP反向传播

链式法则回顾 多输出感知机的推导公式回顾 只与w相关的输出节点和输入节点有关 多层多输入感知机 扩展为多层感知机的话,意味着还有一些层(理解为隐藏层σ函数),暂且设置为 x j x_{j} xj​层 对于 x j x_{j} xj​层如果把前面的…

【CT】LeetCode手撕—4. 寻找两个正序数组的中位数

目录 题目1- 思路2- 实现⭐4. 寻找两个正序数组的中位数——题解思路 3- ACM 实现 题目 原题连接:4. 寻找两个正序数组的中位数 1- 思路 思路 将寻找中位数 ——> 寻找两个合并数组的第 K 大 (K代表中位数) 实现 ① 遍历两个数组 &am…

天润融通分析AI技术助力客户服务,实现满意度三倍增长

如今,客户体验越来越成为影响客户决策的核心要素。 对于企业来讲,客户在不同触点的每一次互动体验,都成为塑造品牌声誉的“Aha时刻”。但同时,随着社会的发展的加速,客户的需求也在日新月异,给企业带来挑战…

【Linux】静态库的制作和使用详解

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

超融合服务器挂载硬盘--linux系统

项目中需要增加服务器的硬盘容量,通过超融合挂载了硬盘后,还需要添加到指定的路径下,这里记录一下操作步骤。 一:通过管理界面挂载硬盘 这一步都是界面操作,登录超融合控制云台后,找到对应的服务器&#…