Entrenar una LoRA en FLUX.2 [dev] es muy diferente a entrenar modelos SD antiguos. El Entrenamiento LoRA FLUX.2-dev requiere entender que FLUX.2 [dev] combina un enorme transformador de flujo rectificado con 32B parámetros, un codificador de texto Mistral de 24B y un autoencoder de alta calidad, manejando texto-a-imagen y edición de imágenes en un solo checkpoint. Esta guía abarca:
- Qué hace especial a FLUX.2 [dev]
- Cómo estas decisiones de diseño afectan el entrenamiento LoRA
- Cómo configurar AI Toolkit para diferentes niveles de hardware
- Cómo configurar datasets, triggers y parámetros para obtener el estilo / personaje / comportamiento de edición que deseas
Este artículo es parte de la serie de entrenamiento LoRA de AI Toolkit. Si eres nuevo en Ostris AI Toolkit, comienza con la visión general del entrenamiento LoRA de AI Toolkit antes de profundizar en cómo entrenar una LoRA para FLUX.2-dev.
Tabla de contenidos
- 1. Entendiendo FLUX.2 [dev] para entrenamiento LoRA
- 2. ¿Qué tipo de FLUX.2 LoRA estás entrenando realmente?
- 3. Detalles específicos de FLUX.2 que cambian la configuración LoRA
- 4. Requisitos de hardware y VRAM para entrenamiento LoRA FLUX.2
- 5. Diseñando datasets para FLUX.2 LoRA
- 6. Paso a paso: configurar entrenamiento LoRA FLUX.2 dev en AI Toolkit
- 7. Depurar resultados LoRA FLUX.2 y mejorar calidad
- 8. Usando tu FLUX.2 LoRA en inferencia
1. Entendiendo FLUX.2 [dev] para entrenamiento LoRA
Antes de tocar los controles, ayuda entender qué estás afinando.
1.1 Arquitectura de alto nivel
De la tarjeta oficial del modelo FLUX.2-dev y el anuncio de Black Forest Labs:
- Modelo base
FLUX.2 [dev]es un transformador de flujo rectificado de 32B parámetros (un modelo de flujo latente estilo DiT) entrenado desde cero, no una continuación de FLUX.1. Combina generación texto-a-imagen y edición de imágenes (imagen única y multi-referencia) en un solo checkpoint. - Codificador de texto
FLUX.2 [dev] usa Mistral Small 3.1 / 3.2 – 24B como codificador de texto vision-language. Son otros 24B parámetros sobre los 32B del DiT. Con precisión normal, esto solo consume una parte enorme de VRAM y juega un rol central en el comportamiento del modelo.
- Autoencoder (VAE)
El modelo usa un nuevo AutoencoderKLFlux2 con 32 canales latentes (FLUX.1 usaba 16). Está diseñado para edición de alta resolución y preservación de texturas finas, por eso FLUX.2 puede hacer ediciones nítidas de 1024×1024.
- Generación + edición unificada
La misma arquitectura maneja texto-a-imagen puro, edición de imagen única y edición multi-referencia (hasta ~10 imágenes de referencia). No hay una rama separada "solo edición"; todo es una sola red.
- Guidance destilado
FLUX.2 [dev] es un modelo guidance-destilado: no hay guidance clásico libre de clasificador con pasadas separadas "condicional" e "incondicional". El "guidance" está incorporado en una sola pasada forward.
Lo que esto significa para LoRA:
- El transformador central es enorme.
Debido a que FLUX.2 [dev] usa un transformador fusionado de alta capacidad, el rango LoRA debe elegirse cuidadosamente. Rangos muy bajos (4–8) pueden apenas mover la aguja. La presión de VRAM está dominada por el transformador y el codificador de texto.
- El codificador de texto es pesado y central para el comportamiento.
El VLM Mistral de ~24B es responsable de cómo se entienden los prompts y cómo se interpretan las instrucciones de edición.
- Los mismos pesos manejan T2I y edición.
Si empujas demasiado una LoRA, arriesgas cambiar tanto el comportamiento de texto-a-imagen como de edición de imagen.
- El guidance es especial porque el modelo es guidance-destilado.
Normalmente entrenas con
guidance_scale = 1. Durante inferencia usarásguidance_scalealrededor de 2–4.
2. ¿Qué tipo de FLUX.2 LoRA estás entrenando realmente?
Con FLUX.2 [dev], primero deberías decidir qué quieres que haga el adaptador. El modelo base ya es fuerte en edición multi-referencia y seguimiento de prompts complejos, así que solo necesitas una LoRA cuando quieres algo persistente que el modelo base no puede hacer de forma confiable por sí solo.
Objetivos comunes al entrenar LoRA Flux 2 dev:
- LoRA de estilo (T2I + edición)
Enseñar a FLUX.2 a usar un estilo de pintura específico, gradación de color o look de render cuando un trigger está presente.
- LoRA de personaje / identidad
Modelar una persona específica, avatar, mascota o línea de productos con rostros/características consistentes.
- LoRA de objeto / prop / marca
Capturar productos específicos, logos, props o formas con restricciones estrictas de geometría o marca.
- LoRA de instrucción / edición
Cambiar comportamiento en lugar de estilo: por ejemplo, "convierte cualquier retrato en boceto de acuarela", "crea una versión de plano", o instrucciones de edición estructuradas con pares antes/después.
Saber cuál de estos objetivos persigues ayuda a decidir dataset, rango, Differential Output Preservation y configuraciones de guidance.
3. Detalles específicos de FLUX.2 que cambian la configuración LoRA
3.1 LoRA en un transformador fusionado (escalado de rango)
FLUX.2 [dev] fusiona proyecciones de atención y MLP en matrices muy anchas comparadas con SD1.5/SDXL clásico. Esto significa:
- Rangos muy bajos (4–8) a menudo se sienten demasiado débiles.
- Para LoRAs de estilo o personaje en FLUX.2 [dev], rango 32 es un buen valor por defecto cuando VRAM lo permite.
- Si VRAM es ajustado o el estilo es simple, puedes usar rango 8–16 y menos pasos.
- Para marcas o identidades extremadamente complejas, rango 32–64 puede ayudar, pero el overfitting se vuelve más probable.
En el FLUX.2 [dev] LoRA entrenamiento, el modelo generalmente se beneficia de rangos algo más altos que modelos antiguos, pero pagas por ello en VRAM y riesgo de overfitting.
3.2 Modelo guidance-destilado: entrenando con guidance_scale = 1
Debido a que FLUX.2 [dev] es guidance-destilado, la intuición usual de Stable Diffusion de "CFG 7–8" no aplica.
- Entrenamiento: configura
guidance_scale = 1. - Inferencia: una
guidance_scaleen el rango 2–4 funciona bien. - Valores más bajos (≈2) producen salidas más sueltas y creativas.
- Valores más altos (≈3.5–4) son más literales y siguen el prompt más de cerca.
3.3 El codificador de texto es enorme (y por qué importa el caching de embeddings)
El Mistral 24B VLM usado como codificador de texto de FLUX.2 no es un módulo secundario pequeño. A precisión normal son alrededor de 24GB de parámetros solo.
En AI Toolkit, los patrones usuales son:
- Si tu setup de entrenamiento usa una caption fija por imagen y no usas Differential Output Preservation o reescritura de prompts en tiempo real: Activa Cache Text Embeddings para que el toolkit codifique todas las captions una vez y reutilice esos embeddings.
- Si usas Differential Output Preservation (DOP) o cualquier cosa que modifique prompts cada paso: No puedes cachear embeddings de texto.
El trade-off es simple: cachear embeddings es una gran ganancia para captions estáticas, pero cuando tu entrenamiento depende de cambiar prompts en tiempo de ejecución, debes desactivar el cache.
3.4 Autoencoder y resolución
FLUX.2 usa un AutoencoderKLFlux2 dedicado diseñado para trabajo 1024×1024+:
- Usa 32 canales latentes, lo que da mejor detalle y fidelidad de edición que VAEs antiguos de 16 canales, a costo de más VRAM.
- En la práctica, entrenar LoRAs FLUX.2 a resolución 768–1024 captura la mayoría del beneficio.
Los buckets de resolución de AI Toolkit te permiten listar múltiples resoluciones (por ejemplo [768, 896, 1024]). Las imágenes se redimensionan automáticamente al bucket más cercano.
4. Requisitos de hardware y VRAM para entrenamiento LoRA FLUX.2
FLUX.2 [dev] consume mucha memoria. Las configuraciones de referencia de Diffusers reportan que ejecutar el DiT completo + codificador de texto en bf16 todavía toma alrededor de 62 GB VRAM en un H100. El entrenamiento LoRA es más pesado que inferencia porque también necesitas memoria para gradientes y estados del optimizador.
4.1 Configuraciones recomendadas por nivel de VRAM
Nivel A — GPU 16–24 GB (ej. 4070 Ti, 4080, 4090)
- Lo que es realista
En este nivel, el fine-tuning LoRA FLUX 2 dev es posible pero ajustado. Estás principalmente limitado a LoRAs pequeñas de estilo o personajes simples a alrededor de 896–1024 px en el lado largo, con Batch Size = 1 y configuraciones agresivas de ahorro de memoria.
- Configuraciones clave de UI
En el panel MODEL: Low VRAM ON y Layer Offloading ON.
En el panel QUANTIZATION: Transformer en
float8 (default)y Text Encoder enfloat8 (default).En el panel TRAINING: Batch Size = 1 y usar Gradient Accumulation si necesitas un batch efectivo más grande.
En el panel DATASETS: preferir resolución principal de 896–1024.
Nivel B — GPU 32–48 GB (ej. RTX 6000 Ada, A6000, algunos A100)
- Lo que es realista
Este es el primer nivel donde AI Toolkit FLUX.2 dev LoRA se siente cómodo. Puedes entrenar LoRAs de estilo y personaje de calidad de producción a 1024×1024, con 20–60+ imágenes y 1000–3000 pasos.
- Configuraciones clave de UI
En MODEL: Low VRAM ON por defecto; Layer Offloading OFF a menos que sigas teniendo OOM.
En QUANTIZATION: ambos en
float8 (default).En TRAINING: Batch Size = 1–2, Steps ≈ 1000–3000, Learning Rate = 0.0001, Linear Rank = 32 como un buen valor por defecto.
Nivel C — GPU 64–96+ GB (ej. H100, H200 en RunComfy)
- Lo que es realista
Aquí finalmente tienes espacio para respirar: 1024×1024 con Batch Size = 2–4, buckets de resolución más grandes o múltiples, y Differential Output Preservation ON por defecto son todos directos.
- Configuraciones clave de UI
En MODEL: puedes dejar Low VRAM OFF y Layer Offloading OFF.
En QUANTIZATION: sigue siendo eficiente mantener ambos en
float8 (default).En TRAINING: Batch Size = 2–4, Linear Rank = 32–64 y Differential Output Preservation ON.
4.2 AI Toolkit local vs. AI Toolkit en la nube en RunComfy
Puedes ejecutar este flujo de trabajo de FLUX.2 LoRA de dos maneras:
- Localmente con AI Toolkit – instala AI Toolkit desde el repositorio GitHub de AI Toolkit y usa tu propia GPU.
- AI Toolkit en la nube en RunComfy – abre el AI Toolkit en la nube en RunComfy y entrena en GPUs H100 (80 GB) o H200 (141 GB) sin ninguna instalación local.
5. Diseñando datasets para FLUX.2 LoRA
5.1 ¿Cuántas imágenes?
De ejemplos FLUX disponibles y entrenamientos LoRA similares:
- LoRA de estilo simple – alrededor de 15–30 imágenes curadas con estilo consistente usualmente funciona bien.
- LoRA de personaje / identidad – alrededor de 20–60 imágenes con vistas claras, ángulos variados e iluminación.
- LoRA de edición / instrucción – a menudo datasets de pares con 50–200 triples (fuente, objetivo, instrucción).
5.2 Estrategia de captioning: lo que no escribes importa
Lo que no describes en la caption está "libre" para que la LoRA lo adjunte a tu trigger.
Para una LoRA de estilo, normalmente quieres:
- Captions que describan qué hay en la imagen (persona, pose, escena, objetos).
- Captions que no describan pinceladas, colores, medio o estilo de composición.
Para una LoRA de personaje:
- Usa un trigger corto y único (ej.
midnight_tarot) y una palabra de clase (person,woman,man,character, etc.). - Las captions pueden ser cosas como
[trigger] a woman standing in a market,[trigger] a close-up portrait of a woman in a red jacket, etc.
5.3 Differential Output Preservation (DOP)
Differential Output Preservation es una estrategia de regularización usada en AI Toolkit que compara:
- La salida del modelo base sin LoRA, y
- La salida con la LoRA activa,
y penaliza a la LoRA por cambiar cosas cuando no hay trigger presente.
En la práctica:
- Eliges una palabra trigger (por ejemplo
midnight_tarot) y una clase de preservación (por ejemplophoto). - Las captions se escriben usando un placeholder
[trigger].
En tiempo de entrenamiento, AI Toolkit genera internamente dos versiones de cada caption:
midnight_tarot a woman sitting on a park bench...– esta ruta entrena la LoRA.photo a woman sitting on a park bench...– esta ruta enseña al modelo qué hacer cuando el trigger está ausente.
6. Paso a paso: configurar entrenamiento LoRA FLUX.2 [dev] en AI Toolkit
6.1 Configuración inicial única
- Instala AI Toolkit desde el repositorio GitHub y ejecuta la UI (
npm run build_and_starten la carpetaui/). - Alternativamente, abre el AI Toolkit en la nube en RunComfy y comienza desde ahí (no necesita instalación local).
6.2 Prepara tu dataset en el Toolkit
- Reúne imágenes para tu tipo de LoRA elegido (estilo, personaje, objeto, instrucción).
- Colócalas en una carpeta dentro del directorio de datasets de AI Toolkit, por ejemplo:
/ai-toolkit/datasets/flux2_midnight_tarot/ - Añade archivos de caption
.txtcon el mismo nombre base que cada imagen. - Usa
[trigger]en las captions donde debe aparecer tu palabra trigger.
6.3 Crear un nuevo trabajo de entrenamiento
En la UI de AI Toolkit, crea un nuevo trabajo y configura cada panel como sigue.
6.3.1 Panel JOB – nombre, GPU y palabra trigger
En el panel JOB:
- Training Name
Elige cualquier nombre descriptivo, por ejemplo
flux2_midnight_tarot_v1. - GPU ID
En una instalación local esto selecciona tu GPU física (típicamente
0para máquina de una sola GPU).En el AI Toolkit en la nube en RunComfy, déjalo por defecto.
- Trigger Word
Configura esto al token real que quieres escribir en prompts, por ejemplo
midnight_tarot.
6.3.2 Paneles MODEL & QUANTIZATION – modelo base FLUX.2 y precisión
En el panel MODEL:
- Model Architecture
Elige la arquitectura FLUX.2.
- Name or Path
Este es el Hugging Face model id para el checkpoint base, por ejemplo:
black-forest-labs/FLUX.2-dev.FLUX.2 [dev] es un modelo Hugging Face con puerta, así que debes aceptar su licencia y configurar
HF_TOKENen un archivo.env. - Low VRAM
ON en Nivel A y a menudo Nivel B.
OFF en Nivel C (H100/H200).
- Layer Offloading
Activa esto en Nivel A.
En Nivel B y C normalmente OFF.
En el panel QUANTIZATION:
- Transformer
float8 (default)en Nivel B y C. - Text Encoder
float8 (default)para que el codificador de texto Mistral 24B corra en FP8.
6.3.3 Panel TARGET – configuración de red LoRA
En el panel TARGET:
- Target Type
Configura Target Type a
LoRA. - Linear Rank
Usa Linear Rank 32 como un buen valor por defecto para FLUX.2, ya que el transformador fusionado se beneficia de rangos algo más altos.
6.3.4 Paneles TRAINING & SAVE – hiperparámetros centrales y manejo del codificador de texto
En el panel Training:
- Batch Size
Usa
1en GPUs de 24–48GB.Usa
2en GPUs de 64GB+ como H100/H200. - Gradient Accumulation
Comienza con
1.Aumenta a
2–4si VRAM es ajustado. - Steps
Como línea base:
- LoRA de estilo, 15–30 imágenes: 800–2000 pasos.
- LoRA de personaje, 30–60 imágenes: 1000–2500 pasos.
- LoRA de instrucción/edición con 100+ ejemplos: 1500–3000 pasos.
- Optimizer
Usa un optimizador de 8 bits como
AdamW8Bit. - Learning Rate
Comienza con
0.0001.Si ves overshooting o muestras inestables, baja a
0.00005. - Weight Decay
Mantén
0.0001. - Timestep Type
weightedusa el schedule optimizado para FLUX de AI Toolkit y es el valor recomendado por defecto.sigmoidse concentra aún más en el medio del schedule.- Timestep Bias
Balancedmantiene ambas regiones representadas y es la opción más segura.- Loss Type
- Mantén
Mean Squared Error. - EMA
Deja Use EMA OFF para LoRAs.
- Text Encoder Optimizations
- Si no usas Differential Output Preservation y tus captions son estáticas:
Cache Text Embeddings: ONUnload TE: OFF- Si usas DOP o algo que cambia prompts cada batch:
- Ambos OFF.
En el panel SAVE:
- Data Type
BF16. - Save Every y Max Step Saves to Keep
Usa valores por defecto como
Save Every = 250pasos yMax Step Saves = 4.
6.3.5 Regularization & Advanced – Differential Output Preservation y Differential Guidance
Panel Regularization – Differential Output Preservation (DOP)
Si quieres preservar el comportamiento del modelo base cuando tu trigger no está presente, activa Differential Output Preservation.
En el panel Regularization:
- Differential Output Preservation ON.
- Trigger en la misma palabra trigger, ej.
midnight_tarot. - Preservation Class en una palabra neutral como
photo.
En la sección Training → Text Encoder Optimizations:
- Con DOP ON: Cache Text Embeddings OFF y Unload TE OFF.
Panel Advanced – Differential Guidance
En el panel Advanced:
- Do Differential Guidance – activa un objetivo de entrenamiento experimental que exagera la brecha entre la predicción del modelo y el ground-truth.
- Differential Guidance Scale – controla qué tan fuerte es ese "overshoot".
Recomendaciones prácticas
- Para la mayoría de LoRAs FLUX.2, es seguro activar Do Differential Guidance ON con una Differential Guidance Scale de
3. - Si las muestras tempranas se ven inestables, baja la Scale a
2o1o reduce el Learning Rate.
6.3.6 Panel DATASETS – adjuntar datasets y cachear latents
En el panel DATASETS, haz clic en Add Dataset.
Para una LoRA simple de estilo o personaje:
- Target Dataset
Elige el dataset que creaste antes, ej.
flux2_midnight_tarot. - Default Caption
Si no creaste archivos
.txtpor imagen, ingresa un valor por defecto como: [trigger] a portrait of a person - Caption Dropout Rate
Un valor alrededor de
0.05es un buen valor por defecto cuando Cache Text Embeddings está OFF.Si activas Cache Text Embeddings ON, configura esto a 0.
- Settings → Cache Latents
ON. El VAE codificará cada imagen de entrenamiento una vez.
- Settings → Is Regularization
OFF para tu dataset principal.
- Resolutions
- En 16–24GB: comienza con
768y opcionalmente896. - En 32–48GB: usa
[768, 896, 1024]. - En 64GB+: puedes añadir un bucket algo más alto.
- Augmentations (X/Y flip)
El flip horizontal puede ser útil para algunas LoRAs de estilo pero a menudo es cuestionable para rostros.
6.4 Configuración de muestreo de vista previa
En el panel SAMPLE:
- Sample Every
Sample Every = 250pasos. - Sampler
Usa el sampler recomendado por tu plantilla FLUX.2.
- Width / Height
Elige una resolución que coincida con tus buckets de entrenamiento, ej.
768×768o768×1024. - Guidance Scale
guidance_scale = 1para vistas previas de entrenamiento. - Sample Steps
Alrededor de 25 pasos suelen ser suficientes para monitoreo.
- Seed / Walk Seed
Fija una semilla (ej.
42) para comparaciones consistentes. - Prompts
Añade 2–4 prompts representativos.
7. Depurar resultados LoRA FLUX.2 y mejorar calidad
7.1 "GatedRepoError / 401 al descargar FLUX.2-dev"
Si ves un error como:
GatedRepoError (401): Cannot access gated repo ... black-forest-labs/FLUX.2-dev ...
Usualmente significa que el modelo base FLUX.2-dev es un repo Hugging Face con puerta y el entrenador no puede descargarlo sin autenticación.
Solución (aprobación de acceso única + token):
- Aceptar términos del modelo / obtener acceso (una sola vez)
- Inicia sesión en Hugging Face.
- Abre
https://huggingface.co/black-forest-labs/FLUX.2-dev - Haz clic en Agree and access repository.
- Crear un token de acceso de Hugging Face
- Abre
https://huggingface.co/settings/tokens - Haz clic en New token
- Configura el rol del token a Read
- Añadir el token en la configuración del entrenador
- Abre la página Settings del entrenador.
- Encuentra Hugging Face Token.
- Pega tu token
hf_...y guarda. - Reiniciar el trabajo
7.2 "Nada cambia después de 1000+ pasos"
Lista de verificación:
- ¿La LoRA se está aplicando realmente en el muestreo?
Asegúrate de que la LoRA está adjunta al modelo base FLUX.2 correcto.
- Linear Rank muy bajo para el transformador fusionado
Si configuraste Linear Rank solo a 4–8, el efecto puede ser muy pequeño. Prueba
Linear Rank = 16–32. - Learning Rate muy bajo
Comienza con
0.0001. - Las captions describen el estilo en lugar del contenido
Si cada caption dice algo como "watercolor, soft pastel strokes...", no queda nada para el trigger.
7.3 "Mi LoRA sobrescribió el modelo base"
Síntomas:
- Incluso sin trigger, las salidas ya se ven como tu estilo LoRA.
Soluciones:
- Activar Differential Output Preservation
Configura trigger y clase de preservación como se describió arriba.
- Reducir pasos de entrenamiento
Para muchas LoRAs de estilo en rango 32, 800–1500 pasos son suficientes.
- Bajar rango o Learning Rate
Prueba
Linear Rank = 16yLearning Rate = 0.000075con DOP activo.
7.4 "CUDA sin memoria" o entrenamiento trabado
Plan de supervivencia usual:
- Bajar resolución
De 1024 → 896 o 768 en el lado largo.
- Activar/aumentar gradient checkpointing y accumulation
- Cuantización agresiva
FP8 o incluso 4-bit para el transformador.
- Usar caching de latents
Activa Cache Latents.
- En VRAM muy ajustado, evitar DOP
En su lugar:
- Dataset pequeño y balanceado.
- Menos pasos de entrenamiento con parada temprana.
- Mover el trabajo a GPU más grande
Migra el mismo trabajo de AI Toolkit a las plantillas H100/H200 de RunComfy.
8. Usando tu FLUX.2 LoRA en inferencia
Una vez que el entrenamiento está completo, puedes usar tu FLUX.2 LoRA de dos maneras simples:
- Model playground – abre el FLUX.2 LoRA playground y pega la URL de tu LoRA entrenada.
- Flujos de trabajo ComfyUI – inicia una instancia de ComfyUI y carga un flujo de trabajo como Flux 2 Dev, añade tu LoRA en el nodo LoRA loader.
Más guías de entrenamiento LoRA de AI Toolkit
- Entrenamiento LoRA Z-Image Turbo con AI Toolkit (8-pasos Turbo)
- Entrenamiento LoRA LTX-2 con AI Toolkit
- Entrenamiento LoRA Qwen-Image-Edit-2511 con AI Toolkit (edición multi-imagen)
- Entrenamiento LoRA Qwen-Image-Edit-2509 con AI Toolkit (edición multi-imagen)
- Entrenamiento LoRA Wan 2.2 I2V 14B imagen-a-video
- Entrenamiento LoRA Wan 2.2 T2V 14B texto-a-video
- Entrenamiento LoRA Qwen Image 2512
Ready to start training?

