无论你的提示词和模型有多好,一次性获得完美图像的情况都很少见。
Inpainting局部重绘是修复小缺陷不可或缺的方法。在这篇文章中,我将介绍一些使用Inpainting来修复缺陷的基本示例。
这是初学者指南系列的第 3 部分。
阅读第 1 部分:零基础初学者指南。
阅读第 2 部分:提示构建。
阅读第 4 部分:模型。
图像模型和GUI
我们将使用Stable diffusion AI 和 AUTOMATIC1111 GUI。请参阅我的 快速入门指南, 了解如何在 Google 云服务器中进行设置。
Inpainting基本设置
在本节中,我将逐步向您展示如何使用inpainting来修复小缺陷。
我将使用Lonely Palace提示词生成原始图像:
[艾玛·沃特森:琥珀色:0.5],(长发:0.5),headLeaf,穿着斯托拉,巨大的罗马宫殿,大窗户,中世纪文艺复兴宫殿,((大房间)),4k,arstation,复杂,优雅,高度详细
(详细设置可以在这里找到。)
[emma watson: amber heard: 0.5], (long hair:0.5), headLeaf, wearing stola, vast roman palace, large window, medieval renaissance palace, ((large room)), 4k, arstation, intricate, elegant, highly detailed
这是一个很好的图像,但我想解决以下问题
- 脸看起来不自然。
- 右臂不见了。
使用inpainting模型(可选)
您知道有一个用于inpainting的Stable diffusion模型吗?如果您想获得最佳结果,可以使用它。但通常情况下,可以使用生成图像的相同模型进行修复。
要安装v1.5修复模型,请下载模型checkpoint文件并将其放入文件夹中
stable-diffusion-webui/models/Stable-diffusion
在 AUTOMATIC1111 中,按左上角检查点选择下拉框旁边的刷新图标。选择sd-v1-5-inpainting.ckpt
启用该模型。
创建Inpaint蒙版
在 AUTOMATIC1111 GUI 中,选择img2img选项卡,然后选择Inpaint子选项卡。将图像上传到Inpaint画布。
我们将同时修复右臂和脸部。使用画笔工具创建蒙版。这是您需要Stable diffusion重新生成图像的区域。
Inpainting设置
提示词
您可以重复使用原始提示词来修复缺陷。和生成图像类似,但仅在特定区域中。
图片大小image size
需要将图像尺寸调整为与原始图像相同。(在本例中为 704 x 512)。
面部修复Face restoration
如果您要修复脸部,则可以打开“恢复脸部restore faces”。您还需要在“设置”选项卡中选择并应用要使用的面部修复模型。CodeFormer就可以。
请注意,此选项可能会产生不自然的外观。它还可能生成一些与模型风格不一致的东西。
蒙版内容(Mask Content)参数
下一个重要设置是Mask Content。
如果您希望结果以原始内容的颜色和形状为指导,请选择原始”original“。”original“经常在修复脸部时使用,因为一般形状和解剖结构都还可以。我们只是想让它看起来有点不同。
在大多数情况下,您将使用原始“original”并更改降噪强度“denoising strength”来实现不同的效果。
如果您想重新生成与原始内容完全不同的东西,例如移除肢体或隐藏手,则可以使用潜空间噪声“latent noise”或空白潜空间“latent nothing”。这些选项使用原始图像以外的其他内容初始化蒙版区域。它会产生完全不同的内容。
去噪强度Denoising strength
去噪强度Denoising strength 控制与原始图像相比会产生多少变化。当您将其设置为 0 时,不会发生任何变化。当您将其设置为 1 时,您将得到不相关的重绘。
0.75 通常是一个很好的起点。如果你想减少改变,就减少。
批量大小Batch size
确保一次生成一些图像,以便您可以选择最好的图像。将种子设置为 -1,以便每个图像都不同。
提示词Prompt | (与原版相同) |
取样步骤Sampling steps | 20 |
种子Seed | -1 |
图片大小Image size | 704×512 |
面部修复Face restoration | Codeformer |
取样方式Sampling method | Euler a |
模型 | Stable Diffusion v1.5 inpainting |
蒙版内容Mask content | 潜空间噪声“latent noise”或空白潜空间“latent nothing” |
全分辨率重绘Inpaint at full resolution | On 开启 |
去噪强度Denoising strength | 0.75 |
Inpainting局部重绘结果
以下是一些重绘后的图像。
多增加一轮inpainting 重绘
我喜欢最后一个,但新修补的手臂下面多了一只手。按照上传此图像和创建蒙版的类似步骤进行操作。蒙版内容“Masked content”必须设置为潜在噪音latent noise才能生成完全不同的内容。
第二轮重绘将腋下的手去除:
这是我的最终形象。
并排比较
Inpainting 重绘是一个迭代过程。您可以多次应用它来优化图像。
请参阅这篇文章了解另一个更极端的修复示例。
请参阅使用修复去除多余肢体的教程。
添加新物体
有时您想向图像添加一些新内容。
让我们尝试在图片中添加一把扇子。
首先,将图像上传到Inpaint画布,并在胸部和右臂周围创建一个遮罩。
在原提示词的开头添加“拿着手扇”的提示词
(手持扇子:1.2)、[艾玛·沃特森:琥珀听见:0.5]、(长发:0.5)、headLeaf、穿着斯托拉、巨大的罗马宫殿、大窗户、中世纪文艺复兴时期的宫殿、((大房间))、4k ,arstation,复杂,优雅,非常详细
(holding a hand fan: 1.2), [emma watson: amber heard: 0.5], (long hair:0.5), headLeaf, wearing stola, vast roman palace, large window, medieval renaissance palace, ((large room)), 4k, arstation, intricate, elegant, highly detailed
将新物体添加到原始提示词中可确保风格的一致性。可以调整关键词权重(上面1.2)来让扇子展示在图片中。
将蒙版内容masked content设置为潜空间噪声latent noise。
调整去噪强度denoising strength和CFG scale以微调重绘图像。
经过一些实验,我们的任务完成了:
inpainting参数说明
去噪强度Denoising strength
去噪强度控制最终图像应尊重原始内容的程度。将其设置为 0 不会改变任何内容。设置为 1 你会得到一张不相关的图像。
如果您想要小改动,则设置为低值;如果您想要大改动,则设置为高值。
提示词引导系数CFG Scale
与text-to-image中的用法类似,Classifier Free Guidance scale 是一个参数,用于控制模型应尊重您的提示的程度。
1 – 大多忽略您的提示。
3 – 更有创意。
7 – 遵循提示和自由之间的良好平衡。
15 – 更加遵守提示。
30 – 严格按照提示操作。
蒙版内容Masked content
屏蔽内容控制屏蔽区域的初始化方式。
- 填充Fill:使用高度模糊的原始图像进行初始化。
- 原始Original:未修改。
- 潜空间噪声Latent noise:用填充初始化的蒙版区域,并将随机噪声添加到潜在空间。
- 空白潜空间Latent Nothing:类似于潜在噪声,只是没有噪声添加到潜在空间中。
以下是任何采样步骤之前的初始蒙版内容。这让您对它们是什么有一些了解。
Inpainting技巧
成功的Inpainting重绘需要耐心和技巧。
- 一次一小块区域。
- 将蒙版内容保持为原始状态并调整降噪强度denoising strength在 90% 的情况下都有效。
- 尝试调整蒙版内容,看看哪一个效果最好。
- 如果 AUTOMATIC1111 的设置中没有任何效果,可以使用 Photoshop 或 GIMP 等照片编辑软件编辑蒙版区域来重绘。
这是初学者指南系列的第 3 部分。
《inpainting 局部重绘初学者指南》有13条评论