Cambiar tema

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

Easton editorial illustration: central LoRA trainer module, stack of varied character dataset image cards, output safetensors file tile

"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.

ObjetivoCantidad inicialResoluciónFondoOtros requisitos
Personaje15–30 imágenes (10 con gran calidad)512×512 o 1024×1024 coherenteLimpio o variado, sin repetir escenaÁngulos, expresiones y poses
Estilo50–100 imágenesSegún la base (SD1.5→512, SDXL→1024)No necesita ser limpio, pero sí coherenteMismo artista o serie
Objeto15–30 imágenesResolución coherenteMejor limpio, aunque puede variarVistas 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:

  1. Selecciona imágenes nítidas, de resolución similar y rasgos claros.
  2. Recorta a una resolución con Photoshop, GIMP o un script por lotes.
  3. 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:

HerramientaCaracterísticasUsoSoporte ComfyUI
WD14 TaggerEtiquetas Danbooru, común en Stable DiffusionPersonajes y animeNodo Image-Captioning-in-ComfyUI
Florence2Modelo visual de Microsoft con lenguaje naturalPersonajes realistas y objetosNodos disponibles
BLIPModelo de captions en lenguaje naturalEstilos realistas y escenasCompatible 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 Diffusion
  • xyz_character_name, con prefijo propio
  • my_char_001

Ubicación:

  1. Pon el trigger al inicio de cada .txt o .caption, seguido de atributos.
  2. 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

RutaVentajasDesventajasPara quién
GUI kohya-ssInterfaz completa y muchos tutorialesInstalación aparte e interfaz complejaQuien quiere control total
Nodos ComfyUI como FluxTrainerEntrena en el mismo workflowPartes experimentales y defaults no garantizadosUsuarios de ComfyUI
Scripts kohya-ss en terminalFunciones nuevas y control completoMayor barrera técnicaUsuarios 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ámetroPersonajeEstiloNota
U-Net LR4e-41e-4Inicio a ajustar según síntomas y alpha
Text encoder LR5e-5 o 1e-55e-5 o menorNormalmente menor que U-Net
Steps1000–20002000–3000Derivar de epochs y parar antes si sobreajusta
Epochs10–2020–30Un 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.

ModeloResoluciónModelos compatiblesVRAM inicial
SD1.5512×512SD1.5 y derivados compatiblesUnos 8 GB con fp16 y checkpointing
SDXL1024×1024SDXL y derivados compatiblesUnos 12 GB con fp16 y checkpointing
FLUX.11024×1024 o másFamilia FLUX.1 correspondienteA 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

ObjetivodimalphaU-Net LRText encoder LRSteps/epochsModelo
Personaje SD1.532 o 12832 o 1; compensar si es bajo4e-45e-51000–2000 / 10–20SD1.5
Personaje SDXL1281 o 1284e-45e-51500–2500 / 10–20SDXL
Estilo SD1.5128 o 256128 o 11e-45e-5 o menor2000–3000 / 20–30SD1.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íntomaSobreajusteSubajusteCorrección
DetallesDeformados o copiadosSemejanza débilSobre: bajar LR/steps; sub: subir LR/mejorar datos
FondoFalla al cambiar escenaObjetivo débil siempreSobre: revisar tags de fondo; sub: revisar trigger
TriggerDemasiado fuerteDébil o ausenteSobre: bajar LR/dim alto; sub: revisar LR, datos, dim
WeightCopia a 0.3Apenas aparece a 1.0Sobre: epoch anterior; sub: continuar con cuidado o mejorar datos

Orden de corrección

Sobreajuste:

  1. Baja claramente el learning rate, por ejemplo 50 % en una prueba.
  2. Reduce steps o elige una epoch anterior.
  3. Revisa fondos y rasgos secundarios en captions.
  4. Baja un dim innecesariamente alto.

Subajuste:

  1. Sube el learning rate de forma controlada.
  2. Añade o mejora datos.
  3. Confirma el trigger en cada caption.
  4. 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

ModeloBase fp16 con checkpointingCon ahorro adicionalOpciones
SD1.5Unos 8 GBUnos 6 GB en configuraciones limitadasdim bajo, checkpointing, optimizer y precision
SDXLUnos 12 GBCerca de 10 GB en algunos casosdim bajo, checkpointing, ahorro por bloques
FLUX.1A menudo unos 24 GB sin ahorroCerca de 10 GB muy optimizadoblock 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

VRAMObjetivo realistaCompromisoRuta
6 GBPersonaje SD1.5dim bajo, checkpointing, lentoSD1.5 con batch pequeño
8 GBPersonaje o estilo SD1.5dim bajo y checkpointingOpciones maduras de SD1.5
10 GBAlgunas configuraciones SDXLAhorro agresivoReceta low-memory documentada
12 GB+Más SDXL, FLUX.1 experimentalPuede requerir ahorroSDXL 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

ControlResultadoSi falla
TriggerClaro a 0.5 y controlable a 0.3Ausente: captions/trigger; fuerte: bajar LR o usar epoch anterior
DetallesPeinado, colores y ropa nítidosDeformados: sobreajuste; débiles: subajuste
Cambio de fondoSujeto reconocible en otra escenaRevisar captions de fondo y diversidad
WeightRasgos graduales entre 0.3 y 1.0Revisar 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. 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. 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. 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. 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. 5

    Step 5: Guardar epochs intermedias

    Guarda pesos en intervalos fijos para elegir después el punto que generaliza sin sobreajuste.
  6. 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. 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?
Un personaje suele empezar con 15–30 imágenes; unas 10 excelentes pueden bastar. Un estilo suele usar 50–100 y un objeto 15–30. Prioriza calidad y variedad.
¿Cómo configuro network dim y alpha?
dim controla la capacidad y alpha escala los pesos. alpha=dim o alpha=dim/2 son inicios habituales. Con alpha bajo, ajusta learning rate, steps y validación en conjunto.
¿Qué learning rate conviene para LoRA?
Un personaje puede empezar cerca de 4e-4 para U-Net y un estilo cerca de 1e-4; el text encoder suele ser menor. Ajusta con epochs guardadas y síntomas.
¿Cómo entreno con poca VRAM?
Prioriza SD1.5, dim bajo, mixed precision y gradient checkpointing. SDXL y FLUX.1 pueden usar block swapping o cuantización si el trainer lo permite, con sus compromisos.
¿Puedo entrenar un LoRA directamente en ComfyUI?
Sí, por ejemplo con ComfyUI-FluxTrainer. Estos nodos envuelven scripts y algunos siguen siendo experimentales; revisa su documentación y kohya-ss/sd-scripts.
¿En qué difieren los LoRA de SDXL y FLUX.1?
Cambian arquitectura, text encoders, scripts, VRAM y parámetros. Usa el LoRA con la familia del modelo con la que fue entrenado.

10 min de lectura · Publicado el: 28 ago 2026 · Actualizado el: 28 ago 2026

Comentarios

Inicia sesión con GitHub para dejar un comentario

Easton BlogEaston Blog