tencent/HunyuanVideo

tencent
Texto a video

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.