Skip to content

Stable Diffusion XL

Stable Diffusion XL (SDXL) 由 Dustin Podell、Zion English、Kyle Lacey、Andreas Blattmann、Tim Dockhorn、Jonas Müller、Joe Penna 和 Robin Rombach 在论文 SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis 中提出。

论文的摘要如下:

我们提出了 SDXL,一种用于文本到图像合成的潜在扩散模型。与之前的 Stable Diffusion 版本相比,SDXL 利用了一个三倍大的 UNet 主干:模型参数的增加主要是由于更多的注意力块和更大的交叉注意力上下文,因为 SDXL 使用了第二个文本编码器。我们设计了多种新颖的条件方案,并在多个宽高比上训练 SDXL。我们还引入了一个细化模型,该模型使用事后图像到图像技术来提高 SDXL 生成样本的视觉保真度。我们证明,与之前的 Stable Diffusion 版本相比,SDXL 的性能显著提高,并取得了与黑盒最先进图像生成器相竞争的结果。

提示

  • 使用 SDXL 与 DPM++ 调度器进行少于 50 步的生成时,已知会产生 视觉伪影,因为求解器变得数值不稳定。要解决此问题,请查看此 PR,其中建议对于 ODE/SDE 求解器:
    • 设置 use_karras_sigmas=Truelu_lambdas=True 以提高图像质量
    • 如果你使用的是具有均匀步长的求解器(DPM++2M 或 DPM++2M SDE),请设置 euler_at_final=True
  • 大多数 SDXL 检查点在 1024x1024 的图像尺寸下效果最佳。768x768 和 512x512 的图像尺寸也受支持,但结果不如 1024x1024 的好。低于 512x512 的图像尺寸不推荐使用,对于默认检查点(如 stabilityai/stable-diffusion-xl-base-1.0)可能不会有效。
  • SDXL 可以为它所训练的每个文本编码器传递不同的提示。我们甚至可以将同一提示的不同部分传递给文本编码器。
  • 通过在图像到图像的设置中使用细化模型,可以提高 SDXL 输出图像的质量。
  • SDXL 提供了 negative_original_sizenegative_crops_coords_top_leftnegative_target_size,用于对图像分辨率和裁剪参数进行负条件处理。

StableDiffusionXLPipeline

[[autodoc]] StableDiffusionXLPipeline - all - call

StableDiffusionXLImg2ImgPipeline

[[autodoc]] StableDiffusionXLImg2ImgPipeline - all - call

StableDiffusionXLInpaintPipeline

[[autodoc]] StableDiffusionXLInpaintPipeline - all - call