SDXL-Lightning
SDXL-Lightning es un modelo de generación de texto a imagen extremadamente rápido. Puede generar imágenes de alta calidad de 1024px en pocos pasos. Para más información, por favor consulte nuestro documento de investigación: SDXL-Lightning: Destilación por Difusión Progresiva Adversarial. Nosotros hacemos open-source de nuestro modelo como parte de la investigación. Nuestros modelos son destilados desde stabilityai/stable-diffusion-xl-base-1.0. Este repositorio contiene puntos de control para modelos destilados de 1 paso, 2 pasos, 4 pasos y 8 pasos. La calidad de generación de nuestros modelos de 2 pasos, 4 pasos y 8 pasos es asombrosa. Nuestro modelo de 1 paso es más experimental. Proporcionamos tanto puntos de control completos de UNet como de LoRA. Los modelos completos de UNet tienen la mejor calidad, mientras que los modelos de LoRA pueden aplicarse a otros modelos base.
Como usar
Uso de Diffusers
import torch
from diffusers import StableDiffusionXLPipeline, UNet2DConditionModel, EulerDiscreteScheduler
from huggingface_hub import hf_hub_download
from safetensors.torch import load_file
base = "stabilityai/stable-diffusion-xl-base-1.0"
repo = "ByteDance/SDXL-Lightning"
ckpt = "sdxl_lightning_4step_unet.safetensors" # Use el ckpt correcto para su configuración de paso!
# Cargar modelo.
unet = UNet2DConditionModel.from_config(base, subfolder="unet").to("cuda", torch.float16)
unet.load_state_dict(load_file(hf_hub_download(repo, ckpt), device="cuda"))
pipe = StableDiffusionXLPipeline.from_pretrained(base, unet=unet, torch_dtype=torch.float16, variant="fp16").to("cuda")
# Asegurarse de que el muestreador use los "timestep" finales.
pipe.scheduler = EulerDiscreteScheduler.from_config(pipe.scheduler.config, timestep_spacing="trailing")
# Asegurarse de usar los mismos pasos de inferencia que el modelo cargado y configurar CFG en 0.
pipe("Una niña sonriendo", num_inference_steps=4, guidance_scale=0).images[0].save("output.png")
Uso de LoRA
import torch
from diffusers import StableDiffusionXLPipeline, EulerDiscreteScheduler
from huggingface_hub import hf_hub_download
base = "stabilityai/stable-diffusion-xl-base-1.0"
repo = "ByteDance/SDXL-Lightning"
ckpt = "sdxl_lightning_4step_lora.safetensors" # Use el ckpt correcto para su configuración de paso!
# Cargar modelo.
pipe = StableDiffusionXLPipeline.from_pretrained(base, torch_dtype=torch.float16, variant="fp16").to("cuda")
pipe.load_lora_weights(hf_hub_download(repo, ckpt))
pipe.fuse_lora()
# Asegurarse de que el muestreador use los "timestep" finales.
pipe.scheduler = EulerDiscreteScheduler.from_config(pipe.scheduler.config, timestep_spacing="trailing")
# Asegurarse de usar los mismos pasos de inferencia que el modelo cargado y configurar CFG en 0.
pipe("Una niña sonriendo", num_inference_steps=4, guidance_scale=0).images[0].save("output.png")
Funcionalidades
- Generación rápida de texto a imagen
- Calidad de imagen de alta resolución (1024px)
- Modelos destilados desde stabilityai/stable-diffusion-xl-base-1.0
- Puntos de control para 1 paso, 2 pasos, 4 pasos y 8 pasos
- Disponibilidad de puntos de control completos de UNet y LoRA
Casos de uso
- Generación de imágenes artísticas de alta calidad
- Creación de gráficos detallados para diseño
- Prototipado rápido de ideas visuales
- Ilustraciones y diseños para medios de comunicación