msochan/stable-diffusion-xl-base-1.0
Duplicado en Hugging Face del modelo Stable Diffusion XL Base 1.0 de Stability AI. Es un modelo generativo de texto a imagen basado en difusión latente que puede crear y modificar imágenes a partir de prompts de texto. SDXL usa dos codificadores de texto preentrenados fijos, OpenCLIP-ViT/G y CLIP-ViT/L, y puede funcionar como modelo base independiente o como primera etapa dentro de un flujo base + refiner para mejorar el denoising final y la calidad de alta resolución.
Como usar
Instalación y uso básico con Diffusers:
pip install -U diffusers transformers accelerate
import torch
from diffusers import DiffusionPipeline
# switch to "mps" for apple devices
pipe = DiffusionPipeline.from_pretrained(
"msochan/stable-diffusion-xl-base-1.0",
dtype=torch.bfloat16,
device_map="cuda"
)
prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"
image = pipe(prompt).images[0]
Uso del modelo base SDXL con Diffusers:
pip install diffusers --upgrade
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")
# if using torch < 2.0
# pipe.enable_xformers_memory_efficient_attention()
prompt = "An astronaut riding a green horse"
images = pipe(prompt=prompt).images[0]
Uso del flujo base + refiner como ensemble of experts:
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]
Optimización con torch.compile en PyTorch 2.0 o superior:
pipe.unet = torch.compile(pipe.unet, mode="reduce-overhead", fullgraph=True)
Si la VRAM de la GPU es limitada, se puede activar offloading a CPU en lugar de mover todo el pipeline a CUDA:
- pipe.to("cuda")
+ pipe.enable_model_cpu_offload()
Uso con Optimum y OpenVINO:
pip install optimum[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 = "A majestic lion jumping from a big stone at night"
image = pipeline(prompt).images[0]
Uso con Optimum y ONNX Runtime:
pip install optimum[onnxruntime]
- 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]
Funcionalidades
- Generación de imágenes a partir de texto con la arquitectura Stable Diffusion XL.
- Modelo base SDXL utilizable de forma independiente o combinado con el refiner SDXL 1.0.
- Pipeline de difusión latente con enfoque de ensemble of experts para separar generación inicial y refinamiento final.
- Compatible con Diffusers, Safetensors, ONNX y flujos de Optimum para OpenVINO u ONNX Runtime.
- Soporta generación de latentes para una segunda etapa de refinado con SDEdit/img2img usando el mismo prompt.
- Licencia CreativeML Open RAIL++-M / openrail++.
- Mejor preferencia de usuarios frente a Stable Diffusion 1.5, 2.1 y SDXL 0.9 según la evaluación descrita en la ficha.
Casos de uso
- Investigación sobre modelos generativos de texto a imagen y difusión latente.
- Generación de obras visuales, diseño conceptual y procesos artísticos asistidos por IA.
- Herramientas educativas o creativas que necesitan producir imágenes desde prompts.
- Evaluación de despliegues seguros para modelos capaces de generar contenido dañino.
- Estudio de sesgos, limitaciones y fallos composicionales en modelos generativos visuales.
- Generación base de latentes para pipelines de alta resolución con un refiner especializado.