3种在Stable Diffusion中放大图像的方法 (ControlNet tile upscale, SD upscale, AI upscale)

您想使用Stable Diffusion创建包含大量细节的大图像吗?您将需要使用放大器。在这篇文章中,您将学习 3 种放大图像的方法。

  • AI upscalers 放大器
  • SD upscale
  • ControlNet tile upscale

您将看到比较并了解这些方法的优缺点。

如果您不熟悉该主题,您可能想学习放大器的基础知识。

软件

我们将使用 AUTOMATIC1111  Stable Diffusion GUI 来执行放大。您可以在Windows、  Mac或 Google Colab上使用此 GUI  。

对于最后一种方法,我们需要Ultimate SD UpscaleControlNet扩展。

Colab用户

如果您使用网站提供的Colab Notebook,您只需在启动笔记本之前选中ControlNetUltimate SD Upscale扩展即可。

Windows 或 Mac 用户

安装 Ultimate SD upscale扩展

Ultimate SD upscale是一个扩展,提供与内置SD Upscale脚本类似的功能,但具有一些高级选项。

要在 AUTOMATIC1111 中安装 Ultimate SD upscale:

  1. 导航到扩展页面。

2. 选择从 URL 安装选项卡。

3. 将以下 URL 放入扩展存储库字段的 URL 中。

https://github.com/Coyote-A/ultimate-upscale-for-automatic1111

4. 单击“安装”按钮。

5. 等待表示扩展已成功安装的确认消息。

6. 重新启动 AUTOMATIC1111。

如果安装成功,您应该会在img2img页面底部的脚本下拉菜单中看到Ultimate SD upscale

安装 ControlNet 扩展

ControlNet是一个扩展,可让您对图像生成进行额外控制。请参阅ControlNet 教程以了解更多信息。

要在 AUTOMATIC1111 中安装 Controlnet:

  1. 导航到扩展页面。

2. 选择从 URL 安装选项卡。

3. 将以下 URL 放入扩展存储库字段的 URL 中。

https://github.com/Mikubill/sd-webui-controlnet

4. 单击“安装”按钮。

5. 等待表示扩展已安装的确认消息。

6. 重新启动 AUTOMATIC1111。

7. 访问ControlNet 模型页面。

8. 下载所有模型文件(文件名以 结尾.pth)。如果您不想下载全部,您可以只下载tile模型(以_tile结尾的)。

9. 将模型文件放入 ControlNet 扩展的模型目录中。

stable-diffusion-webui\extensions\sd-webui-controlnet\models

10. 重新启动 AUTOMATIC1111。

您应该在 txt2img 页面上看到 ControlNet 部分。tile模型应该可以在“模型”下拉菜单中进行选择。如果没有看到菜单,请按菜单旁边的刷新按钮。

输入图像

我们将使用Stable Diffusion生成的以下图像。

模型:Lyriel v1.5

提示词和反向提示词:

《最后一支舞》:在一个大舞厅里,我们不幸的恋人共舞一曲。当他们跳华尔兹时,时间似乎变慢了,迷失在彼此的眼神中。他们不知道的是,这将是命运介入之前他们在一起的最后时刻。

“The Last Dance”: In a grand ballroom, our star-crossed lovers share a dance. Time seems to slow as they waltz, lost in each other’s eyes. Unbeknownst to them, this will be their final moment together before fate intervenes.

 

毁容的,变形的

disfigured, deformed

原始尺寸非常小(768×512 像素)。让我们将其放大 4 倍,达到 3,072×2,048 像素。我们将使用三种放大方法进行测试。

  1. AI upscaler
  2. SD upscale
  3. ControlNet tile upscale

方法一:AI upscaler放大器

AI Upscaler是一种经过训练的 AI 模型,可以放大照片并填充细节,使图像保持清晰。这是在 AUTOMATIC1111 中放大图像的基本方法。

  1. 在 AUTOMATIC1111 中,导航至“Extras”页面。

2. 将图像上传到图像画布。

3. 将调整大小设置为 4。(将图像放大 4 倍。)

4. 在Upscaler 1中选择一个Upscaler 。我使用了Universal Upscaler v2,但你可以使用任何一个。(请参阅此处下载和安装新升级程序的说明)

5. 单击“生成”

过了一会儿,您将在右侧的输出窗口中看到放大的图像。

让我们看看效果如何。我们先来看看这件衣服。

AI 放大 (Universal Upscaler v2)
原始(放大)

 

它忠实地填充了衣服的细节,做得很好。

但女人的脸需要一些超出这个放大产品所能做到的增强。

AI 放大 (Universal Upscaler v2)
原始(放大)

 

当然,你可以开启人脸修复,它使用另一个AI模型来修复人脸。但由于模型没有接受这种特定风格的训练,因此可能会引入伪影并使面部看起来不自然。

方法 2:SD upscale

有没有什么办法可以不使用面部修复术来修复面部呢?

首先,这张脸有点像原始图像中的脸。这就是为什么我们在放大时得到了我们所得到的。

但是,如果您同意进行更多更改,因为原始图像无论如何都是计算机生成的,该怎么办?您可以执行另一轮图像到图像以重新生成细节。

这正是 SD upscale脚本的作用。

这种方法的好处是

  • 可以使用相同的模型和提示词生成新的放大细节。
  • 消除 AI upscaler 放大器引入的伪影。

您可以使用AUTOMATIC1111中img2img页面上的SD Upscale脚本轻松地同时执行AI放大和SD img2img。该脚本亿分割成小块的方式执行Stable Diffusion img2img,因此它适用于低 VRAM GPU 卡。

逐步指南

请按照以下步骤执行 SD upscale。

  1. img2img页面,将图片上传到Image Canvas。

2. 输入原提示词和反向提示词。如果没有原来的提示词,您可以使用“非常详细highly detailed”。

替代方案 1:如果您刚刚在txt2img页面上生成图像,请单击“发送到 img2img”按钮。图像和提示词将自动填充。

替代方案 2:如果您的本地存储中保存了生成的图像,则可以将其上传到PNG Info页面。您应该看到生成此图像的所有信息,包括提示词和模型。单击发送到 img2img。图像和提示词将自动填充。

3. 在Stable Diffusion checkpoint下拉菜单中,选择您最初生成此图像时使用的模型

3. 将图像宽度高度设置为 512。这是用于 SD upscale的平铺尺寸。

4. 将降噪强度denoising strength)设置为0.3。较高的值将导致更多的细节和恢复,但不应将其设置高于 0.4。否则,您将看到伪影。

5. 找到img2img页面按钮附近的脚本script下拉菜单。选择SD upscale

6. 将比例因子Scale Factor)设置为 4 以放大 4 倍。

7. 选择放大器。我选择了与先前方法中使用的相同的放大器。但如果没有,您可以选择 ESRGAN 或 R-ESRGAN。

8. 单击“生成”

结果

这就是我得到的。

得益于Stable Diffusion img2img,硬木地板有很多细节。

现在我们来对比一下脸型。

SD Upscale
AI upscale
原图放大

 

不错的改进!SD upscale修复脸部而不引入伪影。

我们来检查一下这件衣服,好吗?

sd upscale
ai upscale
原图缩放

 

他们也有更多的细节。

您可以尝试使用以下参数。

  • 采样步数Sampling steps:设置更高,例如 50 – 100,可以得到更多细节。
  • 采样方法Sampling method。细节可能有所不同,特别是对于祖先ancestral采样器
  • 去噪强度Denosing strength。控制要添加多少细节。此方法的可行范围在 0.1 到 0.4 之间。
  • 种子Seed:更改细节。

细节水平由去噪强度参数控制。正如我之前所说,如果将其设置高于 0.4,此方法就会失效,因为Stable Diffusion会对图像产生太大影响。您将开始看到伪影。

有没有办法在不牺牲原有构图的情况下提高去噪强度?嗯……这听起来与从参考图像复制构图的扩展功能非常相似……

这是正确的。解决方案是使用ControlNet

方法 3:ControlNet tile upscale

ControlNet tile是用于重新生成图像细节的 ControlNet 模型。如果本地图片细节与提示词不符,将忽略提示词并填写本地细节。这种行为使其非常适合在图块中进行放大,因此它可以在低 VRAM 设置下使用。

您需要安装Ultimate SD UpscaleControlNet扩展才能使用此方法。如果您还没有这样做,请按照软件部分中的说明进行操作。

我不知道为什么此方法不适用于内置 SD Upscale 脚本。应该如此,但事实并非如此。

逐步指南

 

  1. 导航到AUTOMATIC1111 中的img2img页面。

2. 将图像上传到img2img 画布

3. 输入原提示词和反向提示词。如果没有原来的提示词,您可以使用“非常详细(highly detailed)”。

替代方案 1:如果您刚刚在 txt2img 页面上生成了图像,则可以单击“发送到 img2img”按钮。图像和提示词将自动填充在img2img页面上。

替代方案 2:如果您的本地图像中保存了生成的图像,请将其上传到PNG Info页面。您应该看到生成此图像的所有信息,包括提示词和模型。单击发送到 img2img。图像和提示词将自动填充。在img2img页面上。

4. 将采样步Sampling steps设置为 50。

5. 将去噪强度Denoising strength 设置为 0.5。

以下步骤适用于ControlNet部分。

6. 将相同的原始图像上传到 ControlNet 的图像画布

7. 选择启用以启用 ControlNet 扩展。

8.在预处理器Preprocessor)下拉菜单中选择tile_resample

9.在模型下拉菜单中选择control_v…_sd15_tile

以下步骤适用于Ultimate SD Upscale扩展。

10. 在页面底部附近的脚本下拉菜单中,选择Ultimate SD Upscale

11. 在目标尺寸类型下拉菜单中,选择根据图像尺寸缩放

12. 将比例设置为 4。

13. 选择放大器。我使用了Universal Upscaler v2。但您可以选择 ESRGAN 或 R-ESRGAN 作为放大升级器。

14. 确认图块宽度为 512,高度为 0。这将在放大过程中使用 512×512 图块。

15. 单击“生成”

结果

这是放大后的图像。

我们放大比较一下。

这是面孔。

ControlNet tile upscale.
SD Upscale.
AI Upscale.
原图缩放

 

惊人的!ControlNet tile upscale 的质量简直可以改变生活。脸部和头发的渲染非常清晰,细节丰富。

现在让我们检查一下这件衣服。

ControlNet tile upscale.
SD upscale.
AI upscale.
原图缩放

 

看到添加了多少细节,我大吃一惊!

这种方法的缺点是可能添加了太多细节。它可能会改变图像,使其不再是原始图像的忠实放大。但这取决于您的目标。

参数调整

您可以尝试使用以下参数。

  • 去噪强度Denoising strength:降低它可以减少添加的细节量。根据我的经验,最高合理值是 0.5。
  • 下采样率Downsampling rate(ControlNet):控制对控制图块进行多少下采样。增加该值会使控制​​图像更加模糊。控制图像越隐藏,模型在制作细节时就越自由。
Downsample rate 1
Downsample rate 2
Downsample rate 4
Downsample rate 8

 

  • 采样步数Sampling steps:增加步数往往会改善细节和清晰度。
  • 采样方式Sampling method:与SD Upscale一样,采样器可以在最终的细节中发挥作用。
  • 种子Seed:更改种子以更改细节。
  • 接缝修复Seam fix(Ultimate SD Upscale):如果您觉得可以看到 512×512 块,请启用。此选项沿着图块的边界运行额外一轮的放大。

建议

如果您看到多余物体等伪影,请尝试降低降噪强度或提高下采样率

您应该使用哪一个?

在三个放大选项中——AI upscale、SD upscale和 ControlNet tile upscale,您应该使用哪一个?

在提出建议之前,我认为 SD upscale 和 ControlNet tile upscale 的用例是相似的。ControlNet tile upscale更优越。您不会希望使用 SD upscale 而不是 ControlNet tile upscale。

因此,它归结为 2 个选择:(1) AI upscale,(2) ControlNet tile upscale

由于您通常会在 ControlNet tile操作之前使用 AI upscale来放大图像,因此本质上,这取决于是否使用 ControlNet tile调节执行额外的图像到图像。

如果您使用真实照片或保真度对您很重要,您可能需要放弃 ControlNet tile并仅使用 AI upscale。有多种 AI 放大器可用于不同类型的图像。

事实上,即使这些人工智能放大器也会弥补细节,因此请明智地使用它们。

如果您愿意或者更喜欢添加细节,ControlNet tile upscale是您的最佳选择。这适用于使用Stable Diffusion或其他 AI 图像生成器生成的图像。

《3种在Stable Diffusion中放大图像的方法 (ControlNet tile upscale, SD upscale, AI upscale)》有3条评论

发表评论