模型概述
模型特點
模型能力
使用案例
🚀 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”對應的圖像。
- 面部和人物的生成可能不夠理想。
- 模型的自動編碼部分存在信息損失。
偏差
雖然圖像生成模型的能力令人印象深刻,但它們也可能強化或加劇社會偏差。
📄 許可證

