inpainting 局部重绘初学者指南

无论你的提示词和模型有多好,一次性获得完美图像的情况都很少见。

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 steps20
种子Seed-1
图片大小Image size704×512
面部修复Face restorationCodeformer
取样方式Sampling methodEuler a
模型Stable Diffusion v1.5 inpainting
蒙版内容Mask content潜空间噪声latent noise”或空白潜空间“latent nothing
全分辨率重绘Inpaint at full resolutionOn 开启
去噪强度Denoising strength0.75

Inpainting局部重绘结果

以下是一些重绘后的图像。

重绘图片

多增加一轮inpainting 重绘

我喜欢最后一个,但新修补的手臂下面多了一只手。按照上传此图像和创建蒙版的类似步骤进行操作。蒙版内容Masked content”必须设置为潜在噪音latent noise才能生成完全不同的内容。

第二轮重绘将腋下的手去除:

使用inpainting去除腋下多余的手

这是我的最终形象。

并排比较

左:原始。右:inpainting 2次

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 strengthCFG scale以微调重绘图像。

经过一些实验,我们的任务完成了:

通过inpainting添加扇子

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 部分。