🚀 stable-diffusion-xl-base-1.0-GGUF
stable-diffusion-xl-base-1.0-GGUF 是一个基于文本生成图像的模型,它基于 Stable Diffusion 架构,能够根据文本提示生成高质量的图像。本项目对其进行了 GGUF 量化处理,并支持在特定环境下使用。
🚀 快速开始
环境要求
本模型仅由 gpustack/llama-box v0.0.75+ 提供实验性支持。
安装依赖
确保升级 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")
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
时,可通过 torch.compile
提高推理速度 20 - 30%。在运行管道之前,简单地用 torch.compile
包装 unet
:
pipe.unet = torch.compile(pipe.unet, mode="reduce-overhead", fullgraph=True)
显存优化
如果受限于 GPU 显存,可调用 pipe.enable_model_cpu_offload
启用 CPU 卸载,而不是使用 .to("cuda")
:
- pipe.to("cuda")
+ pipe.enable_model_cpu_offload()
✨ 主要特性
- 模型架构:SDXL 由用于潜在扩散的 专家集成 管道组成。第一步,使用基础模型生成(有噪声的)潜在变量,然后使用专门用于最终去噪步骤的细化模型(可在此处获取:https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/)对其进行进一步处理。基础模型也可作为独立模块使用。
- 量化支持:提供多种量化配置,如 FP16、Q8_0、Q4_1 和 Q4_0。
| 量化方式 | OpenAI CLIP ViT-L/14 量化 | OpenCLIP ViT-G/14 量化 | VAE 量化 |
| ---- | ---- | ---- | ---- |
| FP16 | FP16 | FP16 | FP16 |
| Q8_0 | FP16 | FP16 | FP16 |
| Q4_1 | FP16 | FP16 | FP16 |
| Q4_0 | FP16 | FP16 | FP16 |
📦 安装指南
安装 Optimum 以支持 OpenVINO
pip install optimum[openvino]
安装 Optimum 以支持 ONNX Runtime
pip install optimum[onnxruntime]
📚 详细文档
模型信息
模型描述
模型来源
- 研究用途:推荐使用我们的
generative-models
Github 仓库(https://github.com/Stability-AI/generative-models),它实现了最流行的扩散框架(包括训练和推理),并且会随着时间添加新功能,如蒸馏。
- 免费推理:Clipdrop 提供免费的 SDXL 推理。
评估
上图评估了用户对 SDXL(有和没有细化)相对于 SDXL 0.9 以及 Stable Diffusion 1.5 和 2.1 的偏好。SDXL 基础模型的表现明显优于之前的版本,与细化模块结合的模型整体性能最佳。
使用场景
直接使用
本模型仅用于研究目的。可能的研究领域和任务包括:
- 艺术品生成,以及在设计和其他艺术过程中的应用。
- 教育或创意工具中的应用。
- 生成模型的研究。
- 安全部署有可能生成有害内容的模型。
- 探索和理解生成模型的局限性和偏差。
超出范围的使用
该模型并非用于真实准确地表示人物或事件,因此使用该模型生成此类内容超出了其能力范围。
局限性和偏差
局限性
- 模型无法实现完美的照片级真实感。
- 模型无法渲染清晰可读的文本。
- 模型在处理涉及组合性的更复杂任务时存在困难,例如渲染与 “A red cube on top of a blue sphere” 对应的图像。
- 面部和人物的生成可能不准确。
- 模型的自动编码部分存在信息损失。
偏差
虽然图像生成模型的能力令人印象深刻,但它们也可能强化或加剧社会偏差。
📄 许可证
本模型使用的许可证为 OpenRAIL++。具体许可证内容请参考 CreativeML Open RAIL++-M License。