Entrenar tu propio LoRA con ComfyUI: datos, etiquetas y validación

"kohya-ss/sd-scripts ofrece scripts y documentación de entrenamiento LoRA para Stable Diffusion, SDXL, SD3, FLUX.1 y otras familias."
Tienes 20 imágenes de un personaje original y quieres entrenar un LoRA capaz de reproducirlo en nuevas generaciones.
El dataset y la herramienta de captioning están listos y copiaste parámetros de una captura, pero el resultado falla: la cara cambia con el fondo; «wall» y «floor» en los captions fijan la misma habitación; LR=1e-3 sobreajusta y deforma detalles; dim/alpha=32/1 deja alpha=1 y dim=32 con una escala aproximada de 0.03, apenas 3 %.
No hay garantía de acertar en un intento. La ruta práctica une datos, captions, parámetros iniciales, diagnóstico y validación en ComfyUI.
Preparar el dataset: cantidad y tipo de imágenes
El primer paso no es abrir el trainer, sino decidir si el material es suficiente y adecuado.
El objetivo determina la cantidad
La cantidad depende directamente de lo que entrenas.
LoRA de personaje: empieza con 15–30 imágenes. Diez fuentes excelentes, nítidas y coherentes pueden funcionar. Para cambiar de escena, incluye fondos y ángulos distintos.
LoRA de estilo: suele requerir 50–100 imágenes porque pincelada, color y composición añaden variables. Con pocos datos, el estilo desaparece en una imagen nueva.
LoRA de objeto o ropa: también 15–30 imágenes, con frente, perfil y primeros planos que muestren sus rasgos.
Tabla de calidad del dataset
La cantidad no basta. Fuentes débiles enseñan también fondos, iluminación y defectos.
| Objetivo | Cantidad inicial | Resolución | Fondo | Otros requisitos |
|---|---|---|---|---|
| Personaje | 15–30 imágenes (10 con gran calidad) | 512×512 o 1024×1024 coherente | Limpio o variado, sin repetir escena | Ángulos, expresiones y poses |
| Estilo | 50–100 imágenes | Según la base (SD1.5→512, SDXL→1024) | No necesita ser limpio, pero sí coherente | Mismo artista o serie |
| Objeto | 15–30 imágenes | Resolución coherente | Mejor limpio, aunque puede variar | Vistas y detalles diferentes |
Prioriza resolución uniforme, fondo en personajes y variedad de ángulos y detalles. Grandes diferencias producen resize y detalles inconsistentes.
Resolución, fondo y preprocesamiento
Resolución: el trainer redimensiona todo. Mezclar fuentes de 512 y 2048 conserva el detalle de forma desigual; recórtalas antes al tamaño objetivo.
Fondo: si 15 de 20 imágenes muestran la misma habitación, el tagger repite «wall» y «floor» y el LoRA puede aprenderla. Usa fondos limpios o corrige los captions.
Flujo:
- Selecciona imágenes nítidas, de resolución similar y rasgos claros.
- Recorta a una resolución con Photoshop, GIMP o un script por lotes.
- Elimina material de riesgo si el mismo fondo aparece más de cinco veces.
Captions y trigger words: etiquetar el dataset
El etiquetado automático necesita revisión. Fondos y rasgos secundarios cambian directamente la utilidad del LoRA.
Elegir herramienta de captioning
Opciones comunes:
| Herramienta | Características | Uso | Soporte ComfyUI |
|---|---|---|---|
| WD14 Tagger | Etiquetas Danbooru, común en Stable Diffusion | Personajes y anime | Nodo Image-Captioning-in-ComfyUI |
| Florence2 | Modelo visual de Microsoft con lenguaje natural | Personajes realistas y objetos | Nodos disponibles |
| BLIP | Modelo de captions en lenguaje natural | Estilos realistas y escenas | Compatible con ComfyUI |
WD14 sirve para personajes, pero añade «simple background» o «white wall». Florence2 redacta frases y suele encajar mejor con material realista.
Formato y ubicación del trigger
Usa un token raro o una combinación propia:
sks charname, con un prefijo raro usado al inicio de Stable Diffusionxyz_character_name, con prefijo propiomy_char_001
Ubicación:
- Pon el trigger al inicio de cada
.txto.caption, seguido de atributos. - Algunos trainers ofrecen un campo separado; no es necesario si aparece en todos los captions.
La repetición da un nombre estable al concepto. Usa el mismo trigger al generar.
Revisar manualmente los atributos
Comprueba al menos tres puntos.
Fuga de fondo: «wall», «floor» o «bedroom» frecuentes pueden bloquear escenas nuevas. Elimínalos o generalízalos.
Trigger ausente: revisa cada caption.
Rasgo esencial ausente: añade peinado, colores o ropa característicos si faltan.
No hace falta leer palabra por palabra. Cuenta términos con grep o una hoja de cálculo y corrige anomalías.
Límites de las herramientas: qué hace ComfyUI
ComfyUI puede lanzar el entrenamiento, pero no es el backend.
kohya-ss/sd-scripts es el backend
El cálculo lo realiza kohya-ss/sd-scripts, muy usado para LoRA de Stable Diffusion. Kohya GUI y los nodos ComfyUI envuelven esos scripts o implementaciones relacionadas.
FluxTrainer y Lora-Training-in-Comfy son wrappers:
- FluxTrainer de Kijai integra código sd-scripts modificado para FLUX y flujos relacionados.
- Lora-Training-in-Comfy ofrece otra interfaz ComfyUI para entrenamiento basado en kohya.
Sus defaults no son óptimos universales. Consulta el README actual y la documentación upstream.
Comparar rutas de entrenamiento
| Ruta | Ventajas | Desventajas | Para quién |
|---|---|---|---|
| GUI kohya-ss | Interfaz completa y muchos tutoriales | Instalación aparte e interfaz compleja | Quien quiere control total |
| Nodos ComfyUI como FluxTrainer | Entrena en el mismo workflow | Partes experimentales y defaults no garantizados | Usuarios de ComfyUI |
| Scripts kohya-ss en terminal | Funciones nuevas y control completo | Mayor barrera técnica | Usuarios con experiencia |
Dónde consultar parámetros actuales
No dependas solo de capturas. Empieza con la documentación actual de kohya-ss/sd-scripts:
- Las guías explican opciones de SD1.5, SDXL y FLUX.1.
- Issues y Discussions aportan experiencia específica, como network alpha.
Learning rate, dim/alpha y steps cambian con modelo y dataset. No existe una configuración universal.
Recetas iniciales según el objetivo
Son puntos de partida reproducibles. Ajusta con epochs guardadas y síntomas.
Relación entre network dim y alpha
network dim o rank define la capacidad de las matrices LoRA. Un dim mayor aprende más detalle, pero aumenta memoria y tiempo.
network alpha escala los pesos aprendidos. Si alpha es menor que dim, el efecto queda amortiguado respecto al learning rate configurado.
Escala simplificada: alpha / dim
Ejemplos:
- alpha=16, dim=32 → 16/32=0.5
- alpha=32, dim=32 → 1
- alpha=1, dim=32 → 1/32≈0.03
Copiar dim=32 y alpha=1 sin considerar learning rate y steps puede dar un resultado débil.
Inicio:
- Prueba alpha=dim sin amortiguación o alpha=dim/2 con amortiguación moderada.
- Con alpha<dim, compara learning rate y steps juntos.
Learning rates, steps y epochs
| Parámetro | Personaje | Estilo | Nota |
|---|---|---|---|
| U-Net LR | 4e-4 | 1e-4 | Inicio a ajustar según síntomas y alpha |
| Text encoder LR | 5e-5 o 1e-5 | 5e-5 o menor | Normalmente menor que U-Net |
| Steps | 1000–2000 | 2000–3000 | Derivar de epochs y parar antes si sobreajusta |
| Epochs | 10–20 | 20–30 | Un dataset pequeño puede necesitar menos |
Un step es una actualización del optimizer y una epoch un recorrido del dataset. Repeats, batch size, gradient accumulation y distribución cambian la relación; usa el contador del trainer.
Elegir el modelo base
La base de entrenamiento determina compatibilidad.
| Modelo | Resolución | Modelos compatibles | VRAM inicial |
|---|---|---|---|
| SD1.5 | 512×512 | SD1.5 y derivados compatibles | Unos 8 GB con fp16 y checkpointing |
| SDXL | 1024×1024 | SDXL y derivados compatibles | Unos 12 GB con fp16 y checkpointing |
| FLUX.1 | 1024×1024 o más | Familia FLUX.1 correspondiente | A menudo mucho más sin optimización |
El soporte FLUX.1 y las opciones de memoria cambian. Consulta la documentación en vez de confiar en una cifra fija.
Tabla inicial
| Objetivo | dim | alpha | U-Net LR | Text encoder LR | Steps/epochs | Modelo |
|---|---|---|---|---|---|---|
| Personaje SD1.5 | 32 o 128 | 32 o 1; compensar si es bajo | 4e-4 | 5e-5 | 1000–2000 / 10–20 | SD1.5 |
| Personaje SDXL | 128 | 1 o 128 | 4e-4 | 5e-5 | 1500–2500 / 10–20 | SDXL |
| Estilo SD1.5 | 128 o 256 | 128 o 1 | 1e-4 | 5e-5 o menor | 2000–3000 / 20–30 | SD1.5 |
Ajusta estos inicios con las comprobaciones siguientes.
Detectar y corregir sobreajuste y subajuste
Una mala configuración puede destruir detalles o apenas aprender el objetivo.
Síntomas de sobreajuste
Apariencia:
- Los detalles se mezclan, desenfocan o deforman.
- Fondos y ángulos nuevos fallan porque solo reconoce escenas de entrenamiento.
- Reaparecen ruido y marcas de agua del dataset.
Trigger:
- Incluso weight=0.3 copia los datos y no se controla.
- Los rasgos aparecen sin trigger y quedan demasiado ligados.
Síntomas de subajuste
Apariencia:
- La semejanza es baja y faltan detalles clave.
- El trigger responde poco o nada.
Prueba de fondo:
- Los rasgos siguen débiles en toda escena; el concepto principal no se aprendió.
Tabla comparativa
| Síntoma | Sobreajuste | Subajuste | Corrección |
|---|---|---|---|
| Detalles | Deformados o copiados | Semejanza débil | Sobre: bajar LR/steps; sub: subir LR/mejorar datos |
| Fondo | Falla al cambiar escena | Objetivo débil siempre | Sobre: revisar tags de fondo; sub: revisar trigger |
| Trigger | Demasiado fuerte | Débil o ausente | Sobre: bajar LR/dim alto; sub: revisar LR, datos, dim |
| Weight | Copia a 0.3 | Apenas aparece a 1.0 | Sobre: epoch anterior; sub: continuar con cuidado o mejorar datos |
Orden de corrección
Sobreajuste:
- Baja claramente el learning rate, por ejemplo 50 % en una prueba.
- Reduce steps o elige una epoch anterior.
- Revisa fondos y rasgos secundarios en captions.
- Baja un dim innecesariamente alto.
Subajuste:
- Sube el learning rate de forma controlada.
- Añade o mejora datos.
- Confirma el trigger en cada caption.
- Sube dim si falta capacidad.
VRAM y rutas de poca memoria para una RTX 3060
Poca VRAM no siempre impide entrenar, pero obliga a compromisos de resolución, modelo, velocidad y optimización.
Mínimos aproximados
| Modelo | Base fp16 con checkpointing | Con ahorro adicional | Opciones |
|---|---|---|---|
| SD1.5 | Unos 8 GB | Unos 6 GB en configuraciones limitadas | dim bajo, checkpointing, optimizer y precision |
| SDXL | Unos 12 GB | Cerca de 10 GB en algunos casos | dim bajo, checkpointing, ahorro por bloques |
| FLUX.1 | A menudo unos 24 GB sin ahorro | Cerca de 10 GB muy optimizado | block swapping, checkpointing, dim bajo, cuantización |
El ejemplo 24 a 10 GB proviene de una guía externa de 2025. El uso real depende de trainer, modelo, optimizer, cache, dataset y GPU.
Técnicas de ahorro
Fused o memory-efficient backward reduce el pico según la implementación.
Gradient checkpointing recalcula activaciones y cambia velocidad por memoria.
dim bajo reduce parámetros LoRA y normalmente VRAM.
Mixed precision y cuantización: fp16 o bf16 son comunes; algunos trainers admiten FP8 o componentes cuantizados con compromisos.
Tabla de poca VRAM
| VRAM | Objetivo realista | Compromiso | Ruta |
|---|---|---|---|
| 6 GB | Personaje SD1.5 | dim bajo, checkpointing, lento | SD1.5 con batch pequeño |
| 8 GB | Personaje o estilo SD1.5 | dim bajo y checkpointing | Opciones maduras de SD1.5 |
| 10 GB | Algunas configuraciones SDXL | Ahorro agresivo | Receta low-memory documentada |
| 12 GB+ | Más SDXL, FLUX.1 experimental | Puede requerir ahorro | SDXL primero; FLUX.1 depende de la configuración |
Con VRAM ajustada, empieza por SD1.5. Requiere menos y sus técnicas están más maduras.
Validar el LoRA terminado en ComfyUI
Una imagen no basta. Comprueba trigger, detalles, cambio de fondo y rango de weight.
Cargar el LoRA
Carga el .safetensors con Load LoRA:
- Nodo: Load LoRA incluido en ComfyUI
- Parámetros: archivo y strengths de model y clip; empieza cerca de 0.5
Crear un prompt de prueba
Incluye trigger y atributos:
- Trigger word: token aprendido, como
sks charname, cerca del inicio. - Atributos: peinado, colores y ropa importantes.
- Escena: usa «in a forest» o «at night» al cambiar fondo.
Ejemplo:
sks charname, blonde hair, blue eyes, white dress, simple background
Prueba de fondo:
sks charname, blonde hair, blue eyes, white dress, in a forest, at sunset
Barrer el rango de weight
Compara con condiciones iguales:
- weight=0.3: efecto ligero y controlable.
- weight=0.5: objetivo reconocible.
- weight=1.0: máxima fuerza sin deformación ni pérdida de control.
Si 0.3 sigue pegado a los datos, sospecha sobreajuste. Si 1.0 apenas se parece, revisa subajuste, trigger y compatibilidad.
Lista de aceptación
| Control | Resultado | Si falla |
|---|---|---|
| Trigger | Claro a 0.5 y controlable a 0.3 | Ausente: captions/trigger; fuerte: bajar LR o usar epoch anterior |
| Detalles | Peinado, colores y ropa nítidos | Deformados: sobreajuste; débiles: subajuste |
| Cambio de fondo | Sujeto reconocible en otra escena | Revisar captions de fondo y diversidad |
| Weight | Rasgos graduales entre 0.3 y 1.0 | Revisar fuerza y epochs |
Siguientes pasos y lecturas
Para carga, weights, apilamiento y triggers, sigue con Usar LoRA en ComfyUI: pesos, apilamiento y consistencia del personaje.
La relación entre base, compatibilidad y shape mismatch se explica en Elegir modelos Stable Diffusion: compatibilidad de la base y LoRA.
Para pruebas repetibles, usa Plantillas de prompt de Stable Diffusion para validar un LoRA.
Alternativas sin reentrenar:
- FLUX.1 Kontext puede mantener un personaje sin LoRA cuando hay pocos datos o el entrenamiento no compensa.
- InstantID e IPAdapter FaceID controlan la cara con una imagen de referencia en vez de entrenar un LoRA.
Cómo entrenar y validar tu propio LoRA
Elige objetivo y modelo base, prepara imágenes y captions, entrena con valores controlados y comprueba trigger, detalles y generalización de fondo en ComfyUI.
⏱️ Estimated time: 4 hr
- 1
Step 1: Elegir objetivo y modelo base
Decide si entrenas personaje, estilo u objeto y elige SD1.5, SDXL o FLUX.1; la base de entrenamiento determina la compatibilidad. - 2
Step 2: Seleccionar y normalizar el dataset
Conserva imágenes nítidas con sujeto claro, ángulos y fondos variados, y recórtalas a una resolución coherente. - 3
Step 3: Generar y revisar captions
Usa una herramienta adecuada y comprueba palabras de fondo frecuentes, atributos esenciales y el trigger en cada archivo. - 4
Step 4: Definir parámetros iniciales
Elige dim, alpha, learning rates y steps o epochs según el objetivo; usa las tablas como inicio reproducible, no como respuesta universal. - 5
Step 5: Guardar epochs intermedias
Guarda pesos en intervalos fijos para elegir después el punto que generaliza sin sobreajuste. - 6
Step 6: Validar con condiciones fijas
Mantén prompt, seed, sampler y tamaño, y compara weights 0.3, 0.5 y 1.0 con varios fondos. - 7
Step 7: Corregir según los síntomas
Si hay sobreajuste, baja learning rate o steps y revisa etiquetas de fondo; si hay subajuste, comprueba trigger, datos, learning rate y dim.
FAQ
¿Cuántas imágenes necesito para entrenar un LoRA?
¿Cómo configuro network dim y alpha?
¿Qué learning rate conviene para LoRA?
¿Cómo entreno con poca VRAM?
¿Puedo entrenar un LoRA directamente en ComfyUI?
¿En qué difieren los LoRA de SDXL y FLUX.1?
10 min de lectura · Publicado el: 28 ago 2026 · Actualizado el: 28 ago 2026
Guía práctica de ComfyUI y Stable Diffusion
Si llegaste desde búsqueda, lo más rápido es ir al artículo anterior o siguiente de esta misma serie.
Anterior
Consistencia facial en ComfyUI: InstantID, FaceID o ReActor
Compara InstantID, IPAdapter FaceID y ReActor para mantener rostros en ComfyUI, con modelos, rutas, ajustes, errores frecuentes y límites de licencia.
Parte 9 de 16
Siguiente
Prompts regionales en ComfyUI: separa varios sujetos con Set Area, RegionalPrompt y Cutoff
Separa sujetos en ComfyUI con Set Area, RegionalPrompt y Cutoff: coordenadas, máscaras, strength, ControlNet y mezcla de colores en el segundo pase.
Parte 11 de 16



Comentarios
Inicia sesión con GitHub para dejar un comentario