Imágenes de regularización LoRA: cuándo usarlas
Aprende cuándo las imágenes de regularización ayudan o desperdician cómputo en el entrenamiento LoRA y cómo obtenerlas.
On this page
- TL;DR
- ¿Qué son las imágenes de regularización LoRA?
- Ejemplo práctico: entrenar un LoRA de "mujer"
- Cuándo ayudan las imágenes de regularización y cuándo desperdician cómputo
- Cómo obtener o generar imágenes de regularización
- Opciones de datasets prehechos
- Convenciones de carpetas y repeticiones
- Errores comunes y correcciones
- Captioning de imágenes de regularización
- FAQ
Imágenes de regularización LoRA
Las imágenes de regularización resuelven la "deriva del lenguaje": el problema en el que un token raro como <person_name> se convierte en sinónimo de toda su clase (como "mujer"), destruyendo la capacidad del modelo para generar otros miembros de esa clase. Ver https://huggingface.co/docs/diffusers/v0.11.0/en/training/dreambooth.
La solución son las imágenes de clase: ejemplos normales de la categoría más amplia que se alimentan junto a las imágenes del token raro durante el entrenamiento. Las funciones de pérdida aplican un condicionamiento distinto — las imágenes del sujeto usan el token raro mientras que las imágenes de clase usan el prompt de clase plano — manteniendo estable el embedding de clase. Ver https://www.scottbaker.ca/AI/LoRA-Training.
LoRA es un adaptador de bajo rango que añade pequeñas matrices de peso a las capas de atención sin modificar los pesos del modelo base. Como el conocimiento del modelo base permanece intacto y la influencia de LoRA se controla mediante un multiplicador de peso, la deriva del lenguaje se reduce en comparación con el ajuste completo. Ver https://www.scottbaker.ca/AI/LoRA-Training.
TL;DR
- Usa imágenes de regularización cuando tengas 50+ imágenes de entrenamiento o estés ajustando estilos o conceptos completos (https://aituts.com/lora-training-settings/) — ver mejores prácticas de entrenamiento LoRA
- Omítelas para LoRAs de sujeto único para ahorrar cómputo y mantener precisión — ver guía básica de LoRA
- Genera con el mismo modelo usando prompts de clase (p. ej., "una foto de un hombre") sin el token raro — ver ajustes de generación
- Convención de carpetas:
9_training_folderpara repeticiones de entrenamiento,1_regularization_folderpara imágenes de clase - Advertencia clave: las salidas SDXL de regularización sin refinar hacen que las imágenes del sujeto sean demasiado nítidas y las imágenes de clase artificialmente suaves (https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/) — ver guía de regularización SDXL
¿Qué son las imágenes de regularización LoRA?
Las imágenes de regularización provienen del artículo DreamBooth (Ruiz et al., 2022) y sirven para la preservación de prior. Evitan el sobreajuste al ajustar con pocas imágenes, manteniendo intacta la comprensión del modelo sobre categorías más amplias. El script de entrenamiento DreamBooth puede generarlas automáticamente desde el modelo base usando prompts de clase (https://huggingface.co/docs/diffusers/v0.11.0/en/training/dreambooth).
La pérdida de preservación de prior se calcula de forma distinta en las imágenes del sujeto frente a las de clase. En las imágenes del sujeto, la pérdida es la pérdida de desruido estándar hacia el sujeto condicionada en el token raro. En las imágenes de clase, la pérdida es la pérdida de desruido condicionada en el prompt de clase plano (sin el token raro). Esto evita que el embedding de clase se desplace hacia el sujeto específico durante el entrenamiento. Ver https://huggingface.co/docs/diffusers/v0.11.0/en/training/dreambooth y https://arxiv.org/abs/2208.12242 .
Para LoRA específicamente, las imágenes de regularización son opcionales. Muchos entrenadores experimentados las omiten porque LoRA añade adaptadores pequeños en lugar de re cablear el modelo. No son un requisito obligatorio y solo son realmente necesarias si entrenas con un número muy grande de imágenes (https://aituts.com/lora-training-settings/ ).
Ejemplo práctico: entrenar un LoRA de "mujer"
Considera entrenar un LoRA de una mujer específica llamada "Jane" usando el token disparador <jane>. Tienes 20 imágenes de entrenamiento de Jane con captions como aa <jane> woman.
Sin imágenes de regularización: el modelo aprende <jane> → rostro de Jane. En inferencia, el prompt a photo of a woman puede producir el rostro de Jane en lugar de una mujer genérica, porque el token <jane> ha arrastrado el embedding de la clase "mujer" hacia los rasgos específicos de Jane. Esto es la deriva del lenguaje.
Con imágenes de regularización: añades 20–30 imágenes de clase de otras mujeres (de Unsplash con captions como a photo of a woman) junto a las 20 imágenes de Jane. La pérdida de preservación de prior condiciona las imágenes de clase en el prompt a photo of a woman — sin <jane>. El modelo aprende a mantener "mujer" genérico mientras sigue aprendiendo <jane> → Jane. Ver https://www.scottbaker.ca/AI/LoRA-Training.
En kohya_ss, las imágenes de entrenamiento van en 9_jane (9 repeticiones) y las imágenes de clase en 1_woman. El entrenamiento duplica el número de pasos cuando hay imágenes de regularización. Ejemplo: 423 pasos base pasan a 2115 con regularización activada. Ver https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ .
Cuándo ayudan las imágenes de regularización y cuándo desperdician cómputo
Las imágenes de regularización brillan cuando tienes datos significativos: 50+ imágenes o conceptos más amplios como estilos, personajes u objetos completos. A esta escala, el modelo necesita el efecto contrapeso para evitar que el token del sujeto absorba toda la distribución de la clase (https://aituts.com/lora-training-settings/ ).
Para LoRAs de sujeto único (3-5 imágenes), las imágenes de regularización desperdician cómputo. Añadirlas ralentiza drásticamente el entrenamiento y diluye el resultado deseado. El problema de la deriva del lenguaje prácticamente no existe aquí, haciendo la sobrecarga innecesaria. Ver https://www.scottbaker.ca/AI/LoRA-Training.
| Ajuste | Con imágenes reg | Sin imágenes reg | Fuente |
|---|---|---|---|
| Pasos de entrenamiento (423 base) | 2115 (factor 2×) | 423 | https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ |
| Manejo de pérdida en kohya_ss | is_reg ajusta loss_weights para imágenes de clase | N/A | https://github.com/kohya-ss/sd-scripts/issues/330 |
| Mínimo recomendado de imágenes | 50+ para beneficio real | 3–5 sujeto único | https://aituts.com/lora-training-settings/ |
Las imágenes de regularización malas empeoran los resultados. Cuando las imágenes reg tienen una distribución de calidad distinta a las de entrenamiento, el modelo asocia el prompt de clase con esa calidad. Las imágenes reg SDXL generadas sin refinar causaron salidas de clase suavizadas mientras las imágenes del sujeto se volvían artificialmente nítidas. Genera imágenes reg usando el mismo pipeline (incluido el refiner) que tu salida esperada (https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ ).
Cómo obtener o generar imágenes de regularización
Tres enfoques, en orden de preferencia:
- Genera con el mismo modelo base — Usa prompts de clase (p. ej., "a photo of a man") sin el token raro. Esto produce los resultados más consistentes (https://huggingface.co/docs/diffusers/v0.11.0/en/training/dreambooth).
- Fotos reales de la misma clase — Unsplash o fotos de stock con captions. Tienen más diversidad pero pueden no coincidir con la distribución interna del modelo. Guarda las descripciones alternativas como captions para consistencia en el captioning (https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ ).
- Datasets prehechos — Las imágenes de regularización SD 1.5 de ProGamerGov en HuggingFace son una opción lista para usar (https://huggingface.co/datasets/ProGamerGov/StableDiffusion-v1-5-Regularization-Images ).
Opciones de datasets prehechos
| Dataset | Modelo | Resolución |
|---|---|---|
| ProGamerGov SD v1.5 | SD 1.5 | 512×512 |
| Imágenes de clase SDXL | SDXL | 1024×1024 |
| Regularización de mujer | SDXL | 1024×1024 |
Convenciones de carpetas y repeticiones
En kohya_ss, la carpeta Regularisation es opcional y etiquetada como tal en la GUI (https://aituts.com/lora-training-settings/ ). Las imágenes de entrenamiento van en carpetas numeradas como 9_training_folder (9 repeticiones por imagen), mientras que las imágenes de clase usan 1_regularization_folder. El blog aboutme.be ilustra esto con un ejemplo concreto: carpeta 1_man para imágenes de regularización y 9_w0ut3r man para imágenes de entrenamiento. Ver https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ .
Un issue de GitHub en kohya-ss/sd-scripts confirma que is_reg solo afecta a loss_weights una vez que se cargan las imágenes reg — se manejan igual que las imágenes de entrenamiento salvo por el factor de pérdida (https://github.com/kohya-ss/sd-scripts/issues/330 ).
Configuración CLI y TOML
El script de entrenamiento de kohya_ss (https://github.com/bmaltais/kohya_ss) acepta el flag CLI --reg_data_dir para especificar el directorio de imágenes de regularización. Cuando hay imágenes de regularización presentes, kohya_ss duplica los pasos de entrenamiento (aplicando un factor de regularización de 2 a max_train_steps). Ver https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ .
Para casos donde las imágenes reg se truncan silenciosamente (kohya_ss limita las imágenes reg al número de imágenes de entrenamiento después de repeticiones), la solución es usar un archivo de configuración TOML con class_token = en lugar de depender del campo de carpeta de la GUI. Esto asegura que el token de clase se aplique de forma consistente a las imágenes de regularización. Ver https://github.com/kohya-ss/sd-scripts/issues/330 .
Errores comunes y correcciones
| Síntoma | Causa | Corrección | Fuente |
|---|---|---|---|
| Salida del sujeto demasiado nítida, imágenes de clase demasiado suaves | Desajuste de calidad entre imágenes reg y de entrenamiento | Genera imágenes reg usando el mismo pipeline (refiner, dpmpp_2s_ancestral) que la salida final | https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ |
| Imágenes de regularización truncadas silenciosamente | kohya_ss limita las imágenes reg al conteo de imágenes de entrenamiento (tras repetición) | Reduce el número de imágenes reg, pásalas como imágenes de entrenamiento o usa config TOML con class_token= | https://github.com/kohya-ss/sd-scripts/issues/330 |
| El entrenamiento tarda el doble con regularización | kohya_ss duplica los pasos de entrenamiento cuando hay imágenes reg (factor de 2 aplicado) | Reduce épocas o número de imágenes de entrenamiento; u omite la regularización | https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ |
| Salidas de clase artificialmente suaves mientras el sujeto es nítido | Imágenes reg generadas sin el refiner SDXL, creando desajuste de calidad | Genera imágenes reg usando el mismo pipeline incluido refiner y dpmpp_2s_ancestral | https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ |
| "El aspecto suave de estas imágenes de regularización se amplificó" | El modelo asocia el prompt de clase con el efecto de suavizado de imágenes reg de baja calidad | Iguala exactamente la distribución de calidad — usa el mismo modelo, refiner y sampler para las imágenes reg | https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ |
Captioning de imágenes de regularización
Un punto de ambigüedad: los captions de las imágenes de regularización deben usar el prompt de clase (p. ej., a photo of a woman) sin el token disparador del sujeto. Si se usa el caption completo de entrenamiento (p. ej., aaa 1girl <jane>), las imágenes de clase filtran el token del sujeto a la pérdida de preservación de prior, arruinando el propósito. Cuando uses fotos reales de Unsplash, guarda las descripciones alternativas como captions — son descripciones naturalmente a nivel de clase sin la palabra clave del sujeto. Ver https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ .
Para kohya_ss, la interacción entre captions y el parámetro TOML class_token es una pregunta sin resolver en la comunidad. El issue #330 de kohya_ss discute si los captions de las imágenes reg deben usar el prompt de carpeta o el de clase; la respuesta sugirió usar config TOML con class_token = pero no se dio una respuesta definitiva con evidencia. Ver https://github.com/kohya-ss/sd-scripts/issues/330 .
FAQ
¿Qué son las imágenes de regularización en el entrenamiento LoRA?
Ejemplos de clase usados durante el entrenamiento LoRA para preservar la comprensión del modelo base sobre categorías más amplias. Evitan que un token raro sobrescriba todo el concepto de clase en el conocimiento del modelo. La pérdida de preservación de prior calcula la pérdida de desruido en las imágenes de clase condicionada en el prompt de clase plano (sin el token raro). Ver https://huggingface.co/docs/diffusers/v0.11.0/en/training/dreambooth y https://arxiv.org/abs/2208.12242 .
¿Necesito imágenes de regularización para el entrenamiento LoRA?
La mayoría de los escenarios de entrenamiento LoRA no las necesitan. Úsalas solo cuando entrenes con 50+ imágenes o conceptos más amplios. Para LoRAs de sujeto único, omítelas para ahorrar cómputo. Ver https://aituts.com/lora-training-settings/ .
¿Cuántas imágenes de regularización debo usar?
Usa 200-300 según la investigación DreamBooth (https://huggingface.co/docs/diffusers/v0.11.0/en/training/dreambooth). Para LoRA específicamente, el número óptimo no está bien documentado — muchos entrenadores experimentados las omiten por completo para trabajo de sujeto único. La guía DreamBooth de num_epochs * num_samples aplica al ajuste completo; si LoRA se beneficia del mismo conteo es una pregunta abierta.
¿Puedo omitir la regularización en kohya_ss?
Sí. El campo "Regularisation folder" es opcional. Para LoRAs de sujeto único, déjalo vacío. Esto se recomienda para la mayoría de los escenarios de entrenamiento LoRA (https://aituts.com/lora-training-settings/ ).
¿Cómo genero imágenes de regularización?
Genera con el mismo modelo Stable Diffusion en el que estás entrenando, usando prompts que coincidan con tu clase pero omitiendo el token raro. Herramientas como kohya_ss pueden generarlas automáticamente (https://huggingface.co/docs/diffusers/v0.11.0/en/training/dreambooth). El flag CLI es --reg_data_dir.
¿Cuál es la diferencia entre imágenes de regularización y de entrenamiento?
Las imágenes de entrenamiento son tu sujeto específico (<rare_token> + detalles del sujeto). Las imágenes de regularización son ejemplos normales de clase ("a photo of a man") que preservan la comprensión del modelo base de esa categoría. La única diferencia a nivel de código en kohya_ss es que is_reg ajusta loss_weights para las imágenes de clase (https://github.com/kohya-ss/sd-scripts/issues/330 ).
¿Por qué mis imágenes de regularización empeoran mi LoRA?
El modelo asocia el prompt de clase con el efecto de suavizado de las imágenes reg sin refinar, haciendo que las salidas de clase sean artificialmente suaves mientras las imágenes del sujeto se vuelven nítidas de más. Genera imágenes reg usando tu pipeline final esperado (con refiner, dpmpp_2s_ancestral) para igualar la calidad. Ver https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ .
¿Las imágenes de regularización duplican el tiempo de entrenamiento?
Sí. Cuando hay imágenes de regularización presentes, kohya_ss aplica un factor de regularización de 2 a max_train_steps. Ejemplo de una ejecución real: 423 pasos base pasan a 2115 con regularización activada (max_train_steps (423 / 4 / 1.0 * 10 * 2) = 2115). Ver https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ .