模型简介
模型特点
模型能力
使用案例
🚀 SD-XL 1.0-base 模型卡片
SD-XL 1.0-base 是一款基于扩散模型的文本到图像生成模型,可根据文本提示生成和修改图像。它采用了集成专家的潜在扩散管道,能生成高质量的图像,在艺术创作、教育工具等研究领域有广泛应用。
🚀 快速开始
安装依赖
在使用模型之前,需要安装必要的依赖库。确保将 diffusers
升级到 >= 0.19.0
,并安装 transformers
、safetensors
、accelerate
以及 invisible_watermark
:
pip install diffusers --upgrade
pip install invisible_watermark transformers accelerate safetensors
使用基础模型
以下是仅使用基础模型生成图像的示例代码:
from diffusers import DiffusionPipeline
import torch
pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16, use_safetensors=True, variant="fp16")
pipe.to("cuda")
# if using torch < 2.0
# pipe.enable_xformers_memory_efficient_attention()
prompt = "An astronaut riding a green horse"
images = pipe(prompt=prompt).images[0]
使用基础模型 + 精炼器管道
若要使用基础模型和精炼器组成的集成专家管道,可以运行以下代码:
from diffusers import DiffusionPipeline
import torch
# load both base & refiner
base = DiffusionPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16, variant="fp16", use_safetensors=True
)
base.to("cuda")
refiner = DiffusionPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-refiner-1.0",
text_encoder_2=base.text_encoder_2,
vae=base.vae,
torch_dtype=torch.float16,
use_safetensors=True,
variant="fp16",
)
refiner.to("cuda")
# Define how many steps and what % of steps to be run on each experts (80/20) here
n_steps = 40
high_noise_frac = 0.8
prompt = "A majestic lion jumping from a big stone at night"
# run both experts
image = base(
prompt=prompt,
num_inference_steps=n_steps,
denoising_end=high_noise_frac,
output_type="latent",
).images
image = refiner(
prompt=prompt,
num_inference_steps=n_steps,
denoising_start=high_noise_frac,
image=image,
).images[0]
提高推理速度(torch >= 2.0)
当使用 torch >= 2.0
时,可以通过 torch.compile
提高推理速度,在运行管道之前用 torch.compile
包装 unet
:
pipe.unet = torch.compile(pipe.unet, mode="reduce-overhead", fullgraph=True)
GPU 显存受限处理
如果受 GPU 显存限制,可以调用 pipe.enable_model_cpu_offload
启用 CPU 卸载,而不是使用 .to("cuda")
:
- pipe.to("cuda")
+ pipe.enable_model_cpu_offload()
更多关于使用 diffusers
运行 Stable Diffusion XL 的信息,请参考 Stable Diffusion XL 文档。
✨ 主要特性
- 集成专家管道:采用集成专家的潜在扩散管道,先由基础模型生成(有噪声的)潜在变量,再由精炼模型进行最终去噪处理。
- 多种使用方式:基础模型可单独使用,也可与精炼模型结合使用,还能采用两阶段管道生成高分辨率图像。
- 多框架支持:支持
diffusers
和Optimum
框架,Optimum
还兼容 OpenVINO 和 ONNX Runtime。
📦 安装指南
安装 Optimum(OpenVINO 支持)
若要使用 OpenVINO 运行模型,需安装带有 OpenVINO 依赖的 Optimum
:
pip install optimum[openvino]
安装 Optimum(ONNX Runtime 支持)
若要使用 ONNX Runtime 运行模型,需安装带有 ONNX Runtime 推理依赖的 Optimum
:
pip install optimum[onnxruntime]
💻 使用示例
基础用法
上述“快速开始”部分的代码示例展示了如何使用基础模型和基础模型 + 精炼器管道生成图像。
高级用法
OpenVINO 推理
以下是使用 OpenVINO 运行推理的示例代码:
- from diffusers import StableDiffusionXLPipeline
+ from optimum.intel import OVStableDiffusionXLPipeline
model_id = "stabilityai/stable-diffusion-xl-base-1.0"
- pipeline = StableDiffusionXLPipeline.from_pretrained(model_id)
+ pipeline = OVStableDiffusionXLPipeline.from_pretrained(model_id)
prompt = "A majestic lion jumping from a big stone at night"
image = pipeline(prompt).images[0]
更多示例(如静态重塑和模型编译)可在 Optimum 文档 中找到。
ONNX 推理
以下是使用 ONNX Runtime 运行推理的示例代码:
- from diffusers import StableDiffusionXLPipeline
+ from optimum.onnxruntime import ORTStableDiffusionXLPipeline
model_id = "stabilityai/stable-diffusion-xl-base-1.0"
- pipeline = StableDiffusionXLPipeline.from_pretrained(model_id)
+ pipeline = ORTStableDiffusionXLPipeline.from_pretrained(model_id)
prompt = "A majestic lion jumping from a big stone at night"
image = pipeline(prompt).images[0]
更多示例可在 Optimum 文档 中找到。
📚 详细文档
模型介绍
SDXL 由用于潜在扩散的 集成专家 管道组成: 第一步,使用基础模型生成(有噪声的)潜在变量,然后使用专门用于最终去噪步骤的精炼模型(可在 https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/ 找到)对其进行进一步处理。请注意,基础模型可以作为独立模块使用。
或者,我们可以使用如下的两阶段管道: 首先,使用基础模型生成所需输出大小的潜在变量。第二步,使用专门的高分辨率模型,并对第一步生成的潜在变量应用一种称为 SDEdit(https://arxiv.org/abs/2108.01073,也称为 “img2img”)的技术,使用相同的提示。这种技术比第一种稍慢,因为它需要更多的函数评估。
源代码可在 https://github.com/Stability-AI/generative-models 找到。
模型详情
属性 | 详情 |
---|---|
开发者 | Stability AI |
模型类型 | 基于扩散的文本到图像生成模型 |
许可证 | CreativeML Open RAIL++-M 许可证 |
模型描述 | 这是一个可根据文本提示生成和修改图像的模型。它是一个 潜在扩散模型,使用两个固定的预训练文本编码器(OpenCLIP-ViT/G 和 CLIP-ViT/L)。 |
更多信息资源 | 查看我们的 GitHub 仓库 和 arXiv 上的 SDXL 报告。 |
模型来源
出于研究目的,我们推荐使用 generative-models
GitHub 仓库(https://github.com/Stability-AI/generative-models),它实现了最流行的扩散框架(包括训练和推理),并且随着时间推移会添加新功能,如蒸馏。
Clipdrop 提供免费的 SDXL 推理。
属性 | 详情 |
---|---|
仓库 | https://github.com/Stability-AI/generative-models |
演示 | https://clipdrop.co/stable-diffusion |
评估
上图评估了用户对 SDXL(有/无精炼)相对于 SDXL 0.9 以及 Stable Diffusion 1.5 和 2.1 的偏好。SDXL 基础模型的性能明显优于之前的版本,与精炼模块结合使用时,整体性能最佳。
使用范围
直接使用
该模型仅用于研究目的。可能的研究领域和任务包括:
- 艺术品生成,以及在设计和其他艺术过程中的应用。
- 教育或创意工具中的应用。
- 生成模型的研究。
- 对有可能生成有害内容的模型进行安全部署。
- 探索和理解生成模型的局限性和偏差。
排除的使用情况如下所述。
超出范围的使用
该模型并非用于生成真实或准确反映人物或事件的内容,因此使用该模型生成此类内容超出了其能力范围。
局限性和偏差
局限性
- 模型无法实现完美的照片级真实感。
- 模型无法渲染清晰可读的文本。
- 模型在处理涉及组合性的更复杂任务时存在困难,例如渲染与 “A red cube on top of a blue sphere” 对应的图像。
- 面部和人物的生成可能不太理想。
- 模型的自动编码部分存在信息损失。
偏差
虽然图像生成模型的能力令人印象深刻,但它们也可能强化或加剧社会偏差。
📄 许可证
本模型采用 CreativeML Open RAIL++-M 许可证。

