在stable diffussion中完美修复AI图片
无论您的提示和模型有多好,一次性获得完美图像的情况很少见。
修复小缺陷的不可或缺的方法是图像修复(inpainting)。在这篇文章中,我将通过一些基本示例来介绍如何使用图像修复来修复缺陷。
需要的软件
我们将使用 AUTOMATIC1111 Stable Diffusion GUI 来创建图像。
基本的图像修复设置
在这一部分,我将逐步展示如何使用图像修复来修复小缺陷。
我们先使用下面的提示来创建一张图片:
正向提示词:
masterpiece,best quality,masterpiece,best quality,official art,extremely detailed CG unity 8k wallpaper,a beautiful woman,full body,
负向提示词:
lowers,monochrome,grayscales,skin spots,acnes,skin blemishes,age spot,6 more fingers on one hand,deformity,bad legs,error legs,bad feet,malformed limbs,extra limbs,
我们可以得到下面的图片:

虽然这张图片整体上看起来还不错,但是还是有一些问题。
比如脸部和手部。
那么接下来我们怎么修复呢?
选择对应的模型
如果你经常浏览C站的话,你可以看到对于有些模型会有一种专门给重绘使用的模型,这种模型是专门为图像修复而训练的Stable Diffusion模型。
如果您想获得最佳结果,可以使用它。但通常,使用生成图像的相同模型进行图像修复也是可以的。
我们把对应的模型下载下来,并将其放入文件夹中:
stable-diffusion-webui/models/Stable-diffusion
在AUTOMATIC1111中,点击左上角检查点选择下拉框旁边的刷新图标,就可以看到你刚刚下载的模型了。
创建图像修复遮罩
在AUTOMATIC1111 GUI中,选择img2img标签并选择Inpaint子标签。将图像上传到图像修复画布。
或者在txt2img标签中选择send img to inpaint。
我们将同时修复手部和脸部。使用画笔工具创建一个遮罩。这是您希望Stable Diffusion重新生成图像的区域。

图像修复的设置
图像大小
需要调整图像大小以与原始图像相同。(在这种情况下为768 x 512)。

面部修复
如果您正在修复面部,可以打开restore faces。选择对应的face restoration model:CodeFormer。

有朋友会问了,为什么我的页面上面没有restore faces选项呢?
如果你没有这个选项的话,需要到setttings里面的user interface添加下面的两个设置:

请注意,此选项可能会生成不自然的外观。它也可能生成与模型风格不一致的内容。
遮罩内容
下一个重要设置是Masked Content。
如果您希望结果由原始内容的颜色和形状引导,请选择original。
original通常用于面部图像修复,因为一般形状和解剖结构是正确的。我们只是希望它看起来有点不同。
在大多数情况下,您将使用original并更改去噪强度以实现不同的效果。
如果您想要从原始图像中完全重新生成某些内容,例如移除一个肢体或隐藏一只手,可以使用latent noise或latent nothing。
这些选项使用与原始图像不同的内容初始化遮罩区域。它将产生完全不同的东西。
去噪强度
去噪强度控制与原始图像相比将进行多少变化。当您将其设置为0时,什么都不会改变。当您将其设置为1时,您将获得一个不相关的图像。0.75通常是一个很好的起点。如果您想要更少的变化,请降低它。
批量大小
确保一次生成一些图像,以便您可以选择最好的。将种子设置为-1,以便每个图像都不同。
图像修复结果
以下是一些修复后的图像。

可以看到第四张还是不错的,但是还不够完美。所以我们可以考虑再来一轮修复。
再进行一轮图像修复
把上面生成的最后一张图片再发到inpait中再次修复。
我们可以得到下面的结果:

图像修复是一个迭代过程。您可以根据需要多次应用它来细化图像。
如果一次不行的话,我们可以考虑多来几次。
添加新对象
有时,您可能希望在图像中添加一些新东西。
让我们尝试在图片中添加一把剑。
首先,将图像上传到图像修复画布并在手部的位置添加遮罩。
在原始提示的开头添加“holding a sword”。图像修复的提示是
(holding a sword:1.5),masterpiece,best quality,masterpiece,best quality,official art,extremely detailed CG unity 8k wallpaper,a beautiful woman,full body,
向原始提示中添加新对象确保风格一致。您可以调整关键词权重(上面的1.5)以使宝剑显示。
将遮罩内容设置为潜在噪声。
调整去噪强度和CFG比例以微调修复后的图像。
经过一些实验,我们的任务完成了:

图像修复参数的解释
去噪强度
去噪强度控制最终图像和原始内容的相似度。将其设置为0则什么都不会改变。将其设置为1,则您会得到一个不相关的图像。
如果您想要小的变化,请设置为低值;如果您想要大的变化,请设置为高值。
CFG scale
类似于在文本到图像中的使用,CFG scale是一个参数,用于控制模型和你的提示词的关联度。
1 – 大致忽略您的提示。
3 – 更有创造力。
7 – 在遵循提示和自由之间取得良好的平衡。
15 – 更多地遵循提示。
30 – 严格遵循提示。
遮罩内容
遮罩内容控制遮罩区域是如何初始化的。
fill:用原始图像的高度模糊版本初始化。
Original:未修改。
latent noise:遮罩区域用填充初始化,并在潜在空间中添加随机噪声。
latent nothing:像潜在噪声,只是没有在潜在空间中添加噪声。
图像修复的技巧
成功的图像修复需要耐心和技巧。以下是使用图像修复的一些要点:
- 一次修复一个小区域。
- 尝试不同的遮罩内容以查看哪个最有效。
- 可以多次尝试修复。
- 如果在AUTOMATIC1111的设置中什么都不起作用,请使用像Photoshop或GIMP这样的图像编辑软件,用您想要的大致形状和颜色绘制感兴趣的区域。上传那张图像并用原始内容进行图像修复。
在stable diffussion中完美修复AI图片的更多相关文章
- 网页中PNG透明背景图片的完美应用
PNG 图片在网站设计中是不可或缺的部分,最大的特点应该在于 PNG 可以无损压缩,而且还可以设置透明,对于增强网站的图片色彩效果有重要的作用. 但为什么 PNG 图片却没有 GIF 和 JPG 图片 ...
- Myeclipse 2015 stable 2.0 完美破解方法
2015-08-21 以前写了一篇<Myeclipse 2015 stable 1.0 完美破解方法>,现 在跟新一下Myeclipse 2015 stable 2.0 破解方法,此方法 ...
- Myeclipse 2015 stable 1.0 完美破解方法(转自 http://yangl.net/2015/07/14/myeclipse_2015stable_1/)
Myeclipse 2015 stable 1.0 完美破解方法 http://yangl.net/2015/07/14/myeclipse_2015stable_1/ 破解包(注册机)下载地址:链接 ...
- java ee@ Myeclipse 2015 stable 1.0 完美破解方法
Myeclipse 2015 stable 1.0 完美破解方法 破解步骤: 使用以前的注册机算号,版本选择Blue即可,后续可解锁Spring高级功能,即Bling的所有功能全部具备 1.1 进入m ...
- WinForm IME输入法BUG完美修复
本文来自http://hi.baidu.com/wingingbob/item/a2cb3fc0fe3bd1bb0d0a7b5b <WinForm IME输入法BUG测试>里,我描述了在. ...
- iOS - 选取相册中iCloud云上图片和视频的处理
关于iOS选取相册中iCloud云上图片和视频 推荐看:TZImagePickerController的源码,这个是一个非常靠谱的相册选择图片视频的库 .当然也可以自己写 如下遇到的问题 工作原因, ...
- 记录利用CSS完美解决前端图片变形问题
在头条IT学堂看到CSS完美解决前端图片变形问题的文章,就记录分享下: 一.让图片的宽度或者高度等于容器的宽度或高度,多余的裁掉,然后让图片居中: <style type="text/ ...
- 基于Docker安装的Stable Diffusion使用CPU进行AI绘画
基于Docker安装的Stable Diffusion使用CPU进行AI绘画 由于博主的电脑是为了敲代码考虑买的,所以专门买的高U低显,i9配核显,用Stable Diffusion进行AI绘画的话倒 ...
- 如何在latex 中插入EPS格式图片
如何在latex 中插入EPS格式图片 第一步:生成.eps格式的图片 1.利用visio画图,另存为pdf格式的图片 利用Adobe Acrobat裁边,使图片大小合适 另存为.eps格式,如下图所 ...
- 如何使用免费PDF控件从PDF文档中提取文本和图片
如何使用免费PDF控件从PDF文档中提取文本和图片 概要 现在手头的项目有一个需求是从PDF文档中提取文本和图片,我以前也使用过像iTextSharp, PDFBox 这些免费的PD ...
随机推荐
- null 和 undefined 的区别?
null 表示一个对象被定义了,值为"空值":undefined 表示不存在这个值.(1)变量被声明了,但没有赋值时,就等于undefined. (2) 调用函数时,应该提供的参数 ...
- Solo 开发者周刊 (第 1 期):开源产品的探索之路
产品推荐 如何着手将一个简单的想法转变为一个成熟的开源项目,以及如何在此过程中利用和贡献于开源社区.同时使其达到商业化的同时,保持原有的开源精神.这些是我们需要探索的. Spug 开源运维平台 Spu ...
- Spring MVC 中视图的实现原理,在Spring MVC 中实现重定向和转发,以及访问静态资源
1. Spring MVC 中视图的实现原理,在Spring MVC 中实现重定向和转发,以及访问静态资源 @ 目录 1. Spring MVC 中视图的实现原理,在Spring MVC 中实现重定向 ...
- 折腾指南: 将光猫改造成你的NAS,WebDAV+网页文件管理器vList5+natmap
原文:https://hi.imzlh.top/2024/07/18.cgi (预发布) 很久没有写完全折腾类文章了,这还得追溯到上次折腾S905L3A那会. 这篇文章很长,但是是小白级包学会. 为什 ...
- [oeasy]python0036_牛说_cowsay_小动物说话_asciiart_figlet_lolcat_管道(祝大家新年快乐~)
牛说(cowsay) 回忆上次内容 上次我们研究了shell脚本的编程 并且在shell中实现了 循环语句 延迟命令 清屏命令 python命令 figlet命令 编辑 还能整点什么呢? 还想 ...
- [oeasy]python0019_ 打包和解包_struct_pack_unpack
打包和解包 回忆上次内容 ASCII 由这样几类字符构成 英文大写字符 英文小写字符 数字 符号 电报时代对于英文.数字的编码 使用的是摩斯电码 编辑 这摩斯电码是3进制的编码方式 长短空 怎 ...
- 2024 暑假友谊赛 1 (7.13)zhaosang
A-A https://vjudge.net/contest/638765#problem/A 一开始贪心做不出来,后面发现是dp找到转移方程即可,01dp问题 代码如下 #include <b ...
- CRC 循环冗余效验
CRC循环冗余效验 利用多项式 x6 + x4 + x3,实际为使用模2除法来做的加密 常用crc多项式有 名称 生成多项式 数值式 简记式 标准引用 CRC-4 x4+x+1 0x1'3 0x3 I ...
- docker 具名和匿名挂载
具名和匿名挂载 -v 容器路径! docker run -d -P --name nginx01 -v /etc/nginx nginx -P 随机使用 端口号 docker volume ls 查看 ...
- Python异常处理try+except用法
1.except是用来捕获程序异常的 异常代码如: ModuleNotFoundError(没有找到模块,安装提示的模块即可) AttributeError(没有访问属性) TypeError(类型错 ...