Skip to content

分片扩散

Kahsolt edited this page Mar 30, 2024 · 1 revision

分片扩散

TiledDiffusion

  • 从图中可以看到如何将图像分割成块。
    • 在每个步骤中,潜在空间中的每个小块都将被发送到 Stable Diffusion UNet。
    • 小块一遍遍地分割和融合,直到完成所有步骤。
  • 块要多大才合适?
    • 较大的块大小将提升处理速度,因为小块数量会较少。
    • 然而,最佳大小取决于您的模型。SD1.4仅适用于绘制512 * 512图像(SD2.1是768 * 768)。由于大多数模型无法生成大于1280 * 1280的好图片。因此,在潜在空间中将其除以8后,你将得到64-160。
    • 因此,您应该选择64-160之间的值。
    • 个人建议选择96或128以获得更快的速度。
  • 重叠要多大才合适?
    • 重叠减少了融合中的接缝。显然,较大的重叠值意味着更少接缝,但会显著降低速度,因为需要重新绘制更多的小块。
    • 与 MultiDiffusion 相比,Mixture of Diffusers 需要较少的重叠,因为它使用高斯平滑(因此可以更快)。
    • 个人建议使用 MultiDiffusion 时选择32或48,使用 Mixture of Diffusers 选择16或32
  • 放大算法(Upscaler) 选项将在图生图(img2img)模式中可用,你可选用一个合适的前置放大器。

文生图:生成超大图像

ℹ 请在页面顶部使用简单的正面提示语,因为它们将应用于每个区域。 ℹ 如果要将对象添加到特定位置,请使用区域提示控制并启用绘制完整的画布背景

示例 1:masterpiece, best quality, highres, city skyline, night.

panorama

示例 2:与 ControlNet 配合转绘清明上河图

  • 22020 x 1080 超宽图像转绘
    • Masterpiece, best quality, highres, ultra-detailed 8k unity wallpaper, bird's-eye view, trees, ancient architectures, stones, farms, crowd, pedestrians
    • 原图:单击查看原图
    • ancient city origin
    • 转绘:单击查看原图
    • ancient city origin

示例 3: 2560 * 1280 大型图像绘制

  • ControlNet (canny edge)

你的名字 你的名字


图生图:细节放大

利用 Tiled Diffusion 来放大或重绘图像

示例:从1024 * 800 放大到 4096 * 3200 ,使用默认参数

  • 参数:

    • 降噪 = 0.4,步数 = 20,采样器 = Euler a,放大器 = RealESRGAN++,负面提示语=EasyNegative,
    • 模型:Gf-style2 (4GB 版本), 提示词相关性(CFG Scale) = 14, Clip 跳过层(Clip Skip) = 2
    • 方法(Method) = MultiDiffusion, 分块批处理规模(tile batch size) = 8, 分块高度(tile size height) = 96, 分块宽度(tile size width) = 96, 分块重叠(overlap) = 32
    • 全局提示语 = masterpiece, best quality, highres, extremely detailed 8k wallpaper, very clear, 全局负面提示语 = EasyNegative.
  • 放大前 lowres

  • 4倍放大后:无精选,在 NVIDIA Tesla V100 上使用1分12秒生成完毕(如果只放大2倍,10秒即可生成完毕) highres


提高分辨率的特别提示

  • 提高分辨率的推荐参数
    • 采样器(Sampler) = Euler a,步数(steps) = 20,去噪强度(denoise) = 0.35,方法(method) = Mixture of Diffusers,潜变量块高和宽(Latent tile height & width) = 128,重叠(overlap) = 16,分块批处理规模(tile batch size)= 8(如果 CUDA 内存不足,请减小块批量大小)。
  • 支持蒙版局部重绘(mask inpaint)
    • 如果你想保留某些部分,或者 Tiled Diffusion 给出的结果很奇怪,只需对这些区域进行蒙版。
  • 所用的模型很重要
    • MultiDiffusion 与 highres.fix 的工作方式非常相似,因此结果非常取决于你所用的模型。
    • 一个能够绘制细节的模型可以为你的图像添加惊人的细节。
    • 使用完整的模型而不是剪枝版(pruned)模型可以产生更好的结果。
  • 不要在主提示语中包含任何具体对象,否则结果会很糟糕。
    • 只需使用像“highres, masterpiece, best quality, ultra-detailed 8k wallpaper, extremely clear”之类的词语。
    • 如果你喜欢,可以使用区域提示语控制来控制具体对象。
  • 不需要使用太大的块大小、过多的重叠和过多的降噪步骤,否则速度会非常慢
  • 提示词相关性(CFG scale)可以显著影响细节
    • 较大的提示词相关性(例如 14)可以提供更多的细节。
  • 你可以通过0.1 - 0.6 的降噪强度来控制你想要多大程度地改变原始图像.
  • 如果你的结果仍然不如我的满意,可以在这里查看我们的讨论。