license: openrail++
tags:
SD-XL 1.0基础模型卡

模型架构

SDXL采用专家集成的潜在扩散流程:
第一阶段使用基础模型生成(含噪)潜在表征,
随后通过专精于最终去噪步骤的优化模型(详见:https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/)进行精加工。
需注意基础模型可独立使用。
替代方案可采用两阶段流程:
首先用基础模型生成目标尺寸的潜在表征,
接着运用专精高分辨率模型并采用SDEdit技术(https://arxiv.org/abs/2108.01073,亦称"图生图"),
基于相同提示词对首阶段生成的潜在表征进行处理。此方案因需更多函数评估而略慢于前者。
源代码库:https://github.com/Stability-AI/generative-models 。
模型描述
模型来源
研究推荐使用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基础模型显著优于前代版本,结合优化模块后达到最佳综合表现。
🧨 Diffusers 使用指南
确保升级diffusers至>=0.19.0:
pip install diffusers --upgrade
同时安装transformers
、safetensors
、accelerate
及隐形水印组件:
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")
prompt = "宇航员骑乘绿色骏马"
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 = "夜幕下雄狮跃过巨石的威严场景"
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.compile提升20-30%推理速度:
pipe.unet = torch.compile(pipe.unet, mode="reduce-overhead", fullgraph=True)
GPU显存不足时可启用CPU卸载:
- pipe.to("cuda")
+ pipe.enable_model_cpu_offload()
更多SDXL与diffusers
的用法详见Stable Diffusion XL文档。
Optimum集成
Optimum提供兼容OpenVINO和ONNX Runtime的Stable Diffusion流程。
OpenVINO配置
安装OpenVINO依赖:
pip install optimum[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 = "夜幕下雄狮跃过巨石的威严场景"
image = pipeline(prompt).images[0]
更多功能(静态重塑/模型编译)参见Optimum文档。
ONNX配置
安装ONNX依赖:
pip install optimum[onnxruntime]
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 = "夜幕下雄狮跃过巨石的威严场景"
image = pipeline(prompt).images[0]
更多案例参见Optimum文档。
使用范围
适用场景
本模型仅限于研究用途,包括但不限于:
- 艺术创作与设计应用
- 教育/创意工具开发
- 生成模型研究
- 有害内容生成的安全防护研究
- 生成模型局限性及偏见的探索
非适用场景
本模型未针对人物/事件的真实再现进行训练,因此生成此类内容超出模型能力范围。
局限性及偏差
技术限制
- 无法实现完美照片级真实感
- 无法生成可识别文字
- 对组合性任务(如"蓝色球体上的红色立方体")处理欠佳
- 人物面部生成可能失真
- 自编码部分存在信息损耗
社会偏差
尽管图像生成能力卓越,模型可能强化或放大社会偏见。