SDXL-Lightning

ByteDance
Texto a imagen

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