模型简介
模型特点
模型能力
使用案例
🚀 SD-XL 1.0-base模型卡片
SD-XL 1.0-base是一款基于扩散模型的文本到图像生成模型,能够根据文本提示生成和修改图像。它采用了专家集成的潜在扩散管道,可独立使用基础模型,也可结合细化模型或高分辨率模型进行图像生成。
🚀 快速开始
安装依赖
确保将diffusers
升级到 >= 0.19.0:
pip install diffusers --upgrade
此外,还需安装transformers
、safetensors
、accelerate
以及invisible_watermark
:
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")
# 如果使用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
# 加载基础模型和细化模型
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")
# 定义步数和高噪声比例
n_steps = 40
high_noise_frac = 0.8
prompt = "A majestic lion jumping from a big stone at night"
# 运行基础模型
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)
pipe.unet = torch.compile(pipe.unet, mode="reduce-overhead", fullgraph=True)
GPU显存受限处理
- pipe.to("cuda")
+ pipe.enable_model_cpu_offload()
更多关于使用diffusers
运行Stable Diffusion XL的信息,请参考Stable Diffusion XL文档。
✨ 主要特性
- 专家集成管道:采用专家集成的潜在扩散管道,先由基础模型生成(有噪声的)潜在变量,再由细化模型进行最终去噪处理。
- 多种使用方式:基础模型可独立使用,也可结合细化模型或高分辨率模型进行图像生成。
- 支持多种框架:支持
diffusers
和Optimum
框架,可结合OpenVINO和ONNX Runtime进行推理。
📦 安装指南
安装Optimum(OpenVINO)
pip install optimum[openvino]
安装Optimum(ONNX Runtime)
pip install optimum[onnxruntime]
💻 使用示例
使用Optimum(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)
- 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仓库和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”对应的图像。
- 面部和人物的生成可能不够理想。
- 模型的自动编码部分存在信息损失。
偏差
虽然图像生成模型的能力令人印象深刻,但它们也可能强化或加剧社会偏差。
📄 许可证

