🚀 SD-XL 1.0 精炼器模型卡片
SD-XL 1.0 精炼器模型是基于文本提示生成和修改图像的强大工具,通过独特的潜在扩散管道,能生成高质量的图像,在图像生成领域具有重要的研究价值。
🚀 快速开始
安装依赖
确保将 diffusers
升级到 >= 0.18.0
:
pip install diffusers --upgrade
此外,还需安装 transformers
、safetensors
、accelerate
以及 invisible_watermark
:
pip install invisible_watermark transformers accelerate safetensors
使用精炼器改进图像
import torch
from diffusers import StableDiffusionXLImg2ImgPipeline
from diffusers.utils import load_image
pipe = StableDiffusionXLImg2ImgPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-refiner-1.0", torch_dtype=torch.float16, variant="fp16", use_safetensors=True
)
pipe = pipe.to("cuda")
url = "https://huggingface.co/datasets/patrickvonplaten/images/resolve/main/aa_xl/000000009.png"
init_image = load_image(url).convert("RGB")
prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt, image=init_image).images
提升推理速度
当使用 torch >= 2.0
时,可通过 torch.compile
提升 20 - 30% 的推理速度。在运行管道前,用 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()
更多高级用例,请查看 文档。
✨ 主要特性
- 集成专家管道:SDXL 采用 集成专家 管道进行潜在扩散。先由基础模型生成(有噪声的)潜在变量,再由精炼模型进行最终去噪处理。基础模型也可单独使用。
- 两阶段管道可选:可先使用基础模型生成所需输出大小的潜在变量,再使用专门的高分辨率模型和 SDEdit 技术(https://arxiv.org/abs/2108.01073,即“img2img”)对潜在变量进行处理。
📦 安装指南
升级 diffusers
pip install diffusers --upgrade
安装其他依赖
pip install invisible_watermark transformers accelerate safetensors
💻 使用示例
基础用法
import torch
from diffusers import StableDiffusionXLImg2ImgPipeline
from diffusers.utils import load_image
pipe = StableDiffusionXLImg2ImgPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-refiner-1.0", torch_dtype=torch.float16, variant="fp16", use_safetensors=True
)
pipe = pipe.to("cuda")
url = "https://huggingface.co/datasets/patrickvonplaten/images/resolve/main/aa_xl/000000009.png"
init_image = load_image(url).convert("RGB")
prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt, image=init_image).images
高级用法
当使用 torch >= 2.0
时,可通过 torch.compile
提升推理速度:
import torch
from diffusers import StableDiffusionXLImg2ImgPipeline
from diffusers.utils import load_image
pipe = StableDiffusionXLImg2ImgPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-refiner-1.0", torch_dtype=torch.float16, variant="fp16", use_safetensors=True
)
pipe.unet = torch.compile(pipe.unet, mode="reduce-overhead", fullgraph=True)
pipe = pipe.to("cuda")
url = "https://huggingface.co/datasets/patrickvonplaten/images/resolve/main/aa_xl/000000009.png"
init_image = load_image(url).convert("RGB")
prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt, image=init_image).images
📚 详细文档
模型

SDXL 由用于潜在扩散的 集成专家 管道组成:
第一步,使用基础模型(可在 https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0 获取)生成(有噪声的)潜在变量,然后使用专门的精炼模型对其进行最终去噪处理。需注意,基础模型可单独使用。
另外,也可使用两阶段管道:
首先,使用基础模型生成所需输出大小的潜在变量。第二步,使用专门的高分辨率模型,并对第一步生成的潜在变量应用 SDEdit 技术(https://arxiv.org/abs/2108.01073,也称为“img2img”),使用相同的提示。此技术比第一种稍慢,因为需要更多的函数评估。
源代码可在 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 基础模型的性能明显优于之前的版本,结合精炼模块的模型整体性能最佳。
用途
直接使用
该模型仅用于研究目的。可能的研究领域和任务包括:
- 艺术品生成,以及在设计和其他艺术过程中的应用。
- 教育或创意工具中的应用。
- 生成模型的研究。
- 具有生成有害内容潜力的模型的安全部署。
- 探究和理解生成模型的局限性和偏差。
超出范围的使用
该模型并非用于生成真实或准确反映人物或事件的内容,因此使用该模型生成此类内容超出了其能力范围。
局限性和偏差
局限性
- 模型无法实现完美的照片级真实感。
- 模型无法渲染清晰可读的文本。
- 模型在处理涉及组合性的复杂任务时存在困难,例如渲染与“红色立方体放在蓝色球体上”对应的图像。
- 面部和人物的生成可能不够理想。
- 模型的自动编码部分存在信息损失。
偏差
虽然图像生成模型的能力令人印象深刻,但它们也可能强化或加剧社会偏差。
📄 许可证
该模型使用 CreativeML Open RAIL++ - M 许可证。