LoRA de Z-Image Turbo: dataset, precisión y AI Toolkit
Entrena LoRAs de Z-Image Turbo con AI Toolkit: tamaño del dataset, cuantización fp8, adapter de desdistilación y diferencias con Flux/SDXL.
On this page
- TL;DR
- ¿Qué es Z-Image Turbo y por qué el entrenamiento difiere?
- Hardware y precisión: ¿cuánta VRAM necesitas realmente?
- El adapter de entrenamiento: v1 vs v2
- Dataset: tamaño, captions y diversidad
- Ajustes de AI Toolkit que realmente importan
- Qué difiere del entrenamiento con Flux y SDXL
- Errores comunes y soluciones
- Preguntas frecuentes (FAQ)
- Further reading
- Fuentes
Entrena un LoRA de Z-Image Turbo
TL;DR
- Dataset: de 9 a 20 imágenes diversas superan a conjuntos uniformes más grandes; las captions son opcionales — los tags funcionan "sin salvedades".
- Precisión: la cuantización fp8 (qfloat8) reduce la VRAM ~50% frente a bf16; las tarjetas de 16 GB pueden entrenar con
low_vram: true, se necesitan 24 GB+ sin cuantizar. - Adapter: debes cargar el adapter de de-distilación de Ostris (
ostris/zimage_turbo_training_adapter) o el LoRA perderá su velocidad de 8 pasos. - Ajustes que difieren de Flux/SDXL:
arch: zimage:turbo, timestep sigmoide (weighted), sin prompts negativos, se prefieren prompts en lenguaje natural.
¿Qué es Z-Image Turbo y por qué el entrenamiento difiere?
Z-Image Turbo es un transformer de difusión de flujo único (S3-DiT) de 6 mil millones de parámetros de Tongyi Lab (Alibaba), destilado a 8 pasos de inferencia mediante Decoupled-DMD [^1]. El modelo base Z-Image admite classifier-free guidance (CFG), prompts negativos y de 28 a 50 pasos; Turbo elimina los tres para ganar velocidad [^2].
Como el modelo ya está destilado, el fine-tuning estándar con LoRA rompe la destilación: el modelo "reverierte hacia necesitar más pasos de inferencia" [^3]. La solución es un adapter de entrenamiento de de-distilación — un LoRA preentrenado que ya aprendió a deshacer la destilación. Entrenas tu LoRA encima de este adapter y luego lo descartas en inferencia.
Hardware y precisión: ¿cuánta VRAM necesitas realmente?
Configuración | VRAM (práctica) | Notas --------------|-----------------|------ Sin cuantizar (NONE) | 24 GB+ | "Si tienes más de 24 GB de VRAM deberías estar bien con 'NONE'" [^4] fp8 / qfloat8 (por defecto) | 16–20 GB | quantize: true, qtype: qfloat8, dtype: bf16 reduce la VRAM ~50% [^5] fp8 + flag low_vram | 12–16 GB | low_vram: true habilita offload a CPU de las activations [^5]
La tarjeta oficial de inferencia indica que Turbo "cabe cómodamente en dispositivos consumer de 16 GB de VRAM" [^1]. El entrenamiento es más pesado; las configs de la comunidad usan por defecto fp8 en todos los niveles de GPU [^5]. Una guía afirma que "float8 sería más lento" [^4]; las configs usan qtype: qfloat8 con quantize: true como valor por defecto para todos los niveles de GPU [^5].
Diferencia clave frente a Flux/SDXL: esos modelos suelen entrenarse en bf16 o fp16. Las configs de Z-Image Turbo usan por defecto cuantización fp8 tanto para el transformer como para el text encoder (quantize_te: true, qtype_te: qfloat8) porque la destilación es sensible al drift de precisión.
El adapter de entrenamiento: v1 vs v2
El repositorio de Ostris aloja ostris/zimage_turbo_training_adapter con dos archivos [^3]:
zimage_turbo_training_adapter_v1.safetensors— estable, ampliamente usadozimage_turbo_training_adapter_v2.safetensors— "en pruebas" según una guía [^6]; no existe changelog público
En AI Toolkit se referencia mediante assistant_lora_path: ostris/zimage_turbo_training_adapter/zimage_turbo_training_adapter_v1.safetensors [^5]. Si omites el adapter, la destilación se rompe "muy rápidamente" y "de forma impredecible" [^3].
Dataset: tamaño, captions y diversidad
Factor | Recomendación | Evidencia -------|---------------|--------- Cantidad de imágenes | 9–20 | "9 imágenes (la variedad en ángulos y outfits ayuda)" y "20 es más que suficiente" [^6][^7] Captions | Opcionales | "Sí, puedes entrenar LoRAs de ZIT con tags en lugar de captions. Sin salvedades. Funciona." [^8] Las captions en lenguaje natural pueden mejorar la adherencia al prompt; una guía señala: "Usa descripciones largas, detalladas y coherentes en lenguaje natural... El modelo responde mucho mejor a oraciones y párrafos completos" [^8]. Para captioning local sin límites de subida, la extensión ComfyUI JoyCaption admite siglip-so400m-patch14-384, Meta-Llama-3.1-8B-bnb-4bit y joy-caption-pre-alpha [^9].
Ajustes de AI Toolkit que realmente importan
Estos son los parámetros no por defecto en los que concuerdan las configs y guías de la comunidad [^5][^7][^6]:
Ajuste | Valor | Por qué difiere de Flux/SDXL ------|-------|------------------------------- arch | zimage:turbo | Clave de arquitectura específica del modelo assistant_lora_path | ostris/zimage_turbo_training_adapter/...v1.safetensors | Requerido para preservar la destilación de 8 pasos timestep_type | weighted (sigmoide) | Los modelos destilados concentran la señal en timesteps específicos cache_text_embeddings | true | Acelera los forward passes repetidos lr | 0.0001 (1e-4) | "Aumentarlo podría hacer que se rompa" [^7] steps | 3000 | "Alrededor de ~1 hora en una 5090" [^6]; el concepto aparece en 1000–1500 [^6] resolution | [512, 768, 1024] | Buckets multiresolución; la UI por defecto es 1024×1024 [^6] linear / linear_alpha | 16 o 32 (iguales) | Rango LoRA; no hay comparación sistemática publicada quantize / qtype | true / qfloat8 | fp8 para memoria; dtype se mantiene en bf16 sample_every | 250 | Intervalo de preview sample_lora_weight | 0.7–1.0 | "Para ver qué tan fuerte golpea" [^6] Palabra disparadora: debe aparecer en cada prompt de muestra o "las muestras tempranas se parecen al modelo base y es difícil saber qué está funcionando" [^6].
Qué difiere del entrenamiento con Flux y SDXL
Aspecto | Flux / SDXL | Z-Image Turbo --------|-------------|--------------- Destilación | Ninguna (pasos completos) | 8 pasos Decoupled-DMD Adapter de entrenamiento | No necesario | Requerido (de-distilar) Muestreo de timestep | Uniforme / logit-normal | Sigmoide (weighted) Prompts negativos | Soportados | No soportados — guidance_scale=0.0 [^2] CFG | Usado | No usado Estilo de prompt | Tag soup funciona | Se prefiere lenguaje natural [^8] Cuantización por defecto | bf16 / fp16 | fp8 (qfloat8) para transformer + TE VRAM (entrenamiento, tarjeta de 24 GB) | Cómodo en bf16 | fp8 recomendado; "Illustrious cuesta mucha menos VRAM que ZIT" [^8] Una guía afirma: "Entrenalo igual que Illustrious" [^8], pero las diferencias de config anteriores son estructurales, no opcionales.
Errores comunes y soluciones
Síntoma | Causa | Solución --------|-------|--------- Fallo de entrenamiento / OOM | LR demasiado alto o VRAM excedida | Mantén LR en 1e-4; habilita fp8 (quantize: true, qtype: qfloat8); añade low_vram: true [^7] Muestras tempranas = modelo base | Falta la palabra disparadora en los prompts | Incluye la palabra disparadora en cada prompt de muestra [^6] Concepto no aprendido para el paso 2000 | Dataset demasiado uniforme | Aumenta variedad de poses/ángulos/outfits [^6] Artefactos raros en el fondo | Overfitting o ruptura de destilación | Reduce pasos; verifica que el adapter esté cargado; prueba peso LoRA 0.7–0.8 [^6] El LoRA necesita >8 pasos en inferencia | La destilación se rompió (entrenamiento largo sin adapter) | Reentrena con adapter; detente en 3000 pasos [^3]
Preguntas frecuentes (FAQ)
¿Cuánta VRAM necesito para entrenar un LoRA de Z-Image Turbo?
Con cuantización fp8 (quantize: true, qtype: qfloat8) y low_vram: true, funcionan 12–16 GB. El entrenamiento sin cuantizar necesita 24 GB+. El requisito oficial de inferencia es 16 GB [^1].
¿Qué es el adapter de entrenamiento de Z-Image Turbo y por qué lo necesito?
Es un LoRA preentrenado (ostris/zimage_turbo_training_adapter) que "de-distila" el modelo. Entrenar tu LoRA encima preserva la velocidad de 8 pasos. Sin él, "la destilación se rompe muy rápidamente" [^3].
¿Puedo entrenar Z-Image Turbo con tags en lugar de captions?
Sí. "Sin salvedades. Funciona." [^8] Las captions en lenguaje natural pueden mejorar la adherencia al prompt; una guía señala: "Usa descripciones largas, detalladas y coherentes en lenguaje natural... El modelo responde mucho mejor a oraciones y párrafos completos" [^8].
¿Por qué mi LoRA de Z-Image Turbo necesita más pasos de inferencia tras entrenar?
La destilación se rompió. Ocurre al entrenar demasiado tiempo sin adapter o con una tasa de aprendizaje alta. Reentrena con adapter y limita a 3000 pasos [^3][^6].
¿Cuál es la diferencia entre el adapter de entrenamiento v1 y v2?
v1 es estable; v2 está "en pruebas" y sin changelog público [^6]. Usa v1 salvo que estés experimentando.
¿Los prompts negativos funcionan con Z-Image Turbo?
No. La tarjeta del modelo lista explícitamente "Negative Prompting: ❌" para Turbo [^2]. No los incluyas en prompts ni en configs de muestra.
¿Cuántos pasos de entrenamiento debo usar?
3000 es el estándar de la comunidad (~1 hora en RTX 5090) [^6]. El concepto suele aparecer entre los 1000 y 1500 pasos [^6]. No hay datos publicados sobre rendimientos decrecientes más allá de 3000.
¿Puedo usar la plantilla Ostris de RunPod para entrenar?
Sí. La plantilla oficial de AI Toolkit está disponible en RunPod [^6]. Selecciónala, elige tu GPU (RTX 5090 usada en runs publicados) y despliega.
Further reading
- Cómo captionar datasets para entrenamiento de difusión
- AI Toolkit vs ComfyUI para entrenamiento de LoRA
- Entender la cuantización fp8 en modelos de difusión