MultiDiffusion
MultiDiffusion: Fusing Diffusion Paths for Controlled Image Generation 由 Omer Bar-Tal、Lior Yariv、Yaron Lipman 和 Tali Dekel 撰写。
论文的摘要如下:
最近在基于扩散模型的文本到图像生成方面的进展在图像质量方面展示了变革性的能力。然而,用户对生成图像的控制能力以及快速适应新任务仍然是一个开放的挑战,目前主要通过昂贵且耗时的重新训练和微调或对特定图像生成任务的临时适应来解决。在这项工作中,我们提出了 MultiDiffusion,这是一个统一的框架,能够在不进行任何进一步训练或微调的情况下,使用预训练的文本到图像扩散模型实现多功能且可控的图像生成。我们的方法的核心是一个新的生成过程,基于一个优化任务,该任务将多个扩散生成过程与一组共享的参数或约束绑定在一起。我们展示了 MultiDiffusion 可以轻松应用于生成高质量且多样化的图像,这些图像遵循用户提供的控制,例如所需的宽高比(例如,全景图)和空间引导信号,范围从紧密的分割掩码到边界框。
你可以在 项目页面、原始代码库 上找到有关 MultiDiffusion 的更多信息,并在 演示 中尝试它。
提示
在调用 [StableDiffusionPanoramaPipeline
] 时,可以指定 view_batch_size
参数大于 1。对于一些高性能的 GPU,这可以加速生成过程并增加 VRAM 使用量。
要生成类似全景的图像,请确保相应地传递宽度参数。我们推荐宽度值为 2048,这是默认值。
循环填充应用于确保在处理全景图时没有拼接伪影,以确保从最右部分到最左部分的平滑过渡。通过启用循环填充(设置 circular_padding=True
),操作会在图像的最右点之后应用额外的裁剪,使模型能够“看到”从最右部分到最左部分的过渡。这有助于在 360 度意义上保持视觉一致性,并创建一个可以使用 360 度全景查看器查看的适当“全景图”。在 Stable Diffusion 中解码潜在变量时,循环填充应用于确保解码的潜在变量在 RGB 空间中匹配。
例如,在没有循环填充的情况下,存在拼接伪影(默认):
但在启用循环填充的情况下,右侧和左侧部分匹配(circular_padding=True
):
StableDiffusionPanoramaPipeline
[[autodoc]] StableDiffusionPanoramaPipeline - call - all
StableDiffusionPipelineOutput
[[autodoc]] pipelines.stable_diffusion.StableDiffusionPipelineOutput