tencent/HunyuanVideo
HunyuanVideo es un modelo fundacional abierto de generación de video a partir de texto desarrollado por Tencent. Usa una arquitectura Transformer de difusión en espacio latente comprimido con VAE 3D causal, codificación de texto mediante un MLLM y diseño híbrido de doble flujo a flujo único para fusionar tokens visuales y textuales. El modelo supera los 13.000 millones de parámetros y está orientado a generar videos de alta calidad visual, movimiento diverso, buena alineación texto-video y estabilidad en la generación.
Como usar
Requisitos principales: GPU NVIDIA con CUDA, Linux, PyTorch 2.4.0 y memoria alta. Para 720x1280x129f requiere aproximadamente 60 GB de VRAM; para 544x960x129f requiere aproximadamente 45 GB. Se recomienda una GPU de 80 GB.
Instalación básica:
git clone https://github.com/tencent/HunyuanVideo
cd HunyuanVideo
conda create -n HunyuanVideo python==3.10.9
conda activate HunyuanVideo
conda install pytorch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 pytorch-cuda=12.4 -c pytorch -c nvidia
python -m pip install -r requirements.txt
python -m pip install ninja
python -m pip install git+https://github.com/Dao-AILab/[email protected]
python -m pip install xfuser==0.4.0
Inferencia en una sola GPU:
cd HunyuanVideo
python3 sample_video.py \
--video-size 720 1280 \
--video-length 129 \
--infer-steps 50 \
--prompt "A cat walks on the grass, realistic style." \
--flow-reverse \
--use-cpu-offload \
--save-path ./results
Servidor Gradio:
python3 gradio_server.py --flow-reverse
# SERVER_NAME=0.0.0.0 SERVER_PORT=8081 python3 gradio_server.py --flow-reverse
Inferencia multi-GPU con xDiT:
cd HunyuanVideo
torchrun --nproc_per_node=8 sample_video.py \
--video-size 1280 720 \
--video-length 129 \
--infer-steps 50 \
--prompt "A cat walks on the grass, realistic style." \
--flow-reverse \
--seed 42 \
--ulysses-degree 8 \
--ring-degree 1 \
--save-path ./results
Inferencia FP8:
cd HunyuanVideo
DIT_CKPT_PATH={PATH_TO_FP8_WEIGHTS}/{WEIGHT_NAME}_fp8.pt python3 sample_video.py \
--dit-weight ${DIT_CKPT_PATH} \
--video-size 1280 720 \
--video-length 129 \
--infer-steps 50 \
--prompt "A cat walks on the grass, realistic style." \
--seed 42 \
--embedded-cfg-scale 6.0 \
--flow-shift 7.0 \
--flow-reverse \
--use-cpu-offload \
--use-fp8 \
--save-path ./results
Funcionalidades
- Generación texto-a-video con pesos e inferencia abiertos en Hugging Face.
- Arquitectura unificada para imagen y video basada en Transformer con atención completa.
- Diseño híbrido dual-stream a single-stream para procesar primero video y texto por separado y después fusionarlos de forma multimodal.
- Codificador de texto MLLM decoder-only ajustado para mejorar alineación imagen-texto, razonamiento y seguimiento de instrucciones.
- VAE 3D causal con compresión temporal, espacial y de canales para entrenar y generar videos en resoluciones y tasas de frames originales.
- Modelo de reescritura de prompts basado en Hunyuan-Large con modos Normal y Master para adaptar instrucciones al formato preferido del generador.
- Inferencia en una GPU, inferencia paralela multi-GPU mediante xDiT/USP y pesos cuantizados FP8 para reducir memoria.
- Soporta generaciones de 129 frames en formatos 720p y 540p, incluyendo relaciones 16:9, 9:16, 4:3, 3:4 y 1:1.
Casos de uso
- Crear videos realistas a partir de prompts de texto.
- Prototipar flujos de generación audiovisual abiertos sin depender de modelos cerrados.
- Investigar modelos de video generativo de gran escala y arquitecturas Diffusion Transformer.
- Comparar calidad visual, movimiento y alineación texto-video frente a sistemas como Runway Gen-3 o Luma.
- Desplegar demos locales o web con Gradio para generación de video.
- Ejecutar inferencia distribuida en clústeres multi-GPU para reducir latencia.
- Usar pesos FP8 cuando se necesita ahorrar memoria de GPU.