stable diffusion xl base 1.0

提供商stabilityai
分类text-to-image
许可证openrail++
下载量32.5K
星标35

简介

SDXL 1.0 是目前开源图像生成领域的事实标准,相比早期的 v1.5 版本,它在画质、构图以及对复杂提示词的理解力上有质的飞跃。它最大的特点是原生支持 1024x1024 分辨率,解决了以往模型在生成大图时经常出现的“肢体重复”或“画面崩坏”问题。对于中国开发者而言,SDXL 的生态极其丰富,通过加载各种社区微调的 LoRA 模型,可以轻松实现极高精准度的国风、二次元或写实人像效果。虽然对显存要求有所提高,但其强大的出图能力使其成为搭建商业 AI 绘画工作流的首选底模。

核心亮点

  • 原生支持 1024px 高清出图,画面细节丰富
  • 提示词理解力大幅提升,构图更加自然
  • 生态极其强大,支持海量 LoRA 风格微调
  • 开源权重,适合本地部署与企业级定制

使用方法

安装依赖
# 安装 Hugging Face transformers
pip install transformers torch
SDK 使用
# 使用 transformers 加载模型
from transformers import AutoModel, AutoTokenizer

model = AutoModel.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0")
tokenizer = AutoTokenizer.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0")

Hugging Face 下载

我们推荐使用命令行或者 Hugging Face Hub SDK 来进行模型的下载。

操作指引:在下载前,请先通过如下命令安装 huggingface_hub:

操作指引
pip install -U huggingface_hub

命令行下载

下载完整模型库

下载完整模型库
huggingface-cli download stabilityai/stable-diffusion-xl-base-1.0

下载单个文件到指定本地文件夹(以下载 config.json 到当前路径下 ./dir 目录为例)

下载单个文件到指定本地文件夹(以下载 config.json 到当前路径下 ./dir 目录为例)
huggingface-cli download stabilityai/stable-diffusion-xl-base-1.0 config.json --local-dir ./dir

更多命令行下载选项,可参见官方文档

SDK 下载

SDK 下载
# 模型下载
from huggingface_hub import snapshot_download
model_dir = snapshot_download('stabilityai/stable-diffusion-xl-base-1.0')

Git 下载

请确保 lfs 已经被正确安装

Git 下载
git lfs install
git clone https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0

如果您希望跳过 lfs 大文件下载,可以使用如下命令

跳过 LFS
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0

模型文件托管在 Hugging Face Hub,使用 HF CLI / SDK / Git 直接下载,不经过本站。

PyTorch / Transformers 使用

安装 Transformers

安装 Transformers
pip install -U transformers torch

模型加载和推理

模型加载和推理
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained('stabilityai/stable-diffusion-xl-base-1.0')
tokenizer = AutoTokenizer.from_pretrained('stabilityai/stable-diffusion-xl-base-1.0')

模型下载

我们推荐使用命令行或者 ModelScope SDK 来进行模型的下载。

操作指引:在下载前,请先通过如下命令安装 ModelScope:

操作指引
pip install modelscope

命令行下载

下载完整模型库

下载完整模型库
modelscope download --model stabilityai/stable-diffusion-xl-base-1.0

下载单个文件到指定本地文件夹(以下载 README.md 到当前路径下 dir 目录为例)

下载单个文件到指定本地文件夹(以下载 README.md 到当前路径下 dir 目录为例)
modelscope download --model stabilityai/stable-diffusion-xl-base-1.0 README.md --local_dir ./dir

更多更丰富的命令行下载选项,可参见具体文档

SDK 下载

SDK 下载
# 模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('stabilityai/stable-diffusion-xl-base-1.0')

Git 下载

请确保 lfs 已经被正确安装

Git 下载
git lfs install
git clone https://www.modelscope.cn/stabilityai/stable-diffusion-xl-base-1.0.git

如果您希望跳过 lfs 大文件下载,可以使用如下命令

跳过 LFS
GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/stabilityai/stable-diffusion-xl-base-1.0.git

ModelScope 模型页直接下载模型文件;无需将模型文件放在本站服务器。

Notebook 快速开发

下载并安装 ModelScope library

下载并安装 ModelScope library
pip install "modelscope[audio,cv,nlp,multi-modal,science]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html

模型加载和推理

模型加载和推理
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks

p = pipeline('text-generation', 'stabilityai/stable-diffusion-xl-base-1.0')

完整文档

来源: HuggingFace

---
license: openrail++
tags:

  • text-to-image

  • stable-diffusion

---

SD-XL 1.0-base Model Card


!row01

Model

!pipeline

SDXL consists of an ensemble of experts pipeline for latent diffusion:
In a first step, the base model is used to generate (noisy) latents,
which are then further processed with a refinement model (available here: https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/) specialized for the final denoising steps.
Note that the base model can be used as a standalone module.

Alternatively, we can use a two-stage pipeline as follows:
First, the base model is used to generate latents of the desired output size.
In the second step, we use a specialized high-resolution model and apply a technique called SDEdit (https://arxiv.org/abs/2108.01073, also known as "img2img")
to the latents generated in the first step, using the same prompt. This technique is slightly slower than the first one, as it requires more function evaluations.

Source code is available at https://github.com/Stability-AI/generative-models .

Model Description

  • Developed by: Stability AI
  • Model type: Diffusion-based text-to-image generative model

Model Sources

For research purposes, we recommend our generative-models Github repository (https://github.com/Stability-AI/generative-models), which implements the most popular diffusion frameworks (both training and inference) and for which new functionalities like distillation will be added over time.
Clipdrop provides free SDXL inference.

  • Repository: https://github.com/Stability-AI/generative-models
  • Demo: https://clipdrop.co/stable-diffusion

Evaluation

!comparison The chart above evaluates user preference for SDXL (with and without refinement) over SDXL 0.9 and Stable Diffusion 1.5 and 2.1. The SDXL base model performs significantly better than the previous variants, and the model combined with the refinement module achieves the best overall performance.

🧨 Diffusers

Make sure to upgrade diffusers to >= 0.19.0:

code
pip install diffusers --upgrade

In addition make sure to install transformers, safetensors, accelerate as well as the invisible watermark:

code
pip install invisible_watermark transformers accelerate safetensors

To just use the base model, you can run:

py
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")

if using torch < 2.0

pipe.enable_xformers_memory_efficient_attention()

prompt = "An astronaut riding a green horse"

images = pipe(prompt=prompt).images[0]

To use the whole base + refiner pipeline as an ensemble of experts you can run:

py
from diffusers import DiffusionPipeline
import torch

load both base & refiner

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")

Define how many steps and what % of steps to be run on each experts (80/20) here

n_steps = 40 high_noise_frac = 0.8

prompt = "A majestic lion jumping from a big stone at night"

run both experts

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]

When using torch >= 2.0, you can improve the inference speed by 20-30% with torch.compile. Simple wrap the unet with torch compile before running the pipeline:

py
pipe.unet = torch.compile(pipe.unet, mode="reduce-overhead", fullgraph=True)

If you are limited by GPU VRAM, you can enable *cpu offloading* by calling pipe.enable_model_cpu_offload
instead of .to("cuda"):

diff
- pipe.to("cuda")
+ pipe.enable_model_cpu_offload()

For more information on how to use Stable Diffusion XL with diffusers, please have a look at the Stable Diffusion XL Docs.

Optimum

Optimum provides a Stable Diffusion pipeline compatible with both OpenVINO and ONNX Runtime.

#### OpenVINO

To install Optimum with the dependencies required for OpenVINO :

bash
pip install optimum[openvino]

To load an OpenVINO model and run inference with OpenVINO Runtime, you need to replace StableDiffusionXLPipeline with Optimum OVStableDiffusionXLPipeline. In case you want to load a PyTorch model and convert it to the OpenVINO format on-the-fly, you can set export=True.

diff
- 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]

You can find more examples (such as static reshaping and model compilation) in optimum documentation.

#### ONNX

To install Optimum with the dependencies required for ONNX Runtime inference :

bash
pip install optimum[onnxruntime]

To load an ONNX model and run inference with ONNX Runtime, you need to replace StableDiffusionXLPipeline with Optimum ORTStableDiffusionXLPipeline. In case you want to load a PyTorch model and convert it to the ONNX format on-the-fly, you can set export=True.

diff
- 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]

You can find more examples in optimum documentation.

Uses

Direct Use

The model is intended for research purposes only. Possible research areas and tasks include

  • Generation of artworks and use in design and other artistic processes.
  • Applications in educational or creative tools.
  • Research on generative models.
  • Safe deployment of models which have the potential to generate harmful content.
  • Probing and understanding the limitations and biases of generative models.

Excluded uses are described below.

Out-of-Scope Use

The model was not trained to be factual or true represent