软件
我将在本教程中使用 AUTOMATIC1111 GUI。您可以使用快速入门指南中的 Colab 笔记本一键运行此 GUI。您也可以将其安装在 Windows 和 Mac 上。
我们将需要 v1.5 修复模型。确保在快速入门指南中启动 colab notebook 时检查修复模型。
如果您在本地运行 AUTOMATIC1111,请按照说明安装修复模型。
在第二个示例中,我将使用 Photoshop 在某些区域上绘画。您可以使用任何其他照片编辑软件。
提示和否定提示
要修复的两个图像是使用以下提示生成的。
穿着跑步服的美丽女性全身肖像,头发突出,坐在餐厅外,棕色眼睛,穿着裙子,侧灯
否定提示是
毁容,丑陋,坏,不成熟,两个头
我们将在修复示例中使用相同的提示。
示例 1:修复只是为了修复肢体
我们将用扭曲的四肢修复下图。
如果您想按照本教程进行操作,可以使用下面的按钮下载此图像。
将图像发送到修复
显然腿是最有问题的。此图像是使用 AUTOMATIC1111 中的 txt2img 选项卡生成的。我们将单独修复此图像。使用图像下方方便的“发送到修复”按钮将新生成的图像发送到修复。
或者,如果您使用的是下载的图像,请转到 img2img 选项卡并选择 Inpaint 子选项卡。在相应的输入框中写上提示和否定提示。通过将图像拖放到图像画布来上传图像。
无论您使用哪种方法,现在您都应该像下面这样设置 GUI。
修复参数
下面是我的修复设置的截图。
有很多设置。重要的是
提示和否定提示:如原样。
示例步骤:设置为一个相当高的值,例如 25。
Inpaint area:“Whole picture”生成与整个图像连贯的图像。“Only masked”仅绘制遮罩区域,但分辨率更高。它对于绘制更精细的细节(如面部)很有用。
批量大小:设置为一个合理的数字,例如 4,这样您就可以挑选出最好的一个。
去噪强度是一个非常重要的参数。0.75 是一个很好的起点。如果你想改变更多,就增加。如果您希望它的变化更少,请减少。
屏蔽内容:保持原样。
种子:-1 为随机。这很重要,因为您希望在每次试验中产生不同的东西。
选择稳定扩散 v1.5 修复模型。
固定四肢
现在,我们准备使用修复来修复肢体。让我们先修复腿,因为它们是最有问题的。使用修复画布旁边的画笔工具在腿周围创建一个蒙版。覆盖要再生的部分。
让我们使用 0.75 的去噪强度。按生成。我们看到生成了 4 张图像。
您可以看到新生成的图像取得了不同程度的成功。所以生成多张图片并选择最好的一张很重要。虽然不完美,但让我们选择左上角的图像,因为它向右移动。如果您看不到任何改进,您可以重新生成另一组 4 个。(确保种子设置为 -1)
所以这是我们的第一次迭代:
要在下一轮使用图像,请在右侧画布中选择图像,然后使用图像下方的发送到修复按钮将其发送到修复画布。
按下按钮后,您可能想知道为什么似乎没有任何变化。原因是所有的变化都在被黑色油漆覆盖的蒙版区域下。如果您取下面具,您将看到变化。但是因为我们想重复使用同一个掩码,所以我们不会那样做。
使用相同的蒙版和相同的参数,点击生成按钮得到另外 4 个。新的 4 个是根据上面改进的图像生成的。
右下角是明显的赢家。让我们继续前进。
固定运动鞋
当修复四肢或任何东西时,你应该从大面积开始,然后逐渐移动到更小的区域。假设我们想要更换她穿的运动鞋。
我们将遵循类似的步骤:选择右下方的图像并使用“发送到修复”按钮将其发送到左侧的修复画布。
同样,在修复画布上,您会发现没有任何变化。
您需要使用右上角的撤消按钮才能完全移除遮罩。重新粉刷面具,但只覆盖运动鞋。
使用相同的设置(去噪强度 0.75,原始内容)并在生成大约 16 张图像后,我选择了以下图像
修复面部
她的脸有点乱。这是inpainting非常适合修复的东西。将新图像发送到修复并在她的脸上创建一个面具。
现在我们需要使用新的设置:
去噪强度:0.2。我们需要较低的价值,因为面子不是太差。我们已经把眼睛、鼻子和嘴巴放在了正确的位置。所以我们想要非常小的改变。
修复区域:仅被遮盖。此选项将修复区域缩放到更大的区域,执行修复,然后将其缩小。由于我们正在绘制具有大量细节的小区域,因此此选项有助于提高质量。
按 Generate 生成 4 张带有新面孔的新图像。下面是我挑的。
固定肩膀
最后,她的肩膀看起来有点不自然。让我们也修复它。
使用 0.5 的去噪强度并仅将修复区域保持为蒙版,我们得到以下图像。
最后,用类似的方法固定她的手。
比较与总结
让我们比较之前和之后。
前
后
您可以使用修复来继续修复不够完美的小细节。但我希望这是一个很好的例子来演示如何单独使用修复来修复肢体。
综上所述,该技术的基本思想是
- 重复使用相同的提示和否定提示。
- 保持 Masked Content 为原始内容,并调整去噪强度以控制我们想要进行多少更改。(0 表示没有更改。1 表示根本不基于原始内容进行更改)。这样您就不需要在实现类似控件的同时弄乱其他屏蔽的内容设置。
- 画大面积时选择inpaint whole picture,画小面积时选择masked area。
- 首先从四肢等大缺陷开始,然后逐渐转移到较小的区域。
示例 2:修复和油漆
让我们来看看这个更具挑战性的例子,在下图中移除两个额外的肢体并重新添加一个。在实践中,您不应该尝试像这样修复图像,因为生成开始时缺陷较少的新图像会容易得多。但这是展示这种技术的好图片,所以这就是我选择的。
您可以在此处下载此图片。
截肢两条腿
首先,我使用 Photoshop 在两个额外的肢体上绘画,同时匹配石壁架的颜色。它不需要完美匹配,足够接近就可以了,因为我们将使用修复来修复它。
如果你有 Apple Pencil 和 iPad 这样的绘图设备,这一步会更容易,但完全可以用鼠标完成。如果您无法访问 Photoshop,则可以使用 Gimp(本地运行)或 Photopea(在线)。他们是免费的。在任何绘图软件中,您都可以使用颜色滴管工具选择附近石材表面的颜色,并在多余的腿上涂上相同的颜色。
如果以上选项对您不起作用,您可以尝试使用 AUTOMATIC1111 中的 Inpaint 草图工具。但我发现它有问题,并试图不使用它。
下面是我在油漆结束后的形象。
现在让我们用它来修复。使用与示例 1 类似的以下设置。但是由于我们已经绘制了石壁并希望稳定扩散使用我们绘制的颜色,因此我们应该将去噪强度设置为 0.2 – 0.5 的低值并使用原始内容。
模型:v1.5修复模型(sd-v1-5-inpainting.ckpt)
提示:(同例1)
否定提示:(同例1)
蒙版内容:原创
补漆区域:全图
采样步长:25
去噪强度:0.5
我生成了 4 张图片。
和以前一样,第一个结果不需要是完美的。它只需要变得更好,因为我们将如此反复地迭代修复。我选了右上角的。不完美,但至少石材表面大部分固定了。
加回一条腿
现在,回到 Photoshop 并添加缺失的腿。给短裤、多余的裤腿上漆,并刷掉其他一些小瑕疵。同样,使用颜色滴管工具来匹配颜色。下面是我在 Photoshop 中绘画后得到的。
将图片上传回修复画布。降噪强度降低到 0.2,我得到了这 4 张图像。
让我们选择左下方的图像继续。使用 0.5 的去噪强度进行另一轮生成。我们得到了下图,它接近我们想要的。
固定手、运动鞋和脸
是时候修理她的手了。在她的手周围制作一个面具。
仅修复蒙版区域并将去噪强度设置为 0.75,恢复了手部。
其余的是多个区域的小修复,一次一个:运动鞋、衬衫和脸部。我保持参数与上一步相同,但根据需要调整去噪强度。
下面是所有修复后的最终图像。
比较与总结
让我们把之前和之后的照片放在一起看看我们完成了什么。
前
后
在第二个示例中,我们使用外部照片编辑工具在某些区域上绘制以指导修复生成。这使您可以在一定程度上控制各代的颜色和组成。
希望我已经弄清楚了如何在这两个示例中使用修复来修复肢体。如您所见,如果您有耐心,您真的可以解决任何问题。
延伸阅读
如果您不熟悉这项技术,请阅读修复工作流程的基础知识。您不仅可以修复缺陷,还可以创建新对象。
Inpainting实际上是image-to-image的一个特例。您可以在此处阅读有关它在模型级别如何工作的更多信息。