HunyuanVideo: FP8 vs BF16, ComfyUI y LoRA
Elige el archivo de modelo HunyuanVideo adecuado para tu GPU, configura ComfyUI y entrena un LoRA de vídeo.
On this page
- TL;DR
- ¿Qué archivo de modelo de HunyuanVideo debo descargar para mi VRAM?
- ¿Por qué el UNET BF16 hace block-swap en una 4090?
- ¿Qué archivos de modelo van en cada carpeta de ComfyUI?
- ¿Debo usar el flag `--highvram`?
- ¿Qué hacen `--fp32-text-enc` y `--fp32-vae`?
- ¿Cómo entreno un LoRA de HunyuanVideo?
- ¿Cómo uso un LoRA entrenado en ComfyUI?
- Errores comunes y soluciones
- Advertencias prácticas de reportes de la comunidad
- FAQ
- Internal links
- Image placeholders
HunyuanVideo: FP8 vs BF16, ComfyUI y LoRA
TL;DR
- Usa el UNET FP8 (pruned) si tienes ≤24 GB de VRAM; el UNET BF16 fuerza block-swapping incluso en una 4090.
- En ComfyUI nativo, carga
hunyuan_video_t2v_720p_bf16.safetensorscomo modelo de difusión,clip_l.safetensors+llava_llama3_fp8_scaled.safetensorscomo codificadores de texto, yhunyuan_video_vae_bf16.safetensorscomo VAE. - No actives
--highvram— fija el CLIP en la GPU y anula la descarga a CPU. - El entrenamiento de LoRA funciona en Linux vía
diffusion-pipe(config.toml); DeepSpeed en Windows está roto — entrena en WSL2 o en una VM.
¿Qué archivo de modelo de HunyuanVideo debo descargar para mi VRAM?
UNET FP8 para ≤24 GB de VRAM; UNET BF16 para tarjetas con mucha VRAM. La tarjeta oficial del modelo de Tencent indica 60 GB de VRAM mínimos para generación a 720p con el modelo base. La variante BF16 supera eso, así que ComfyUI hará block-swap a la RAM del sistema — la guía de Civitai afirma explícitamente que "Incluso los usuarios de 4090 acabarán haciendo block swapping a la CPU si se usa el modelo BF16".
| Componente | Archivo recomendado (≤24 GB) | Alternativa (48 GB+) |
|---|---|---|
| UNET | FP8 pruned (Civitai 1356617) | BF16 full (Civitai 1360886) |
| CLIP-L | FP32 pruned (Zer0Int Improved Text) | FP32 full vision (Base ViT) |
| Codificador de texto | llava_llama3_fp8_scaled.safetensors | FP32 uncensored |
| VAE | BF16 pruned (Civitai 1489354) | FP32 full (Civitai 1356987) |
[1] https://huggingface.co/tencent/HunyuanVideo [2] https://civitai.com/articles/13522
Catálogo completo de archivos de modelo con IDs de Civitai
| Modelo | ID de Civitai | Precisión | Etiqueta de tamaño | URL de descarga |
|---|---|---|---|---|
| UNET FP8 (pruned) | 1356617 | FP8 | pruned | https://civitai.com/api/download/models/1356617?type=Model&format=SafeTensor&size=pruned&fp=fp8 |
| UNET BF16 (full) | 1360886 | BF16 | full | https://civitai.com/api/download/models/1360886?type=Model&format=SafeTensor&size=full&fp=bf16 |
| VAE FP8 (full) | 1356700 | FP8 | full | https://civitai.com/api/download/models/1356700?type=Model&format=SafeTensor&size=full&fp=fp8 |
| VAE BF16 (pruned) | 1489354 | BF16 | pruned | https://civitai.com/api/download/models/1489354?type=Model&format=SafeTensor&size=pruned&fp=bf16 |
| VAE FP32 (full) | 1356987 | FP32 | full | https://civitai.com/api/download/models/1356987?type=Model&format=SafeTensor&size=full&fp=fp32 |
| CLIP-L pruned FP32 (Zer0Int Improved Text) | 1172273 | FP32 | pruned | https://civitai.com/api/download/models/1172273?type=Model&format=SafeTensor&size=pruned&fp=fp32 |
| CLIP-L full FP32 (Base ViT) | N/A | FP32 | full | https://huggingface.co/openai/clip-vit-large-patch14/blob/main/model.safetensors |
| CLIP-L FP32 (Zer0Int Gated-Balanced) | N/A | FP32 | full | https://huggingface.co/zer0int/CLIP-Registers-Gated_MLP-ViT-L-14/blob/main/ViT-L-14-REG-GATED-balanced-ckpt12.safetensors |
| CLIP-L FP32 (AbstractPhil Sim4+ViT) | 1377716 | FP32 | full | https://civitai.com/api/download/models/1377716?type=Model&format=SafeTensor&size=full&fp=fp32 |
| Codificador de texto FP32 uncensored (pruned) | 1648387 | FP32 | pruned | https://civitai.com/api/download/models/1648387?type=Model&format=SafeTensor&size=pruned&fp=fp32 |
| Codificador de texto BF16 uncensored (pruned) | 1648546 | BF16 | pruned | https://civitai.com/api/download/models/1648546?type=Model&format=SafeTensor&size=pruned&fp=bf16 |
Fuente: https://civitai.com/articles/13522
¿Por qué el UNET BF16 hace block-swap en una 4090?
Los pesos del UNET BF16 son el modelo a tamaño completo. Con el VAE, dos codificadores de texto y las activaciones, la memoria de GPU pico supera la VRAM disponible. ComfyUI entonces descarga bloques del transformer a la CPU (block-swapping), lo que añade latencia por paso. El UNET FP8 es la versión cuantizada, así que toda la pila del modelo cabe en 24 GB con espacio para las activaciones — sin necesidad de descarga.
Mecanismo: El repositorio oficial de HunyuanVideo indica 60 GB de VRAM mínimos para el modelo base a 720p. Una 4090 tiene 24 GB de VRAM, así que el modelo BF16 completo no cabe. El block-swapping de ComfyUI mueve capas del transformer entre CPU y GPU en cada pasada forward, añadiendo ~2-3× de latencia por paso. El UNET FP8 pruned reduce la memoria de pesos en ~50%, dejando la pila total por debajo de 24 GB.
¿Qué archivos de modelo van en cada carpeta de ComfyUI?
El flujo de trabajo nativo de ComfyUI (anunciado el 20 de diciembre de 2024) espera cuatro archivos en carpetas específicas:
| Carpeta | Nombre de archivo | Función |
|---|---|---|
models/diffusion_models | hunyuan_video_t2v_720p_bf16.safetensors | UNET (transformer de difusión) |
models/text_encoders | clip_l.safetensors | Codificador de imagen CLIP-L |
models/text_encoders | llava_llama3_fp8_scaled.safetensors | Codificador de texto MLLM (FP8) |
models/vae | hunyuan_video_vae_bf16.safetensors | Decodificador VAE 3D |
Fuente: https://blog.comfy.org/p/hunyuanvideo-native-support-in-comfyui
¿Debo usar el flag --highvram?
No. El flag --highvram indica al lanzador que mantenga todos los modelos en la memoria de GPU. Para usuarios con ≤24 GB de VRAM esto fuerza el CLIP y el codificador de texto a la GPU, sin dejar espacio para las activaciones del UNET. La guía de Civitai es explícita: "NO USES EL FLAG HIGHVRAM; si lo activas forzarás el CLIP a la GPU. Usuarios normales, NO USEN ESTE FLAG".
Mecanismo: --highvram desactiva el comportamiento predeterminado de descarga a CPU. El CLIP es pequeño (~1 GB) pero al fijarlo en la GPU reduce el presupuesto de activaciones del UNET de 13 B de parámetros. Sin --highvram, ComfyUI descarga el CLIP y el codificador de texto a la CPU automáticamente, manteniendo en la GPU solo los bloques activos del UNET.
¿Qué hacen --fp32-text-enc y --fp32-vae?
Anulan el dtype FP16 predeterminado de carga para el codificador de texto y el VAE, respectivamente. Sin ellos, ComfyUI convierte los pesos FP32 a FP16 al cargar. Los flags se pasan al lanzar:
python main.py --fp32-text-enc --fp32-vae --use-sage-attention
Mecanismo: En la CPU, la aritmética FP16 se emula (convirtiendo a FP32), así que los pesos FP32 no sufren penalización de velocidad y pueden ser más rápidos que el FP16 emulado. Los flags fijan el dtype en el momento de cargar el modelo; el dispositivo de descarga (CPU) luego computa a esa precisión. El tiempo de carga aumenta ligeramente por los tensores de pesos más grandes.
¿Cómo entreno un LoRA de HunyuanVideo?
El entrenamiento usa diffusion-pipe con un config.toml que apunta a los archivos del modelo:
[model]
type = 'hunyuan-video'
transformer_path = '/path/to/hunyuan_video_720_cfgdistill_fp8_e4m3fn.safetensors'
vae_path = '/path/to/hunyuan_video_vae_bf16.safetensors'
llm_path = '/path/to/llm'
clip_path = '/path/to/clip'
Un usuario reportó ~20 GB de VRAM a resolución de 768 px en Linux. DeepSpeed en Windows no funciona — "no puedo descargar deepspeed en windows 10" y "deepspeed en windows parece un agujero sin fondo" según comentarios de la comunidad. Entrena en WSL2 o en una VM Linux.
Ejemplo práctico: config.toml de entrenamiento para 768 px en Linux
[model]
type = 'hunyuan-video'
transformer_path = '/mnt/data/models/hunyuan_video_720_cfgdistill_fp8_e4m3fn.safetensors'
vae_path = '/mnt/data/models/hunyuan_video_vae_bf16.safetensors'
llm_path = '/mnt/data/models/llava_llama3_fp8_scaled'
clip_path = '/mnt/data/models/clip_l'
[train]
resolution = 768
batch_size = 1
learning_rate = 1e-4
max_steps = 2000
mixed_precision = 'fp16'
gradient_accumulation_steps = 4
Notas de reportes de la comunidad:
- Las rutas usan el prefijo
/mnt/c/en WSL2 para referenciar la unidad C: de Windows (p. ej.,/mnt/c/Users/name/models/...) - La resolución de 768 px consumió ~20 GB de VRAM en una máquina Linux (dato único)
- El nombre de archivo
hunyuan_video_720_cfgdistill_fp8_e4m3fn.safetensorsaparece en el ejemplo de configuración de entrenamiento, pero no se verificó de forma independiente en HuggingFace
Fuente: https://civitai.com/articles/9798/training-a-lora-for-hunyuan-video-on-windows (comentarios de ymz0023432, jhnprst2150)
¿Cómo uso un LoRA entrenado en ComfyUI?
Añade un nodo Load LoRA entre los nodos Load Diffusion Model y Sampler / CLIP / Schedule. Los pesos del LoRA se aplican al modelo de difusión antes del muestreo. Un usuario confirmó: "solo añade el nodo Load Lora entre el LoadDiffusionModel y los nodos Sampler/Clip/Schedule. Al menos parece funcionar y entrega un vídeo diferente".
Punto de inserción del LoRA en el flujo nativo
Load Diffusion Model → Load LoRA → Sampler / CLIP / Schedule → VAE Decode
Fuente: https://blog.comfy.org/p/hunyuanvideo-native-support-in-comfyui (comentario de la comunidad de jhnprst2150)
Errores comunes y soluciones
| Síntoma | Causa | Solución |
|---|---|---|
| OOM / block-swap en tarjeta de 24 GB | Uso del UNET BF16 | Cambia al UNET FP8 (Civitai 1356617) |
| El CLIP se carga en la GPU en vez de la CPU | Flag --highvram activado | Elimina --highvram; deja que la descarga funcione |
| El VAE decodifica en FP16 pese a pesos FP32 | ComfyUI convierte el VAE FP32 a FP16 | Lanza con --fp32-vae |
| El codificador de texto es lento cuando corre descargado en la CPU | La CPU emula FP16 convirtiendo a FP32, así que los pesos FP16 no aportan nada ahí | Añade --fp32-text-enc; espera un tiempo de carga algo mayor a cambio de un cómputo más rápido en CPU |
| La instalación de DeepSpeed falla en Windows 10 | No hay wheels para Windows | Entrena en WSL2 / VM Linux |
| La decodificación del VAE falla tras una ejecución larga | El flujo predeterminado supera la VRAM | Baja a 544p o menos frames; existe un flujo de 8 GB pero los comentaristas advierten "ni te molestes en probarlo con menos de 24 o 40 GB de VRAM" |
Flag --bf16-unet no reconocido | El flag no existe en ComfyUI oficial | Usa la elección del archivo de modelo (safetensors FP8 vs BF16) en su lugar |
| Compatibilidad de Sage Attention desconocida | --use-sage-attention sin verificar | Prueba con y sin; puede no funcionar con la arquitectura de HunyuanVideo |
Referencias: https://civitai.com/articles/13522; https://civitai.com/articles/9798 (comentarios); https://blog.comfy.org/p/hunyuanvideo-native-support-in-comfyui (comentario de KotatsuAi)
Advertencias prácticas de reportes de la comunidad
- El flag
--bf16-unetde los scripts de ejemplo no es un flag documentado de ComfyUI. El.batde ejemplo del artículo de Civitai incluye--bf16-unet --use-sage-attention, pero ninguno de los dos flags aparece en la documentación oficial de ComfyUI o HunyuanVideo. La precisión del modelo se controla con el archivo safetensors que cargas, no con un flag de CLI.
- El codificador de texto FP8 escalado requiere 24 GB de VRAM +
--highvram. La fuente afirma: "Usar un TE FP8 escalado no se recomienda salvo que tengas 24 GB de VRAM y uses el flag HighVram". El TE estándar (llava_llama3_fp8_scaled.safetensors) es la variante FP8 usada en el flujo nativo de ComfyUI.
- El VAE FP8 no se recomienda. La fuente dice explícitamente "no recomiendo el VAE FP8" sin explicar por qué. El VAE BF16 pruned (Civitai 1489354) es la elección recomendada para la mayoría de usuarios.
- El entrenamiento de LoRA en Windows no es viable. DeepSpeed carece de soporte en Windows. El artículo 9798 de Civitai se titulaba "Training a LoRA for Hunyuan video on Windows" pero quedó marcado como "Reinstating soon" — los comentaristas confirmaron que el entrenamiento real se hizo en Linux.
- El JSON del flujo de 8 GB existe pero es impráctico. Adjunto al artículo 13522 de Civitai. Un comentarista del blog de ComfyUI advierte: "ni te molestes en probarlo con menos de 24 o 40 GB de VRAM". Espera generación muy lenta y OOM frecuentes.
- La identidad de la herramienta
diffusion-pipees incierta. La configuración de entrenamiento referenciadiffusion-pipecontype = 'hunyuan-video'. El repositoriokohya-ss/diffusion-pipedevuelve 404 en GitHub; el repositorio principal de entrenamiento de Kohya eskohya-ss/sd-scripts. Si es un proyecto aparte, un fork o una referencia mal escrita no está verificado.
- Los requisitos de VRAM para entrenamiento no están bien establecidos. Un usuario reportó ~20 GB a 768 px (dato único). No existen benchmarks sistemáticos de VRAM para entrenamiento.
FAQ
¿Cuál es la VRAM mínima para HunyuanVideo?
45 GB para 544p (544×960×129 frames) según la tarjeta oficial del modelo. Con cuantización FP8 y descarga a CPU, los usuarios reportan que funciona en tarjetas de 24 GB a resolución reducida.
Fuente: https://huggingface.co/tencent/HunyuanVideo
¿Puedo ejecutar HunyuanVideo en una GPU de 8 GB?
Solo con el JSON del flujo comunitario de 8 GB (adjunto al artículo 13522 de Civitai) y descarga agresiva. Espera generación muy lenta y OOM frecuentes. Los comentaristas del blog de ComfyUI lo desaconsejan.
Fuente: https://civitai.com/articles/13522; https://blog.comfy.org/p/hunyuanvideo-native-support-in-comfyui (comentario de KotatsuAi)
¿Cuál es la diferencia entre los modos de reescritura de prompt Normal y Master?
El modo Normal mejora el seguimiento de instrucciones. El modo Master mejora la composición, la iluminación y el movimiento de cámara, pero puede perder detalles semánticos. Ambos forman parte del modelo separado Prompt Rewrite (Hunyuan-Large), no del modelo principal de difusión.
¿HunyuanVideo soporta image-to-video?
Sí — existe un modelo I2V separado en github.com/Tencent/HunyuanVideo-I2V con sus propios checkpoints. El modelo text-to-video descrito aquí es solo T2V.
Fuente: https://github.com/Tencent/HunyuanVideo
¿Dónde consigo los safetensors del UNET FP8?
Modelo 1356617 de Civitai (FP8 pruned) o el repositorio oficial de Tencent en HuggingFace (hunyuan-video-t2v-720p/transformers/mp_rank_00_model_states_fp8.pt — convierte a safetensors).
Fuente: https://civitai.com/articles/13522; https://huggingface.co/tencent/HunyuanVideo
¿Qué flags de lanzamiento debo usar con una tarjeta de 24 GB?
python main.py --fp32-text-enc --fp32-vae --use-sage-attention
Sin --highvram, sin --bf16-unet. Carga el UNET FP8 (Civitai 1356617) y el VAE BF16 pruned (Civitai 1489354).
Fuente: https://civitai.com/articles/13522; https://blog.comfy.org/p/hunyuanvideo-native-support-in-comfyui
Internal links
- Análisis a fondo del flujo nativo de ComfyUI
- Cuantización FP8 explicada para modelos de vídeo
- Entrenamiento de LoRA en Linux con diffusion-pipe