🚀 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。