需要的软件
在本指南中,我们将使用 AUTOMATIC1111,这是一种流行且功能齐全的稳定扩散 GUI。我们将使用快速入门指南中的一键启动 Colab Notebook。请参阅使用说明。您还可以在 Windows 和 Mac 上安装此 GUI。
启动笔记本电脑时,请确保选择本教程中将使用的 F222 型号。
分步指南
第一步是准备好你的形象。我将使用这张由 Stable Diffusion 生成的图像。在本教程中,我们将使用下图作为起点。我们将使用 outpainting 将图像居中并将其变为横向大小。
涂漆的起始图像。
您可以使用下面的按钮下载此图像以按照教程进行操作。
将图像上传到 AUTOMATIC1111
如果图像是由 AUTOMATIC1111 GUI 生成的,则提示和其他生成参数将写入 PNG 文件的元数据中。
在 AUTOMATIC1111 GUI 中,转到 PNG 信息选项卡。将图像从本地存储拖放到画布区域。生成参数应显示在右侧。
按发送到 img2img 发送此图像和参数进行涂色。图像和提示应该出现在 img2img 选项卡的 img2img 子选项卡中。
使用 PNG 信息选项卡提取生成参数。
如果您的起始图像不是由 AUTOMATIC1111 GUI 创建的,只需转到 img2img 选项卡。将图像上传到 img2img 画布。您将需要编写提示以准确描述图像和风格。(您可能会通过点击“Interrogate CLIP”自动生成提示。但我认为这不是很好。)
调整涂装参数
首先,您需要选择合适的模型进行涂装。为了风格的一致性,您应该使用与生成图像相同的模型。例如,我使用的是 F222 模型,所以我将使用相同的模型进行涂装。
如果您使用了基础模型 v1.4 和 v1.5,或者您使用的是照片,您也可以使用 v1 修复模型。它应该给出更好的结果。虽然我不用它也没问题。
如果您使用 PNG 信息,图像大小应该自动正确设置。对于自定义图像,您应该将较短的一侧设置为模型的原始分辨率,例如 v1 模型为 512 像素。长边应相应调整以保持纵横比。
将调整大小模式设置为裁剪和调整大小,这样纵横比就不会改变。
将 seed 设置为 -1 以每次获得不同的结果。
去噪强度将是您玩得开心的结点……现在让我们将其设置为 0.6。
其余的您可以使用标准的文本到图像设置。为了完整起见,这是我使用的
- 采样方式:DPM++ 2M Karras
- 采样步数:30
- 批量大小:4
这是我的设置部分:
启用涂装脚本
向下滚动,您应该会看到一个脚本下拉框。涂装有两种选择:(1) 涂装 mk2 和 (2) 穷人的涂装。Outpainting mk2 效果不是很好。选择 Poor man’s outpainting。
您可以让 Pixels 以 128 像素扩展。为屏蔽的内容选择填充。它将使用图像的平均颜色在涂色之前填充扩展区域。
最好一次超过一个方向。我为这张图片选择了正确的涂色方向。
我正在重用原始提示。
按生成,您就可以开始工作了!根据需要重新生成尽可能多的时间,直到看到您喜欢的图像。
增加去噪强度以改变更多。降低去噪强度以减少变化。就这么简单。
居中图像
这就是得到的。她不再在照片的右边,而是在正中央。扩展的像素在视觉上与图像的其余部分一致。我很满意!
Outpainting 用于扩展右侧。
对一侧感到满意后,您可以点击结果画布下的发送到 img2img 以重复该过程。
转换为横向尺寸
让我们多次扩展左侧和右侧,使纵向大小的图像变为横向。这可以完全改变图像的感知。现在它不是主体的特写。广阔的反乌托邦城市背景形成了鲜明的对比,讲述了一个很好的故事。
通过修复修复细节
您不必太在意扩展部分的小细节,因为您可以随时通过修复重新生成任何区域。下面我将向您展示如何重新生成整个右侧。
首先,按发送到修复将新生成的图像发送到修复选项卡。确保选择 Inpaint 选项卡。使用画笔工具在要重新生成的区域上创建一个蒙版。
我使用的设置是
- 遮罩模式:修复遮罩
- 修复区域:仅蒙版
- 仅屏蔽填充,像素:36-72(根据需要调整)
- 脚本:无(不要忘记关闭修复脚本!)
- 去噪强度:0.6-0.9。您将要查看结果并进行调整。增加改变更多。
- 批量大小:2-4。一次生成多个图像以进行比较。
- 种子:-1(随机)
- 屏蔽内容:原始或填充。(Fill会使用mask下的平均颜色作为初始值)
下面是我的修复设置的截图。有关更详细的说明,请参阅修复指南。
修复设置。
经过几轮修复后,这是我最终的横向尺寸图像。
超越复杂的场景
上述稳定扩散方法适用于简单的背景。它将与复杂的场景作斗争。原因是 outpainting 方法只考虑了与 outpainted 区域相邻的一小部分图像。要扩展复杂的场景,需要考虑远程信息。
它不是 Stable Diffusion(抱歉,Stable Diffusion 纯粹主义者!),但有一种出色的修复/修复方法可用,称为 MAT(Mask-Aware Transformer)。它是一种 GAN 模型,旨在在构成图像的各个部分时考虑远程信息。
Stable Diffusion outpainting失败示例
为了说明远程信息建模的重要性,让我们绘制以下复杂的街道场景。
用上面的方法把右手边展开,我们得到这张图:
扩展部分本身看起来不错,但与整个图像的其余部分不一致。
垫子涂装
MAT outpainting 不仅速度更快,而且效果更好。请参见下图,由 MAT 扩展。它并不完美,但要好得多。
转到稳定扩散垫涂漆以使用 MAT。GUI 只允许您生成方形图像。您可以生成更大的方形图像并将其裁剪为横向尺寸。Scale 是涂漆前应用于上传图像的缩放比例。我在上图中将比例设置为 1,并将输出大小设置为 768,以便将 512×768 的图像涂成 768×768,从而扩展左右两侧。
MAT 在我们的示例中也运行良好。下面是横向涂漆的图像。
其他涂装选项
如果您出于某种原因不想使用 AUTOMATIC1111,本节适合您。
稳定扩散无限
Stable Diffusion Infinity 是一个很好的图形涂色用户界面。Huggingface 演示可免费使用。如果没有其他人使用,它可以运行得非常快。您还可以启动一个 colab notebook 来运行您自己的实例。
该界面让您一次涂掉一个瓷砖。您需要为每个图块编写提示。每个图块都应与现有图像有少量重叠。
Github 页面中有一个演示视频,向您展示如何使用它。