After Detailer让图像自动修复

After Detailer(简称adetailer)是一个Stable Diffusion的自动Web-UI扩展,它能够自动化修复图像中的不完整部分,例如模糊的人脸等常见问题。在这篇文章中,你将了解它的工作原理、如何使用它,以及一些常见的使用场景。

软件

当然前提是你需要一个SD的软件,你可以用本地的SD webUI或者云端的SD环境,全都是可以的。

安装After Detailer扩展

  1. 正常启动AUTOMATIC1111 Web-UI。

  2. 导航到扩展页面。

  3. 点击从URL安装标签。

  4. 扩展的git仓库URL字段中输入以下URL。

https://github.com/Bing-su/adetailer

  1. 等待安装完成的确认消息。

  2. 重启Web-UI。

image-20240702151334743

怎么修复人脸

After Detailer的主要作用是做人脸修复,那么在没有After Detailer之前,我们是怎么做人脸修复的呢?

生成小尺寸人脸的问题

假设你生成了一个人的全身像。这里假设你使用的是v1模型,不应该设置过高的分辨率(超过512像素太多)。否则,你会得到重复的人像。

模型:majicmixRealistic_v7

提示:

anime style, 2d, fantasy anime detailed illustration, Grindhouse,  1girl, she is very Ghostly and Macho, with copper skin, she is dressed in Sweatpants, she has [Croatian|Punks] hair, at Sunset, 

尺寸:512×768

你会得到下面的图片:

image-20240702183001873

由于人脸小且分辨率低,覆盖人脸的像素不多。VAE没有足够的像素生成一个好的人脸。所以人脸是模糊的。

你通常会使用Send to inpaint按钮将图像发送到Inpainting。

image-20240702183119840

Inpaint标签中,围绕模糊的人脸画一个遮罩。

使用以下设置:

  • 遮罩模式:Inpaint masked

  • 遮罩内容:Original

  • Inpaint区域:Only masked

  • 去噪强度:0.5

点击Generate

image-20240702183344778

你会看到人脸被很好地修复了。inpaint area选择 only masked选项特别重要,因为它使用整个分辨率(512×768)重新生成遮罩区域。实际上,它以更高的分辨率重新生成了人脸,然后将其缩放回原始分辨率。这就是为什么人脸现在看起来好多了。

使用After Detailer自动Inpaint

After Detailer自动化了这个过程以及更多。它使用面部识别模型检测人脸自动创建Inpaint遮罩

然后扩展执行Inpaint,只处理遮罩区域,就像你手动处理一样。

所以它本质上是一个节省时间的扩展。

使用After Detailer

在Txt2img中使用

要在txt2img中使用After Detailer,请展开ADetailer。

选择Enable ADetailer

ADetailer model下拉菜单中选择face_yolo8n.pt模型。

image-20240702201412632

现在你就可以使用aDetailer的基本功能了。

点击Generate。你会得到以下图像。

image-20240702201612675

可能你得到的人脸图片和手动Inpaint不完全一样,那是因为绘制的遮罩区域是不同的。

在img2img中使用

你还可以在使用图像到图像转换时使用After Detailer。这样做的好处是你可以同时恢复人脸并为整个图像添加细节

在txt2img页面上,把之前的图片使用Send to img2img按钮将图像发送到img2img页面。

将img2img的去噪强度设置为一个较低的值,这样我们可以保持一个较低的重绘幅度。

ADetailer部分启用After Detailer。

点击Generate。生成图片。

我们可以对比一下两张图片的效果,可以看到重绘后的图片添加了更多的细节。

image-20240702202812881

当然,你也可以通过调整去噪强度来控制添加的细节级别。

同样的,你还可以在inpaint标签中使用ADetailer。

ADetailer参数解释

现在你知道了aDetailer的基本功能,现在让我们看一下,Adetailer的一些额外参数。

检测模型

在ADetailer模型下拉菜单中选择检测模型。可以看到下面几个模型,模型分为几个不同的组:

image-20240702203123933

Face_xxxx:检测并重绘人脸

Hand_xxxx:检测并重绘手

Person_xxxx:检测并重绘整个人

Mediapipe_face_xxxxx:检测并重绘人脸

最有用的模型是face_yolo和person_yolo模型

YOLO的全称是(You Only Look Once)模型擅长检测人脸和物体,在Inpaint中工作得很好。

然而,因为需要更多的像素来Inpaint整个人,所以使用人脸模型时人脸的细节并没有那么多。

通常不建议Inpaint一个大区域。如果你有像这样的图像,你最好手动一个接一个地Inpaint脚、裙子等。

Mediapipe_face有时有效有时无效。所以不太建议使用他们。

手模型用于重绘手。但不要对此抱太大希望,因为Stable Diffusion仍然不擅长绘制手,无论它重绘多少次。

最后,你可能会想知道YOLO 8n和8s模型之间的区别。8n模型更快,但比8s模型小约3倍(因此功能较弱)。8n模型的效果不错。但是如果After Detailer难以检测到人脸,请切换到8s模型。

最后,每次你可以使用多达两个检测模型。只需切换到2nd标签并选择一个额外的模型。

image-20240702205550611

因为我们同时选择了人脸和手部模型,所以现在它会检测到人脸,然后是手。然后它依次修复两者。

使用Inpaint提示

在inpaint中使用prompt可以通过prompt来改变检测到的人脸部分。具体的提示部分如下所示:

image-20240702210226366

这里我们使用了之前讲到的prompt的技巧,我们想让脸呈现的是Joe biden和川建国同志的混合面孔,所以我们的prompt可以这样写:

[Joe biden: donald trump: 0.5]

通过调整Inpaint去噪强度来调整效果。现在你得到了新的混合外观!

image-20240702210421795

要注意的是,这里的提示词还可以包含LoRA。如果你想要某些特定的face,那么可以尝试使用lora来实现。

Detection

一般来说,我们不需要改变detection的值。因为默认的值已经工作的很好了。

image-20240702210734923

检测模型置信度阈值:如果你注意的话,在检测人脸的过程中,会呈现一个数字。这个数字叫做置信度分数

0.8意味着模型有80%的信心认为这是一个人脸。阈值是所需的最低置信度分数。如果你设置为0.9,置信度分数为0.8的人脸将不被视为人脸。保持在0.3的低值。如果你有检测人脸的问题,请降低它。如果检测到太多,请增加它。

遮罩最小/最大区域比率:允许的检测遮罩的最小和最大区域。例如,如果你将最小区域比率设置为0.1,Adetailer将拒绝遮罩小于图像大小10%的检测。如果你检测到不需要的小物体,请增加最小值。

遮罩预处理

image-20240702210933969

这些值通常不需要更改。

这些是在Inpaint之前移动和调整遮罩大小的。为了获得最佳结果,你可以在设置 > ADetailer中启用“保存遮罩预览”,每个检测都会保存一个遮罩预览图像。这样我们可以通过保存下来的遮罩预览图像来了解遮罩是如何改变的。

遮罩x/y偏移:以像素为单位在x/y方向上移动遮罩。

遮罩腐蚀(-) / 膨胀(+):减小/扩大遮罩。

遮罩合并模式:分别Inpaint每个遮罩。合并:合并遮罩然后Inpaint。合并并反转:Inpaint未遮罩的区域。

Inpainting

image-20240702211254397

Inpainting部分中最重要的设置是Inpaint去噪强度。它控制自动Inpaint中使用的去噪强度。增加以进行更多更改。减少以进行较小的更改。

Inpaint only masked 表示是否只inpaint mask部分。

你可以修改Inpaint中的图像宽度高度CFG比例和采样步数。但默认值就可以了。

使用ControlNet与ADetailer

ControlNet是一个不可或缺的工具,可以精确控制图像生成。如果你不熟悉controlNet,请参考我之前写的controlnet的文章。要在ADetailer中使用ControlNet,你必须首先在AUTOMATIC1111上安装ControlNet。

然后,你可以在最后一部分中选择ControlNet模型。

image-20240702213232926

ControlNet Openpose

使用ControlNet Openpose模型可以用相同的姿势Inpaint人物。

例如,如果没有启用任何ControlNet并且去噪强度很高的时候,姿势可能会以与整体图像不一致的方式改变。

启用ControlNet Openpose后,女孩的姿势在Inpaint后保持不变。

ControlNet Tile

启用ControlNet Tile可以使Inpaint更好地遵循原始图像。

如果你想让Inpaint更好的贴合原始图像,请启用ControlNet Tile。

ControlNet inpaint

ControlNet inpaint模型(control_xxxx_inpaint)与global_inpaint_harmonious预处理器可以提高Inpaint区域与图像其余部分之间的一致性

当你想将Inpaint去噪强度设置得很高时,请使用global_inpaint_harmonious。稍微调整值或更改种子以获得不同的生成。

ControlNet Line art

ControlNet line art让Inpaint过程遵循原始图像的一般轮廓。

如果你想让Inpaint的图像遵循原始内容的轮廓,请使用ControlNet line art。

何时使用ADetailer

ADetailer中没有什么是你不能手动完成的。ADetailer只是下面一些步骤的自动化:

  • 将图像发送到Inpaint

  • 创建Inpaint遮罩

  • 设置ControlNet(可选)

  • 生成Inpaint

使用此扩展的最有价值的方面是自动化,以便你可以使用相同的设置创建多个图像。这在手动工作流程中是繁琐的。

技巧

当使用ADetailer与img2img时,有两个去噪强度需要设置。

img2img的去噪强度为整个图像设置值。

ADetailer中的Inpaint去噪强度为Inpaint设置去噪强度。

你还可以在设置> ADetailer中选择保存检测模型的结果。它将保存一个额外的图像,其中包含检测区域和置信度分数。

点我查看更多精彩内容:www.flydean.com

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

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

相关文章

品牌策划学习资源全攻略:从入门到精通的推荐清单!

这里再分享一些网站书籍和杂志给大家。 TOPYS创意内容平台: 专注于创意内容分享,涵盖广告、设计、艺术等多个领域,是广告设计人寻找创意灵感的好去处。 Dribbble: 设计师社区,用户可以浏览到全球设计师的优秀作品&…

使用webrtc-streamer查看rtsp实时视频

1.下载webrtc-streamer 2.解压运行webrtc-streamer.exe 在浏览器访问127.0.0.1:8000,点击窗口可以看到本机上各窗口实时状态,点击摄像头可以显示摄像头画面。 5.安装phpstudy,并建立网站。(具体过程自己网上搜) 6.打开…

【探索Linux】P.38(传输层 —— TCP协议通信连接管理机制简介 | TCP连接状态转换)

阅读导航 引言一、TCP协议通信连接管理机制二、连接状态转换1. TCP状态转换图2. 状态转换过程3. 理解TIME_WAIT状态(1)目的和作用(2)状态转换(3)特殊情况(4)影响和优化 4. 理解 CLOS…

多模态大模型时代下的文档图像智能分析与处理_多模态ocr

0. 前言1. 人工智能发展历程 1.1 传统机器学习1.2 深度学习1.3 多模态大模型时代 2. CCIG 文档图像智能分析与处理论坛 2.1 文档图像智能分析与处理的重要性和挑战2.2 文档图像智能分析与处理高峰论坛2.3 走进合合信息 3. 文档图像智能分析与处理 3.1 文档图像分析与预处理3.2 …

牛市中途深度调整,一览下半场值得关注的 Solana 生态五大潜力项目

近期有关加密货币的利空消息让市场行情一度陷入了恐慌之中,短期利空的落地也将伴随着接下来市场的蓄势。对于投资者来说,现在布局超跌潜力项目不失为一个不错的机会。作为本轮牛市值得关注的两大生态,Solana和TON的快速发展和吸金效应&#x…

微米级触觉感知的紧凑视触觉机器人皮肤

视触觉皮肤(VTS)分为涂层型、标记型和热致变色型。涂层的耐磨性和空间分辨率是涂层型VTS的核心问题。近期,北京邮电大学方斌教授联合中国地质大学(北京)杨义勇教授,在传感器领域Q1期刊IEEE Sensors Journal…

存储相关基本知识:oss\s3\文件存储\块存储\

存储 常见的存储格式 文件存储会以文件和文件夹的层次结构来整理和呈现数据;块存储会将数据拆分到任意划分且大小相同的卷中;对象存储会管理数据并将其链接至关联的元数据。 DAS和SAN是基于物理块的存储方式,而NAS是基于文件的存储方式。 在DAS和SAN中…

Conformal low power-2.电源感知等效性检查

电源感知等效性检查 ■ 第24页:电源感知等效性检查概述 ■ 第24页:启动低功耗(等效性检查)软件 ■ 第25页:电源感知等效性检查流程 ■ 第28页:电源感知等效性检查示例Do文件 电源感知等效性检查概述…

亚马逊关键词优化全攻略:自养号测评让你的产品跃居首页

常常听到亚马逊运营吐槽: 为啥我的产品就是上不了首页呢? 我的关键词要怎么优化才能排名靠前啊? 的确,每天都有无数个卖家在想方设法让自己的产品排到首页,所以产品的竞争激烈程度不言而喻。 我们在亚马逊运营中&a…

昇思MindSpore学习笔记6-03计算机视觉--ResNet50图像分类

摘要: 记录MindSpore AI框架使用ResNet50神经网络模型,选择Bottleneck残差网络结构对CIFAR-10数据集进行分类的过程、步骤和方法。包括环境准备、下载数据集、数据集加载和预处理、构建模型、模型训练、模型测试等。 一、概念 1.图像分类 最基础的计算…

用6000万茅台案,了解什么是外挂?

近日,一起涉案金额高达6000余万元的案件出现在人们视野中。此前浙江丽水云和县公安局侦破了一起非法利用软件抢购电商平台茅台酒案。 据了解,犯罪嫌疑人以非法牟利为目的,开发了抢购软件,以有偿原价抢购电商平台飞天茅台酒为噱头&…

Raspberry Pi 使用 Halio 实现 13Top/s AI 加速

Raspberry Pi 5 现在可以选择用于神经网络、人工智能和机器学习的 AI 协处理器。 AI 套件包含最近宣布的用于容纳 NVMe 内存驱动器的相同 M.2 HAT,但装载了 13Top/s Hailo-8L AI 处理器。 据 Raspberry Pi 介绍,连接是通过其单通道“以 8Gbit/s 的速度…

PyCharm在线版,一周使用总结!!!

前言 过去一周,对pycharm在线版进行了使用,对云原生开发工具有了全新的认识,云原生开发是一种现代化的软件开发和部署方法,它充分利用了云计算的优势,特别是容器化、微服务、持续集成/持续部署(CI/CD&…

Finalshell如何使用ssh秘钥连接服务器

[TOC](Finalshell如何使用ssh秘钥连接服务器)背景 最近在开发项目,需要部署到客户服务器,且不好暴露我们的gitlab地址去下载部署,只好回到解放前,使用工具上传文件到客户服务器部署😂 但是手写scp命令太麻烦&#x…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第58集-agent机器人助理自动群发短信

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第58集-agent机器人助理自动群发短信 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写…

20个实验数据创造AI蛋白质里程碑!上海交大联合上海AI Lab发布FSFP,有效优化蛋白质预训练模型

蛋白质,这些微小而强大的生物分子,是生命活动的基础,在生物体内扮演着多种角色。然而,要精确地调整和优化蛋白质功能,以适应特定的工业或医疗需求,却是一项极具挑战性的任务。传统上,科学家们依…

python入门综合篇—资源爬取与exe打包(图形界面)

了解我的人都知道,我是一个谨言慎行且兴趣爱好广泛的IT,作为一个合格的前端,没事捣鼓一下python很合理吧,再没事搞搞java和php也很合乎逻辑吧,实在没事,玩玩linux服务器也是合乎常理的吧。所以,…

LlamaFactory可视化微调大模型 - 参数详解

LlamaFactory 前言 LLaMA Factory 是一个用于微调大型语言模型的强大工具,特别是针对 LLaMA 系列模型。 可以适应不同的模型架构和大小。 支持多种微调技术,如全参数微调、LoRA( Low-Rank Adaptation )、QLoRA( Quantized LoRA )等。 还给我们提供了简单实用的命令行…

Odoo免费开源ERP如何处理汽车零部件企业的OE编码问题

业务背景 汽车零部件企业在每个汽配零件都有OE编号,即原厂编号,Original Equipment Number。一个配件,可能可以在多个车型上使用,对应的,就有多个可兼容的OE编号。 客户下单时候,直接报OE编号&#xff0c…

Python数据处理之高效校验各种空值技巧详解

概要 在编程中,处理空值是一个常见且重要的任务。空值可能会导致程序异常,因此在进行数据处理时,必须确保数据的有效性。Python 提供了多种方法来处理不同数据对象的空值校验。本文将详细介绍如何对Python中的各种数据对象进行空值校验,并包含相应的示例代码,帮助全面掌握…