ArtificialGuyBR

Home / Blog / Training LoRAs

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.

11 sources cited Training LoRAs

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 usado
  • zimage_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

Fuentes