如何使用outpainting扩展图像

需要的软件

在本指南中,我们将使用 AUTOMATIC1111,这是一种流行且功能齐全的稳定扩散 GUI。我们将使用快速入门指南中的一键启动 Colab Notebook。请参阅使用说明。您还可以在 Windows 和 Mac 上安装此 GUI。

启动笔记本电脑时,请确保选择本教程中将使用的 F222 型号。

如何使用outpainting扩展图像

分步指南

第一步是准备好你的形象。我将使用这张由 Stable Diffusion 生成的图像。在本教程中,我们将使用下图作为起点。我们将使用 outpainting 将图像居中并将其变为横向大小。

如何使用outpainting扩展图像

涂漆的起始图像。

您可以使用下面的按钮下载此图像以按照教程进行操作。

下载

将图像上传到 AUTOMATIC1111

如果图像是由 AUTOMATIC1111 GUI 生成的,则提示和其他生成参数将写入 PNG 文件的元数据中。

在 AUTOMATIC1111 GUI 中,转到 PNG 信息选项卡。将图像从本地存储拖放到画布区域。生成参数应显示在右侧。

按发送到 img2img 发送此图像和参数进行涂色。图像和提示应该出现在 img2img 选项卡的 img2img 子选项卡中。

如何使用outpainting扩展图像

使用 PNG 信息选项卡提取生成参数。

如果您的起始图像不是由 AUTOMATIC1111 GUI 创建的,只需转到 img2img 选项卡。将图像上传到 img2img 画布。您将需要编写提示以准确描述图像和风格。(您可能会通过点击“Interrogate CLIP”自动生成提示。但我认为这不是很好。)

调整涂装参数

如何使用outpainting扩展图像

首先,您需要选择合适的模型进行涂装。为了风格的一致性,您应该使用与生成图像相同的模型。例如,我使用的是 F222 模型,所以我将使用相同的模型进行涂装。

如果您使用了基础模型 v1.4 和 v1.5,或者您使用的是照片,您也可以使用 v1 修复模型。它应该给出更好的结果。虽然我不用它也没问题。

如果您使用 PNG 信息,图像大小应该自动正确设置。对于自定义图像,您应该将较短的一侧设置为模型的原始分辨率,例如 v1 模型为 512 像素。长边应相应调整以保持纵横比。

将调整大小模式设置为裁剪和调整大小,这样纵横比就不会改变。

将 seed 设置为 -1 以每次获得不同的结果。

去噪强度将是您玩得开心的结点……现在让我们将其设置为 0.6。

其余的您可以使用标准的文本到图像设置。为了完整起见,这是我使用的

  • 采样方式:DPM++ 2M Karras
  • 采样步数:30
  • 批量大小:4

这是我的设置部分:

如何使用outpainting扩展图像

启用涂装脚本

向下滚动,您应该会看到一个脚本下拉框。涂装有两种选择:(1) 涂装 mk2 和 (2) 穷人的涂装。Outpainting mk2 效果不是很好。选择 Poor man’s outpainting。

如何使用outpainting扩展图像

您可以让 Pixels 以 128 像素扩展。为屏蔽的内容选择填充。它将使用图像的平均颜色在涂色之前填充扩展区域。

最好一次超过一个方向。我为这张图片选择了正确的涂色方向。

我正在重用原始提示。

按生成,您就可以开始工作了!根据需要重新生成尽可能多的时间,直到看到您喜欢的图像。

增加去噪强度以改变更多。降低去噪强度以减少变化。就这么简单。

居中图像

这就是得到的。她不再在照片的右边,而是在正中央。扩展的像素在视觉上与图像的其余部分一致。我很满意!

如何使用outpainting扩展图像

Outpainting 用于扩展右侧。

对一侧感到满意后,您可以点击结果画布下的发送到 img2img 以重复该过程。

转换为横向尺寸

让我们多次扩展左侧和右侧,使纵向大小的图像变为横向。这可以完全改变图像的感知。现在它不是主体的特写。广阔的反乌托邦城市背景形成了鲜明的对比,讲述了一个很好的故事。

如何使用outpainting扩展图像

通过修复修复细节

您不必太在意扩展部分的小细节,因为您可以随时通过修复重新生成任何区域。下面我将向您展示如何重新生成整个右侧。

首先,按发送到修复将新生成的图像发送到修复选项卡。确保选择 Inpaint 选项卡。使用画笔工具在要重新生成的区域上创建一个蒙版。

如何使用outpainting扩展图像

我使用的设置是

  • 遮罩模式:修复遮罩
  • 修复区域:仅蒙版
  • 仅屏蔽填充,像素:36-72(根据需要调整)
  • 脚本:无(不要忘记关闭修复脚本!)
  • 去噪强度:0.6-0.9。您将要查看结果并进行调整。增加改变更多。
  • 批量大小:2-4。一次生成多个图像以进行比较。
  • 种子:-1(随机)
  • 屏蔽内容:原始或填充。(Fill会使用mask下的平均颜色作为初始值)

下面是我的修复设置的截图。有关更详细的说明,请参阅修复指南。

如何使用outpainting扩展图像

修复设置。

经过几轮修复后,这是我最终的横向尺寸图像。

如何使用outpainting扩展图像

超越复杂的场景

上述稳定扩散方法适用于简单的背景。它将与复杂的场景作斗争。原因是 outpainting 方法只考虑了与 outpainted 区域相邻的一小部分图像。要扩展复杂的场景,需要考虑远程信息。

它不是 Stable Diffusion(抱歉,Stable Diffusion 纯粹主义者!),但有一种出色的修复/修复方法可用,称为 MAT(Mask-Aware Transformer)。它是一种 GAN 模型,旨在在构成图像的各个部分时考虑远程信息。

Stable Diffusion outpainting失败示例

为了说明远程信息建模的重要性,让我们绘制以下复杂的街道场景。

如何使用outpainting扩展图像

用上面的方法把右手边展开,我们得到这张图:

如何使用outpainting扩展图像

扩展部分本身看起来不错,但与整个图像的其余部分不一致。

垫子涂装

MAT outpainting 不仅速度更快,而且效果更好。请参见下图,由 MAT 扩展。它并不完美,但要好得多。

如何使用outpainting扩展图像

转到稳定扩散垫涂漆以使用 MAT。GUI 只允许您生成方形图像。您可以生成更大的方形图像并将其裁剪为横向尺寸。Scale 是涂漆前应用于上传图像的缩放比例。我在上图中将比例设置为 1,并将输出大小设置为 768,以便将 512×768 的图像涂成 768×768,从而扩展左右两侧。

MAT 在我们的示例中也运行良好。下面是横向涂漆的图像。

如何使用outpainting扩展图像

其他涂装选项

如果您出于某种原因不想使用 AUTOMATIC1111,本节适合您。

稳定扩散无限

Stable Diffusion Infinity 是一个很好的图形涂色用户界面。Huggingface 演示可免费使用。如果没有其他人使用,它可以运行得非常快。您还可以启动一个 colab notebook 来运行您自己的实例。

该界面让您一次涂掉一个瓷砖。您需要为每个图块编写提示。每个图块都应与现有图像有少量重叠。

如何使用outpainting扩展图像

Github 页面中有一个演示视频,向您展示如何使用它。

声明:本站部分文章来源于网络,如有侵犯您的合法权益,请您即时与我们联系,我们将在第一时间处理。如需转载本站文章,请在转载时标明出处并保留原文链接,否则我们将保留追究法律责任的权利。

给TA打赏
共{{data.count}}人
人已打赏
AI教程

指导 Pix2Pix:使用文字编辑和风格化照片

2023-5-4 18:23:04

AI教程

ChatGPT:如何为 Stable Diffusion 生成提示

2023-5-4 18:23:13

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧