SPO-SDXL_4k-p_10ep
Optimización de Preferencia Consciente del Paso: Alineación de la Preferencia con el Rendimiento de Desenfoque en Cada Paso. Últimamente, la Optimización de Preferencia Directa (DPO) ha extendido su éxito desde la alineación de grandes modelos de lenguaje (LLMs) hasta la alineación de modelos de difusión texto-imagen con las preferencias humanas. A diferencia de la mayoría de los métodos DPO existentes que asumen que todos los pasos de difusión comparten un orden de preferencia consistente con las imágenes finales generadas, argumentamos que esta suposición descuida el rendimiento de desenfoque específico del paso y que las etiquetas de preferencia deben adaptarse a la contribución de cada paso. Para abordar esta limitación, proponemos la Optimización de Preferencia Consciente del Paso (SPO), un enfoque novedoso de post-entrenamiento que evalúa y ajusta de manera independiente el rendimiento de desenfoque en cada paso, utilizando un modelo de preferencia consciente del paso y un re-muestreador paso a paso para asegurar una supervisión precisa consciente del paso. Nuestros experimentos con Stable Diffusion v1.5 y SDXL demuestran que SPO supera significativamente al último Diffusion-DPO en la alineación de imágenes generadas con solicitudes complejas y detalladas y mejora la estética, mientras también logra más de 20 veces más eficiencia en el entrenamiento. Código y modelo disponibles en: https://rockeycoss.github.io/spo.github.io/
Como usar
from diffusers import StableDiffusionXLPipeline, UNet2DConditionModel
import torch
# cargar pipeline
inference_dtype = torch.float16
pipe = StableDiffusionXLPipeline.from_pretrained(
"SPO-Diffusion-Models/SPO-SDXL_4k-p_10ep",
torch_dtype=inference_dtype,
)
vae = AutoencoderKL.from_pretrained(
'madebyollin/sdxl-vae-fp16-fix',
torch_dtype=inference_dtype,
)
pipe.vae = vae
pipe.to('cuda')
generator=torch.Generator(device='cuda').manual_seed(42)
image = pipe(
prompt='un niño y un pingüino sentados frente a la luna',
guidance_scale=5.0,
generator=generator,
output_type='pil',
).images[0]
image.save('moon.png')
Funcionalidades
- Optimización de Preferencia Consciente del Paso (SPO)
- Evaluación y ajuste independientes del rendimiento de desenfoque en cada paso
- Re-muestreador paso a paso para asegurarse de que la comparación de imágenes ganadoras y perdedoras sea independiente del paso
- Capaz de aplicarse tanto a imágenes ruidosas como limpias
- Mejora en la alineación de imágenes generadas con solicitudes complejas y detalladas
- Mayor eficiencia en el entrenamiento (más de 20x)
Casos de uso
- Alineación de modelos de difusión texto-imagen con preferencias humanas
- Generación de imágenes con solicitudes complejas y detalladas
- Mejora de la estética de las imágenes generadas