Esta página es una vista general del fine‑tuning con LoRA usando el Ostris AI Toolkit. Para una receta específica por modelo, salta a una de estas guías:
- Entrenamiento LoRA de FLUX.2 Dev con AI Toolkit
- Entrenamiento LoRA de LTX-2 con AI Toolkit
- Entrenamiento LoRA de Z‑Image Turbo con AI Toolkit
- Entrenamiento LoRA de Qwen Image 2512 con AI Toolkit
- Entrenamiento LoRA de Qwen‑Image‑Edit‑2511 con AI Toolkit
- Entrenamiento LoRA de Qwen‑Image‑Edit‑2509 con AI Toolkit
- Entrenamiento LoRA de Wan 2.2 I2V 14B con AI Toolkit
- Entrenamiento LoRA de Wan 2.2 T2V 14B con AI Toolkit
Al terminar esta guía, deberías poder:
- Entender las ideas clave detrás del entrenamiento con LoRA (qué está pasando realmente cuando ajustas un modelo).
- Saber cómo está organizado AI Toolkit y qué controla cada panel.
- Entender qué hacen los parámetros principales (learning rate, rank, steps, schedule de ruido, DOP, etc.) para poder ajustarlos con intención.
- Ser capaz de entrenar LoRAs en tu propio equipo o con RunComfy Cloud AI Toolkit, y reutilizarlas luego en tus flujos normales de generación.
Tabla de contenidos
- 1. ¿Qué es Ostris AI Toolkit? (entrenador de LoRA para modelos de difusión)
- 2. Modelos compatibles en Ostris AI Toolkit (Flux, Wan, Z‑Image, Qwen‑Image, SDXL)
- 3. Instalar Ostris AI Toolkit en local y usar RunComfy Cloud AI Toolkit
- 4. Vista general de la Web UI de Ostris AI Toolkit (Dashboard, Datasets, New LoRA Job)
- 5. Bases del entrenamiento LoRA y los hiperparámetros principales en AI Toolkit
- 6. Cómo mapear los conceptos LoRA a los parámetros de AI Toolkit
- 7. Flujo rápido: entrena una LoRA utilizable en Ostris AI Toolkit
- 8. Troubleshooting del entrenamiento LoRA en AI Toolkit: errores comunes y soluciones
1. ¿Qué es Ostris AI Toolkit? (entrenador de LoRA para modelos de difusión)
Ostris AI Toolkit es una suite de entrenamiento centrada en modelos de difusión para imagen y vídeo. No sirve para modelos de lenguaje ni de audio; todo lo que soporta es o bien un modelo de difusión estilo DDPM (como SD 1.5 o SDXL) o un diffusion‑transformer moderno como Flux, Wan, Qwen‑Image, Z‑Image u OmniGen2. Está construido alrededor de adaptadores tipo LoRA: en la práctica, al ajustar un modelo con AI Toolkit no estás reentrenando toda la red, sino entrenando pequeñas LoRA (o adaptadores ligeros similares) encima de un modelo base congelado.
Funciones clave de Ostris AI Toolkit para el entrenamiento LoRA
AI Toolkit ofrece un motor de entrenamiento común y un sistema de configuración compartido para todas las familias compatibles. Cada familia (Flux, Z‑Image Turbo, Wan 2.2, Qwen‑Image, SDXL, etc.) tiene su propio preset, pero todas encajan en la misma estructura: carga del modelo, cuantización, definición del adaptador LoRA/LoKr, hiperparámetros de entrenamiento, gestión de datasets y reglas de sampling. Por eso la Web UI se siente igual tanto si entrenas una LoRA de Flux como una de Z‑Image Turbo o una LoRA de vídeo de Wan 2.2.
Sobre ese motor, AI Toolkit incluye tanto una CLI como una Web UI completa. La CLI lanza trabajos desde configs YAML; la Web UI es una capa gráfica sobre esos mismos YAML. En la UI, “AI Toolkit” suele referirse a la pantalla de New Job, donde eliges familia de modelo, tipo de LoRA y rank, defines learning rate y steps, adjuntas uno o varios datasets y decides cada cuánto generar samples de imagen o vídeo. Tienes paneles dedicados para Job, Model, Quantization, Target, Training, Regularization, Datasets y Sample, así que rara vez necesitas tocar YAML a mano. Tanto si lo ejecutas en local como si lo haces en la nube con RunComfy Cloud AI Toolkit, el flujo es el mismo.
Herramientas integradas para entrenar LoRA en Ostris AI Toolkit
AI Toolkit trae una serie de funciones “baterías incluidas” que, de otro modo, tendrías que scriptar o integrar por tu cuenta:
- Cuantización y modos de baja VRAM – cuantización configurable del transformer a 8/6/4 bits (y 3 bits con recovery adapters), además de offloading por capas, para poder entrenar modelos grandes como Flux o Wan en GPUs de 24–48 GB, con trade‑offs controlables de calidad/velocidad.
- Adaptadores LoRA / LoKr – soporte para LoRA estándar y también LoKr (una variante más compacta pero menos compatible), seleccionable con
Target Type, para elegir entre máxima compatibilidad y adaptadores más pequeños con mayor capacidad. - Differential Output Preservation (DOP) – una pérdida de regularización que compara las salidas del modelo base y del modelo con LoRA en imágenes de regularización y penaliza cambios no deseados, reduciendo el “bleeding” (cuando todo empieza a parecerse a tu concepto).
- Differential Guidance para modelos “turbo” – una guía opcional durante el entrenamiento (muy usada en Z‑Image Turbo) que enfoca la actualización en “qué debería cambiar” respecto al modelo base, mejorando la adaptación en modelos destilados de pocos pasos sin romper su ventaja de velocidad.
- Entrenamiento de ruido en múltiples etapas – etapas separadas de alto ruido y bajo ruido para equilibrar aprendizaje de estructura gruesa (composición, pose) y refinado de detalles (texturas, bordes).
- Caché de latentes y embeddings de texto –
Cache LatentsyCache Text Embeddingscambian espacio en disco por velocidad y menor VRAM, especialmente útil en GPUs pequeñas o en sesiones cloud donde quieres iterar rápido. - EMA (Exponential Moving Average) – una copia suavizada opcional de los pesos LoRA que puede estabilizar la convergencia, sobre todo con datasets pequeños.
La Web UI expone todo esto con controles claros y, como el layout es consistente entre modelos, una vez entiendes cómo AI Toolkit entrena una LoRA para una base (por ejemplo Flux), es fácil aplicar el mismo razonamiento a Z‑Image Turbo, Wan, Qwen‑Image y otros modelos compatibles.
2. Modelos compatibles en Ostris AI Toolkit (Flux, Wan, Z‑Image, Qwen‑Image, SDXL)
AI Toolkit soporta actualmente las siguientes familias:
- Modelos de IMAGEN – imagen única (Flux, Z‑Image Turbo, Qwen‑Image, SD, etc.).
- Modelos de INSTRUCCIÓN / EDICIÓN – edición de imagen / instruction following (Qwen‑Image‑Edit, Flux Kontext, HiDream E1).
- Modelos de VÍDEO – texto‑a‑vídeo e imagen‑a‑vídeo (serie Wan 2.x).
2. Modelos compatibles en Ostris AI Toolkit (Flux, Wan, Z‑Image, Qwen‑Image, SDXL)
AI Toolkit soporta actualmente las siguientes familias:
- Modelos de IMAGEN – imagen única (Flux, Z‑Image Turbo, Qwen‑Image, SD, etc.).
- Modelos de INSTRUCCIÓN / EDICIÓN – edición de imagen / instruction following (Qwen‑Image‑Edit, Flux Kontext, HiDream E1).
- Modelos de VÍDEO – texto‑a‑vídeo e imagen‑a‑vídeo (serie Wan 2.x).
| Categoría | Familia de modelo en la UI de AI Toolkit | Requisitos del sistema / recomendaciones de VRAM |
|---|---|---|
| IMAGEN | FLUX.1 / FLUX.2 | VRAM: mínimo 24 GB para entrenar LoRA. Recomendado: 48 GB+ para ranks altos (32–64) y 1024+ buckets. Notas: cuantización + modo Low VRAM puede hacer viable 24 GB; un SSD ayuda con el caché de latentes/texto. |
| INSTRUCCIÓN | FLUX.1‑Kontext‑dev | VRAM: base 24 GB+. Recomendado: 48 GB+ si subes resolución, conditioning más pesado o ranks más grandes. |
| IMAGEN | Qwen‑Image, Qwen Image 2512 | VRAM: 24 GB+ recomendado. Zona cómoda: 32 GB+ (especialmente con buckets 1024 y ranks mayores). |
| INSTRUCCIÓN | Qwen‑Image‑Edit, Qwen‑Image‑Edit‑2509, Qwen‑Image‑Edit‑2511 | VRAM: 32 GB+ recomendado. Regla general: 1024px suele estar ~27–28.5 GB; 768px ~25–26 GB; 24 GB normalmente sufre. Notas: algunas configs dependen de caché de embeddings y cuantización 3‑bit ARA. |
| IMAGEN | Z‑Image Turbo | VRAM: diseñado para entrar cómodo en 16–24 GB. Notas: mantén el rank razonable (p. ej. 8–16) y prefiere buckets 512/768/1024. |
| VÍDEO | Wan 2.2 (14B), Wan 2.2 T2V (14B), Wan 2.2 I2V (14B) | VRAM: 24 GB base con ajustes cuidadosos (clips cortos + cuantización/Low VRAM). Recomendado: 48 GB+ para comodidad/velocidad y clips más largos / mayor resolución / ranks más altos. RAM/SSD del host: planifica extra para caché de frames/latentes. |
| VÍDEO | LTX-2 | VRAM: 24–48 GB viable con cuantización/offload. Recomendado: 48 GB+ para un entrenamiento más fluido (más frames / buckets mayores). Notas: reduce frames primero (121→81→49), empieza en 512–768; rank 32 es un baseline práctico. |
| VÍDEO | Wan 2.2 T12V (5B) | VRAM: típicamente 16–24 GB según resolución + frames. Recomendado: 24 GB+ para iterar más cómodo. |
| VÍDEO | Wan 2.1 (1.3B / 14B) | VRAM: varía mucho por variante. Como guía: 1.3B apunta a GPUs más pequeñas; 14B suele querer 24 GB+ para entrenar LoRA. |
| VÍDEO | Wan 2.1 I2V (14B‑480P / 14B‑720P) | VRAM: 24 GB+ base para LoRAs I2V; a mayor resolución base (720P) suele venir bien 48 GB+ para estabilidad. |
| IMAGEN | SD 1.5, SDXL | VRAM: una LoRA de SD 1.5 suele empezar en 8 GB+; SDXL suele estar en 12–16 GB+ (resolución/rank puede subir esto). |
| IMAGEN | OmniGen2 | VRAM: depende del modelo; 24 GB es una base segura para entrenar a 1024. Si tienes 16 GB, empieza con buckets más bajos + caché + ranks menores. |
| IMAGEN | Chroma | VRAM: depende del modelo; trátalo como otros modelos modernos (24 GB base; 48 GB+ cómodo). |
| IMAGEN | Lumina2 | VRAM: depende del modelo; trátalo como otros modelos modernos (24 GB base; 48 GB+ cómodo). |
| IMAGEN | HiDream | VRAM: gama alta; planifica GPUs de clase 48 GB (o usa GPU cloud) para entrenar cómodo a 1024+. |
| INSTRUCCIÓN | HiDream E1 | VRAM: gama alta; normalmente 48 GB+ recomendado por el overhead de conditioning adicional. |
| IMAGEN | Flex.1 / Flex.2 | VRAM: modelos más ligeros; a menudo viables en 12–16 GB según resolución y si entrenas componentes del text encoder. |
3. Instalar Ostris AI Toolkit en local y usar RunComfy Cloud AI Toolkit
3.1 Instalar Ostris AI Toolkit en local en Linux y Windows
El README oficial en GitHub incluye instrucciones claras de instalación para Linux y Windows.
En Linux:
git clone https://github.com/ostris/ai-toolkit.git
cd ai-toolkit
python3 -m venv venv
source venv/bin/activate
# instalar PyTorch con CUDA (ajusta la versión si hace falta)
pip3 install --no-cache-dir torch==2.7.0 torchvision==0.22.0 torchaudio==2.7.0 \
--index-url https://download.pytorch.org/whl/cu126
pip3 install -r requirements.txt
En Windows, puedes seguir el mismo patrón con python -m venv venv y .\venv\Scripts\activate, o usar el script comunitario AI‑Toolkit Easy Install, que encapsula todo el proceso en un clic y abre la UI automáticamente en tu navegador para la versión más reciente.
Para arrancar la Web UI una vez instaladas las dependencias:
cd ui
npm run build_and_start
La interfaz estará disponible en http://localhost:8675. Si la ejecutas en una máquina remota, define antes AI_TOOLKIT_AUTH con una contraseña para que solo tú puedas acceder (consulta las notas de seguridad en el repositorio de AI Toolkit en GitHub).
3.2 Usar RunComfy Cloud AI Toolkit para entrenar LoRA (sin instalación local)
Si no quieres lidiar con drivers de GPU, CUDA o instalaciones locales, puedes usar RunComfy Cloud AI Toolkit. En este modo:
- AI Toolkit corre completamente en la nube: abres el navegador y ya estás en la UI.
- Tienes acceso a GPUs potentes (80 GB y 141 GB de VRAM), ideales para entrenar LoRAs pesadas de FLUX, Qwen‑Image, Z‑Image Turbo o Wan.
- Tus datasets, configs, checkpoints y trabajos anteriores quedan en un workspace persistente asociado a tu cuenta de RunComfy.
- Entrenamiento, playground para probar el modelo y flujos de ComfyUI viven en un solo lugar.
Ábrelo directamente aquí: Cloud AI Toolkit en RunComfy
4. Vista general de la Web UI de Ostris AI Toolkit (Dashboard, Datasets, New LoRA Job)
Cuando abres la Web UI (en local o en RunComfy), la barra lateral izquierda tiene pocas páginas, pero muy importantes:
4.1 Dashboard y Training Queue
El Dashboard muestra trabajos activos y recientes de un vistazo. Es básicamente una página de estado rápido.
La página Training Queue es donde puedes:
- ver el estado de cada job (queued, running, finished, failed),
- abrir logs para depurar problemas,
- detener o borrar jobs,
- descargar checkpoints de salida y muestras de imagen.
Piensa en esto como el “centro de control de trabajos”. Cada LoRA que entrenes aparecerá aquí.
4.2 Gestor de datasets
La página Datasets te permite definir datasets con nombre, que luego podrás adjuntar a los jobs:
- Seleccionas o subes carpetas de imágenes o clips de vídeo.
- La UI los escanea y muestra resoluciones, cantidades y cuántas captions / entradas de metadata existen.
- Cada dataset obtiene un nombre interno que luego aparece en el desplegable
Target Datasetdel job.
Aquí creas:
- datasets principales de entrenamiento (tu personaje, estilo, fotos de producto),
- datasets opcionales de regularización (otras personas, otros camiones, fondos genéricos, etc.) para DOP o regularización clásica.
4.3 New Job: la pantalla central de configuración de LoRA
La página New Job es el corazón de AI Toolkit. Un job es, esencialmente:
Entrenar una LoRA del tipo X en el modelo Y, usando el dataset Z, con estos hiperparámetros.
La pantalla está dividida en paneles:
- JOB – nombre del job y selección de GPU.
- MODEL – qué modelo base vas a ajustar.
- QUANTIZATION – cómo se comprime el modelo base.
- TARGET – LoRA vs LoKr y rank.
- SAVE – precisión y frecuencia de guardado.
- TRAINING – learning rate, steps, optimizer, schedule de timesteps.
- ADVANCED / Regularization – EMA, Differential Guidance, DOP.
- DATASETS – qué dataset(s) entrenar y cómo.
- SAMPLE – cada cuánto generar samples durante el entrenamiento.
El resto de esta guía se centra en ayudarte a conectar estos paneles con los conceptos base de LoRA.
5. Bases del entrenamiento LoRA y los hiperparámetros principales en AI Toolkit
Antes de tocar cualquier control de AI Toolkit, conviene tener un modelo mental de qué hace LoRA durante el entrenamiento.
5.1 Cómo funciona LoRA dentro de modelos de difusión
Un modelo de difusión moderno es básicamente una pila de bloques transformer con matrices de pesos grandes. En un fine‑tuning “vanilla”, actualizarías todos esos pesos directamente, lo cual es caro y se sobreajusta con facilidad.
En todos los modelos soportados (Flux, Z‑Image Turbo, Wan, Qwen‑Image), el backbone es un diffusion‑transformer grande. LoRA no reemplaza la matriz de pesos original W; añade una actualización de bajo rango construida a partir de dos matrices entrenables A y B. Puedes pensarlo como: W_new = W + alpha A B, donde W es la matriz congelada del modelo base, A y B son matrices pequeñas entrenables, y alpha es un factor de escala que controla lo fuerte que se aplica la LoRA en inferencia.
El rank determina el ancho de A y B, y por tanto cuán expresiva puede ser la actualización LoRA. Un rank más alto hace la LoRA más capaz, pero también más pesada en parámetros y cómputo. Un rank más bajo produce un adaptador más pequeño y focalizado, normalmente más difícil de sobreajustar.
5.2 Hiperparámetros clave de LoRA explicados
Estos nombres aparecen en cualquier trainer; AI Toolkit simplemente los expone de forma clara.
Learning Rate (Learning Rate)
- Controla el tamaño del paso en el espacio de parámetros cada vez que el optimizador actualiza la LoRA.
- Demasiado bajo: el entrenamiento es lento y puede no ajustarse bien al dataset.
- Demasiado alto: la pérdida oscila o explota; la LoRA se vuelve ruidosa/inestable o se sobreajusta.
Para LoRAs de difusión, 0.0001 es un valor por defecto muy sensato. Muchas configs publicadas para Wan y Flux caen en 0.0001 – 0.0002.
Batch Size y Gradient Accumulation
Batch Sizees cuántas imágenes/clips ve el modelo en paralelo por cada cálculo de gradiente.Gradient Accumulationsignifica “acumula gradientes durante N batches antes de aplicar una actualización”, simulando un batch más grande sin requerir tanta VRAM.
El batch efectivo es: Batch Size × Gradient Accumulation
Un batch efectivo más alto suele dar gradientes más suaves y mejor generalización, pero cuesta más cómputo. Mucha gente trabaja con Batch Size = 1 y Gradient Accumulation = 2–4 en GPUs de 24 GB.
Steps (Steps)
Esto es cuántas actualizaciones de optimizador vas a ejecutar. Es el control principal de “cuánto entrenar”.
- Muy pocos steps → underfitting: la LoRA apenas cambia el modelo base.
- Demasiados steps → overfitting: la LoRA memoriza y “se filtra” a todo.
El número correcto depende de: tamaño del dataset, variedad, rank y learning rate.
Para LoRAs típicas de personaje con 20–50 imágenes en modelos modernos, 2 000–3 000 steps es un buen rango inicial.
Rank (Linear Rank)
- El rank define cuántos grados de libertad tiene tu LoRA.
- Duplicar el rank suele duplicar capacidad y conteo de parámetros.
Intuición práctica:
- Rank 16–32 basta para la mayoría de personajes y estilos en modelos grandes como Flux o Wan.
- Ranks altos sobreajustan datasets pequeños más fácilmente; ranks bajos obligan a generalizar.
Weight Decay (Weight Decay)
Weight decay es una técnica estándar de regularización: empuja suavemente los pesos hacia cero en cada step.
- Reduce la probabilidad de que la LoRA “salte” a valores extremos que recrean perfectamente el training set, pero no generalizan.
- Valores como
0.0001son comunes y suelen ser seguros. Normalmente no necesitas tocarlo hasta ver overfitting claro.
Schedule de timesteps
Los modelos de difusión aprenden a denoising a través de un rango de niveles de ruido. Tú eliges qué timesteps se muestrean con más frecuencia:
- Ruido alto: estructura gruesa, composición, formas grandes.
- Ruido bajo: texturas y detalles finos.
- Ruido medio: donde se encuentran estructura y detalle; muy útil para caras y personajes.
Los parámetros Timestep Type y Timestep Bias en AI Toolkit son controles de UI para ese schedule, que desglosaremos en la sección de parámetros.
Composición del dataset y captions
Incluso con hiperparámetros perfectos, datos malos dan una LoRA mala:
- Usa imágenes limpias y variadas que representen el concepto (misma persona/marca/estilo) pero con distintas poses, iluminación y fondos.
- Las captions deben atar claramente un trigger word único al concepto, para poder activarlo luego sin romper el vocabulario del modelo base.
En LoRAs de vídeo (Wan, HiDream E1), la lógica es la misma, pero con clips cortos en lugar de imágenes, y el muestreo de frames pasa a ser parte del diseño del dataset.
6. Cómo mapear los conceptos LoRA a los parámetros de AI Toolkit
Ahora recorreremos la pantalla de New Job panel por panel y conectaremos cada parámetro con los conceptos anteriores.
6.1 Panel JOB: proyecto, GPU y trigger word
El panel JOB es simple, pero importante:
Training Name - la etiqueta del job; se convierte en parte del nombre de carpeta/archivo de salida. Mucha gente incluye el modelo y el trigger word, por ejemplo flux_dev_skschar_v1.
GPU ID - en una instalación local selecciona tu GPU física. En el cloud AI Toolkit de RunComfy, déjalo por defecto: el tipo real de GPU (H100/H200, etc.) se elige después al lanzar el job desde Training Queue.
Trigger Word - si pones una palabra aquí, AI Toolkit la prepondrá a todas las captions del dataset durante el entrenamiento (sin modificar permanentemente tus archivos). Es útil si tus captions no tienen un trigger consistente. Usa un token inventado que el modelo base no conozca (p. ej. sks_char_neo) para que no compita con significados existentes.
6.2 Panel MODEL: elegir y cargar el modelo base
Model Architecture es donde eliges en la lista (Flux, Z‑Image Turbo, Wan 2.2, Qwen‑Image, etc.). Al elegir uno:
- AI Toolkit carga un preset adaptado a ese modelo: tipo de sampler, defaults del schedule de ruido y, a veces, rutas de adaptadores.
Name or Path es el id de Hugging Face (repo id) del checkpoint base.
- En la mayoría de builds, elegir
Model Architecturerellena automáticamente el repo id recomendado: déjalo tal cual a menos que tengas un motivo. - Si lo sobrescribes, usa el formato:
org-o-user/model-name(opcionalmenteorg-o-user/model-name@revision).
Si el modelo es gated (Flux.1‑dev, Flux.2‑dev, algunas variantes de Wan, etc.), debes aceptar la licencia y configurar HF_TOKEN en un archivo .env para que AI Toolkit pueda descargarlo.
Según el modelo, también verás flags extra como Low VRAM o Layer Offloading aquí o en paneles cercanos:
Low VRAMcomprime y hace offload de partes del modelo para que encaje en GPUs más pequeñas, a costa de velocidad.Layer Offloadingmueve agresivamente partes entre CPU y GPU; úsalo solo si Low VRAM no alcanza, porque puede ser más lento y a veces menos estable.
Estos switches no cambian qué aprende la LoRA; solo cambian cómo AI Toolkit empaqueta el modelo base en memoria, intercambiando velocidad/estabilidad por capacidad de encajar en tu hardware.
6.3 Panel QUANTIZATION: precisión vs VRAM
El panel QUANTIZATION suele incluir:
Transformer(p. ej.float8,6-bit,4-bit,3-bit ARA),Text Encoder(típicamentefloat8 (default)).
Qué significa:
- El transformer es la parte grande que procesa latentes de imagen y la cross‑attention con el texto.
- El text encoder convierte prompts en embeddings de tokens.
Cuantizar el transformer:
float8es lo más seguro y preciso; usa más VRAM, con mínima pérdida de calidad.6-bites un gran punto medio para GPUs de 24 GB: leve pérdida por un ahorro decente.4-bity3-bit ARAson más agresivos;3-bit ARAcombina pesos a 3 bits con un accuracy recovery adapter que recupera parte de la precisión.
Cuantizar el text encoder:
- Los text encoders son mucho más pequeños, por eso suelen quedarse en
float8. - Algunos setups avanzados congelan o descargan el text encoder (ver
Unload TEyCache Text Embeddingsmás adelante); en ese caso su cuantización importa menos.
En la práctica:
- En una GPU de 24 GB ajustando Flux o Wan,
Transformer = 6-bit,Text Encoder = float8es un punto de partida muy viable. - Si tienes 48 GB+, mantén
float8en todo salvo que necesites memoria extra para resoluciones muy altas o muchos frames.
6.4 Panel TARGET: tipo de LoRA y rank
El panel TARGET describe el adaptador que estás entrenando:
Target Type- normalmenteLoRA. Algunas builds también muestranLoKr(Low‑Rank Kronecker), una variante más eficiente en parámetros pero no soportada universalmente. Para máxima compatibilidad—especialmente si planeas usar tu LoRA en distintos setups de ComfyUI o Automatic1111—LoRAes el default seguro.Linear Rank- el rank LoRA del que hablamos: más rank = más capacidad, archivo mayor, más VRAM y mayor riesgo de overfitting con datasets pequeños. Intuición para diffusion‑transformers modernos (Flux, Z‑Image Turbo, Wan 2.x, Qwen‑Image, OmniGen2, Chroma, Lumina2, etc.):- 8–16: compacto y generaliza bien. Buen rango inicial para bases fuertes como Z‑Image Turbo y muchos setups de SDXL/SD 1.5, especialmente con datasets pequeños (5–40 imágenes o pocos clips).
- 16–32: rango típico para LoRAs de estilo/personaje con más capacidad en modelos como Flux, Wan 2.x o Qwen. En la práctica, suele ser mejor empezar en 16 y subir a 32 solo si tienes datos suficientes y la LoRA sigue quedándose corta.
- 64+: rara vez necesario. Solo tiene sentido si tienes un dataset grande y diverso, buscas un cambio de estilo/dominio muy fuerte y tienes VRAM de sobra; la mayoría de recetas publicadas no lo necesitan.
En SD 1.5 / SDXL también puedes ver Conv Rank (rank de convolución), que enfatiza más texturas y estilo. Un Conv Rank alto acentúa cómo se renderiza (trazo, patrón de ruido), mientras que Linear Rank tiende a afectar más qué aparece.
6.5 Panel SAVE: precisión de checkpoint y frecuencia de guardado
SAVE controla cómo se escriben tus checkpoints de LoRA:
Data TypeBF16(bfloat16) es un gran default: estable y eficiente.FP16es un poco más preciso, pero casi nunca se nota en LoRAs típicas.FP32es muy preciso y muy pesado; úsalo solo si sabes que lo necesitas.Save EveryNúmero de steps entre checkpoints. Si pones
Save Every = 250ySteps = 3000, podrías tener 12 checkpoints (pero mira el campo siguiente). Normalmente querrás queSave Everycoincida conSample Everyen el panel SAMPLE para que cada checkpoint tenga previews correspondientes.Max Step Saves to KeepCuántos checkpoints conservar en disco. Si es
4, solo se guardan los 4 más recientes; los anteriores se borran para ahorrar espacio.
6.6 Panel TRAINING: optimizer, steps y schedule de ruido
Batch Size y Gradient Accumulation
Como se explicó antes:
Batch Size= imágenes/clips por forward pass.Gradient Accumulation= cuántos passes acumulas antes de aplicar una actualización.
Si vas justo de VRAM, podrías hacer:
Batch Size = 1,Gradient Accumulation = 4→ se comporta como batch 4, pero requiere cuatro veces más passes.
Asegúrate de que el batch efectivo no sea mayor que tu dataset; nunca quieres simular 16 imágenes por step si solo tienes 10 en total.
Steps
Es el total de steps del optimizador, no “epochs”.
- Para muchas LoRAs de Flux / Qwen / Z‑Image Turbo / OmniGen2 / Chroma (y muchas LoRAs de Wan 2.x), 2000–3000 steps es una base común con datasets de 20–50 imágenes o clips pequeños.
Suele ser mejor entrenar un poco menos y quedarte con un checkpoint intermedio bueno que empujar a números absurdos esperando que el último sea el mejor.
Optimizer (Optimizer)
Normalmente verás:
AdamW8Bit– AdamW con estados del optimizador a 8 bits. Ahorra memoria y funciona muy bien con datasets pequeños o medianos.Adafactor– más eficiente en memoria, escala a datasets enormes, pero puede ser más delicado de ajustar.
Para la mayoría de LoRAs en AI Toolkit, AdamW8Bit es la opción correcta salvo que estés teniendo OOM por los estados del optimizador.
Learning Rate
Un buen default es 0.0001. Si:
- la LoRA casi no aprende, prueba
0.00015–0.0002, - ves overfitting rápido o samples ruidosos, prueba
0.00005–0.00008.
Evita saltar directamente a valores altos como 0.0005 salvo que una guía específica lo recomiende (p. ej. algunas configs turbo experimentales).
Weight Decay
Como se dijo antes, 0.0001 es un default “suave” y seguro. Si tu LoRA memoriza claramente imágenes incluso con steps moderados, subirlo un poco puede ayudar.
Timestep Type y Timestep Bias
Estos dos parámetros definen qué timesteps se priorizan en el entrenamiento.
Timestep Typepuede ser:Linear– timesteps uniformes a lo largo de todo el rango de ruido.Sigmoid– concentra timesteps intermedios (bien para caras/personajes).Weightedu otros presets – schedules específicos por modelo.Timestep Biaspuede ser:Balanced– sin sesgo adicional; sigue la distribución deTimestep Type.High Noise– sesgo hacia timesteps tempranos (latentes muy ruidosos); enfatiza estructura global y composición.Low Noise– sesgo hacia timesteps tardíos (casi limpio); enfatiza texturas finas.
Para LoRAs de personaje en modelos FlowMatch, Weighted + Balanced es un gran punto de partida: la LoRA aprende donde el modelo está “a mitad de denoise”, lo que suele encajar con lo que ves en inferencia.
Sampler / tipo de ruido en entrenamiento
En modelos SD antiguos, AI Toolkit usa samplers DDPM; en modelos FlowMatch como Flux, Z‑Image Turbo y Wan 2.x, usa samplers FlowMatch por defecto. Normalmente no necesitas cambiarlo: el preset ajusta internamente el sampler y el schedule.
EMA (Exponential Moving Average)
Use EMAactiva si AI Toolkit mantiene una copia suavizada de los pesos LoRA a lo largo del tiempo.- Si está activado,
EMA Decay(p. ej. 0.99) controla qué tan rápido la EMA olvida actualizaciones antiguas: - 0.9 = reacciona rápido, menos suave.
- 0.99 = más suave.
- 0.999+ = muy suave pero tarda en adaptarse.
EMA puede mejorar la estabilidad con datasets pequeños, pero consume memoria extra. Si vas justo de VRAM, es razonable dejar Use EMA apagado salvo que una guía lo recomiende.
Optimizaciones del Text Encoder
Unload TE– descarga el text encoder de la VRAM entre steps. Ahorra memoria, pero obliga a recargarlo a menudo (puede ser lento en discos mecánicos).Cache Text Embeddings– ejecuta el text encoder una vez por caption y guarda los embeddings; luego los reutiliza sin recalcular. Cambia espacio en disco por velocidad/VRAM.
Para la mayoría de flujos:
- Si tienes VRAM suficiente: deja ambos apagados.
- Si vas justo de VRAM pero tienes SSD rápido y tus captions son esencialmente estáticas (sin DOP, sin reescritura dinámica del trigger, sin dropout “dependiente del step”): activa
Cache Text Embeddingspara codificar cada caption una vez y liberar el text encoder. - Si usas funciones que modifican prompts en cada step —por ejemplo Differential Output Preservation (DOP), sustitución dinámica del trigger en captions, o setups que dependen del comportamiento del dropout por step— deja
Cache Text Embeddingsen OFF, para que el text encoder recodifique el prompt real en cada batch. - Usa
Unload TEsolo cuando sea imprescindible (p. ej. LoRAs muy “trigger‑only” donde las captions se ignoran), ya que desactiva en la práctica el entrenamiento basado en captions.
6.7 Panel ADVANCED / Regularization: DOP y Differential Guidance
Differential Output Preservation (Differential Output Preservation)
Al activarlo, estás pidiendo a AI Toolkit:
- Ejecutar tanto el modelo base como el modelo con LoRA sobre un conjunto de imágenes de “regularización”.
- Añadir un término de pérdida que penaliza a la LoRA por cambiar salidas que deberían mantenerse.
Controles:
DOP Loss Multiplier– cuánto pesa esta pérdida de preservación; 0.1–1.0 es típico. Piensa en 1.0 como “esto importa mucho”.DOP Preservation Class– una etiqueta de texto con lo que quieres proteger, como"person"o"truck". Ayuda al text encoder a interpretar las captions de regularización.
Para usar DOP de forma efectiva debes:
- Tener al menos un dataset marcado como
Is Regularizationen el panel DATASETS. - Poner captions a esas imágenes sin el trigger word (son ejemplos “genéricos”).
Casos buenos para DOP:
- Tu LoRA de personaje hace que toda persona se parezca a tu sujeto.
- Tu LoRA de producto convierte cualquier logo en tu marca, incluso sin trigger.
Blank Prompt Preservation es una variante donde la regularización se ejecuta con prompts vacíos, animando a la LoRA a no alterar el comportamiento básico “sin prompt”.
Do Differential Guidance (Do Differential Guidance)
Se usa principalmente para LoRAs de Z‑Image Turbo:
- AI Toolkit compara salidas del modelo base y del modelo adaptado y usa una señal de diferencia para reforzar qué debería cambiar la LoRA.
Differential Guidance Scalecontrola cuánto influye esa diferencia en las actualizaciones; la guía de Hugging Face sobre Z‑Image Turbo incluye valores de ejemplo que funcionan bien.
Activar Differential Guidance:
- ayuda a que las LoRAs de Z‑Image Turbo se adapten a fondo pese a la destilación de pocos pasos,
- suele funcionar mejor junto con caché de embeddings de texto y learning rates/steps bien ajustados.
Para modelos no turbo (Flux, Qwen, SDXL), normalmente se deja apagado, salvo que un tutorial específico lo recomiende.
6.8 Panel DATASETS: lo que realmente entrenas
Cada bloque de dataset en el panel DATASETS corresponde a un dataset de la página Datasets.
Campos clave:
Target Dataset– a qué dataset se refiere este bloque.LoRA Weight– importancia relativa frente a otros datasets del mismo job.Default Caption– caption por defecto cuando una imagen no tiene archivo de caption.Caption Dropout RateNum Frames(para modelos de vídeo)Cache LatentsIs RegularizationFlip X,Flip YResolutions(buckets de 256–1536)
Qué significan en la práctica:
- Mezclar datasets con
LoRA WeightSi tienes varios datasets (p. ej. “primeros planos” y “cuerpo entero”), puedes equilibrarlos con
LoRA Weight. Un dataset con peso 2 se muestreará aproximadamente el doble que uno con peso 1. Default CaptionyCaption Dropout RateDefault Captiones útil si olvidaste captionar algunas imágenes y quieres darles una descripción mínima (incluido el trigger).Caption Dropout Rateelimina o vacía captions aleatoriamente en parte de los ejemplos:- Cerca de 0 → la LoRA aprende una fuerte dependencia de la caption.
- Cerca de 1 → la LoRA se comporta más como un modificador de “estilo siempre activo”.
Is RegularizationMárcalo cuando el dataset sea para DOP/regularización, no como datos principales. Estas imágenes no deberían incluir el trigger y normalmente cubren ejemplos genéricos (otras personas/camiones, etc.).
Cache LatentsSi está activado, AI Toolkit precalcula los latentes y los guarda; luego no necesita re‑codificar cada imagen en cada step. Acelera el entrenamiento, pero dispara el uso de disco: cientos o miles de imágenes a alta resolución pueden ocupar decenas de GB. Luego tendrás que limpiar esos latentes manualmente si no quieres que persistan.
Num Frames(solo vídeo)En LoRAs de Wan/HiDream, decide cuántos frames se muestrean por clip durante el entrenamiento. Más frames = mejor aprendizaje de movimiento pero más VRAM; los presets suelen estar bien ajustados.
Flip XyFlip YAumentos automáticos:
Flip X(horizontal) duplica efectivamente el dataset, pero refleja todo, incluyendo rasgos asimétricos y texto.Flip Y(vertical) rara vez tiene sentido en imágenes realistas.ResolutionsDefine qué tamaños de bucket usa AI Toolkit. Solo reduce imágenes para encajarlas en el bucket; nunca hace upscale. Si activas 768 y 1024:
- 900×900 → se reduce a 768×768.
- 1200×1200 → se reduce a 1024×1024.
6.9 Panel SAMPLE: ver la LoRA aprender en tiempo real
El panel SAMPLE define cómo AI Toolkit genera previews durante el entrenamiento.
Campos principales:
Sample Every– cuántos steps entre previews.Sampler–FlowMatchoDDPMsegún el modelo.Width/Height– resolución del preview.SeedyWalk Seed.Guidance Scale.Num FramesyFPS(para previews de vídeo).Sample Steps.- Toggles avanzados:
Skip First Sample,Force First Sample,Disable Sampling.
Debajo, puedes añadir varios Sample Prompts, cada uno con su texto, resolución/seed opcionales, LoRA Scale y, si hace falta, una imagen de control.
Cómo se conecta con el entrenamiento:
Sample EveryvsSave Every: lo ideal es que coincidan para que cada checkpoint tenga su set de previews. Si cambias uno, cambia el otro.Sampler: quédate con el recomendado por el preset del modelo:FlowMatchpara Flux, Z‑Image Turbo, Wan, OmniGen2, etc.DDPMpara SD 1.5 / SDXL.- Resolución/steps del preview
- 1024×1024 con
Sample Steps = 20–25da previews claras sin ser demasiado lento para la mayoría de modelos de imagen. - En vídeo, subir
Num Frames/FPSmejora realismo pero es pesado; los presets suelen estar optimizados. - Seeds y
Walk Seed - Un
Seedfijo conWalk Seedapagado significa que cada checkpoint usa exactamente el mismo ruido, así comparas directamente la evolución. - Activar
Walk Seedincrementa el seed por prompt y añade variedad; es útil para explorar, pero complica comparar step a step.
En práctica, mucha gente:
- mantiene
Sample Every = Save Every = 250, - usa 3–6 prompts para casos típicos,
- deja al menos un prompt con seed fijo para seguir la convergencia.
7. Flujo rápido: entrena una LoRA utilizable en Ostris AI Toolkit
Esta sección es intencionalmente compacta. Ya sabes qué significa cada ajuste por las secciones 5–6; aquí tienes el flujo más corto que suele producir una buena LoRA en Ostris AI Toolkit sin retocar diez cosas a la vez.
7.1 Prepara tus datos (lo que no se arregla “tocando settings”)
- Empieza con un dataset pequeño y limpio (LoRAs de imagen: ~20–50 buenas imágenes; LoRAs de vídeo: unos pocos clips cortos de alta calidad).
- Elige un trigger token único (una palabra inventada) y mantenlo consistente en captions, o usa la inyección de trigger a nivel de job.
- Busca variedad, no volumen: ángulos, luces, fondos y composiciones distintas, manteniendo constante el concepto central.
Opcional (solo si esperas “bleeding”):
- Prepara un dataset de regularización (misma clase, otras identidades/objetos) sin tu trigger token; solo lo usarás si más tarde activas DOP.
7.2 Crea un dataset en Ostris AI Toolkit
En la UI de Ostris AI Toolkit:
- Ve a Datasets → New Dataset.
- Sube tus imágenes/clips + captions (o metadata).
- Sanity check rápido antes de entrenar:
- el conteo es correcto,
- se detectan captions (o estás usando a propósito default caption / inyección de trigger),
- las resoluciones tienen sentido para los buckets elegidos.
7.3 Crea un nuevo job: parte de los presets y cambia solo 5 cosas
Abre New Job y elige la familia correcta (o sigue la receta específica si entrenas FLUX.2, Z‑Image Turbo, Qwen‑Image‑Edit o vídeo Wan).
Ahora céntrate solo en estos controles de “alto impacto”:
1) Comportamiento del trigger
- Si tus captions ya incluyen el trigger: deja el trigger del job vacío.
- Si no: define Trigger Word para que se anteponga automáticamente.
2) Capacidad de la LoRA
- Empieza con Rank 16 para la mayoría de conceptos de personaje/estilo.
- Sube a Rank 32 solo si la LoRA sigue siendo demasiado débil tras un entrenamiento razonable (o si tienes más datos y variedad).
3) Duración del entrenamiento
- Empieza con 2 000–3 000 steps para una LoRA típica de 20–50 imágenes.
(El objetivo es encontrar el mejor checkpoint, no “terminar el máximo”.)
4) Learning rate
- Usa un default conservador como 0.0001 salvo que una guía específica diga lo contrario.
5) Buckets de resolución (y la realidad de tu VRAM)
- Elige un bucket “cómodo” que tu GPU aguante de forma consistente (típico: 768 o 1024 en modelos modernos de imagen).
- Añade buckets más altos solo si tienes margen de VRAM y sabes que los necesitas.
Dos hábitos pequeños que ahorran horas:
- Define Save Every = Sample Every (p. ej. cada 250 steps) para que cada checkpoint tenga previews equivalentes.
- Usa al menos un sample prompt con seed fijo para comparar checkpoints “manzana con manzana”.
7.4 Sampling que realmente te ayuda a elegir el checkpoint correcto
En vez de muchos prompts, usa tres: diagnostican el 90% de los problemas:
- Prompt de activación (con trigger): demuestra que la LoRA “se enciende”.
- Prompt de generalización (con trigger, atributos distintos): comprueba flexibilidad más allá de las captions del training set.
- Prueba de fuga (sin trigger): comprueba si la LoRA secuestra el modelo base.
Si la prueba de fuga empieza a parecerse a tu concepto, ya pasaste el punto dulce: elige un checkpoint anterior.
7.5 Diagnóstico rápido: cambia una perilla, no diez
Cuando algo no va bien, ajusta solo una de estas cosas cada vez:
- Demasiado débil / apenas activa → sube primero los steps, luego considera el rank.
- Demasiado fuerte / overfitting / fuga sin trigger → usa primero un checkpoint anterior, luego reduce steps (o rank).
Si aún se filtra: activa DOP con un dataset de regularización adecuado.
- OOM / VRAM inestable → baja primero el bucket/resolución, luego reduce rank; solo después recurre a opciones más agresivas de ahorro de memoria.
7.6 Exporta y usa tu LoRA
Desde Training Queue o desde la carpeta de salida de AI Toolkit:
- Descarga el mejor checkpoint (un archivo
.safetensorsde LoRA). - Si estás usando RunComfy Cloud AI Toolkit, esos archivos también se guardan en tu página de Custom Models, donde puedes copiar el link del modelo, descargarlos y probarlos en el playground o en ComfyUI.
8. Troubleshooting del entrenamiento LoRA en AI Toolkit: errores comunes y soluciones
Dataset no encontrado o vacío
Síntomas:
- El job termina inmediatamente.
- Los logs mencionan “no images found” o algo parecido.
Comprobaciones:
- En Datasets, confirma que el dataset muestra el conteo esperado.
- Asegúrate de que
Target Dataseten el job apunta al dataset correcto. - Si usas metadata JSONL, verifica que el archivo existe y está bien formateado.
Descarga del modelo base / errores de Hugging Face
Síntomas:
- Errores 403/404 al descargar el modelo.
- Logs indicando falta de acceso.
Arreglos:
- Acepta la licencia en Hugging Face si el modelo es gated (Flux dev, algunas variantes de Wan, etc.).
- Añade
HF_TOKEN=your_read_tokenen un archivo.enven la raíz de AI Toolkit.
CUDA out‑of‑memory durante el entrenamiento o el sampling
Síntomas:
- Errores “CUDA out of memory” al iniciar el job o al generar samples.
Opciones:
- En DATASETS:
- Desactiva resoluciones altas (1280, 1536) y quédate en 768/1024.
- En TARGET:
- Baja
Linear Rank(32 → 16). - En QUANTIZATION / MODEL:
- Activa
Low VRAM. - Usa cuantización más agresiva del transformer (float8 → 6‑bit).
- En TRAINING:
- Reduce
Batch SizeoGradient Accumulation. - En SAMPLE:
- Baja resolución y
Sample Steps, - Reduce
Num Framesen previews de vídeo.
Si entrenas en RunComfy Cloud AI Toolkit, la salida fácil es subir el job a una GPU con más VRAM y relanzarlo, a menudo reduciendo algunas de las opciones agresivas de cuantización/Low VRAM y usando una config más simple y rápida. Con más VRAM y menos “hacks” de memoria, cada step es más rápido y puedes iterar por más checkpoints en lugar de perder tiempo micromanejando la memoria.
La LoRA sobreajusta y secuestra el modelo base
Síntomas:
- Todas las personas se parecen a tu sujeto.
- Todos los camiones se parecen a tu producto específico incluso sin trigger word.
Mitigaciones:
- Baja
Linear Rank. - Usa un checkpoint anterior (p. ej. 2000 steps en vez de 3000).
- Sube ligeramente
Weight Decay. - Añade un dataset de regularización de la misma clase (
Is Regularization= on). - Activa
Differential Output Preservationcon unDOP Loss Multiplierrazonable (p. ej. 0.2–0.5) y unaDOP Preservation Classadecuada ("person","truck", etc.).
¿Listo para comenzar el entrenamiento?

