tencent/HunyuanVideo-1.5

tencent
Texto a video

HunyuanVideo-1.5 es un modelo abierto de generación de video de Tencent para texto a video e imagen a video. Usa una arquitectura Diffusion Transformer ligera de 8.3B parámetros con VAE causal 3D, atención SSTA, destilación, caché de inferencia y superresolución para producir videos de alta calidad con coherencia de movimiento en resoluciones de 480p, 720p y escalado hasta 1080p. Está diseñado para reducir el coste de uso y funcionar incluso en GPUs de consumo con descarga de modelo.

Como usar

Requisitos principales: Linux, Python 3.10 o superior, CUDA compatible con PyTorch y GPU NVIDIA con CUDA. La memoria mínima indicada es 14 GB de VRAM con model offloading activado.

Instalación básica:

git clone https://github.com/Tencent-Hunyuan/HunyuanVideo-1.5.git
cd HunyuanVideo-1.5
pip install -r requirements.txt
pip install -i https://mirrors.tencent.com/pypi/simple/ --upgrade tencentcloud-sdk-python

Ejemplo de inferencia desde el código fuente, válido para T2V e I2V cambiando IMAGE_PATH:

export T2V_REWRITE_BASE_URL=""
export T2V_REWRITE_MODEL_NAME=""
export I2V_REWRITE_BASE_URL=""
export I2V_REWRITE_MODEL_NAME=""

PROMPT='A girl holding a paper with words "Hello, world!"'
IMAGE_PATH=/path/to/image.png # Optional, none or to enable i2v mode
SEED=1
ASPECT_RATIO=16:9
RESOLUTION=480p
OUTPUT_PATH=./outputs/output.mp4
MODEL_PATH=./ckpts

N_INFERENCE_GPU=8
CFG_DISTILLED=true
SAGE_ATTN=true
SPARSE_ATTN=false
OVERLAP_GROUP_OFFLOADING=true
ENABLE_CACHE=true
CACHE_TYPE=deepcache
ENABLE_STEP_DISTILL=true
REWRITE=true
ENABLE_SR=true

torchrun --nproc_per_node=$N_INFERENCE_GPU generate.py \
  --prompt "$PROMPT" \
  --image_path $IMAGE_PATH \
  --resolution $RESOLUTION \
  --aspect_ratio $ASPECT_RATIO \
  --seed $SEED \
  --rewrite $REWRITE \
  --cfg_distilled $CFG_DISTILLED \
  --enable_step_distill $ENABLE_STEP_DISTILL \
  --sparse_attn $SPARSE_ATTN --use_sageattn $SAGE_ATTN \
  --enable_cache $ENABLE_CACHE --cache_type $CACHE_TYPE \
  --overlap_group_offloading $OVERLAP_GROUP_OFFLOADING \
  --sr $ENABLE_SR --save_pre_sr_video \
  --output_path $OUTPUT_PATH \
  --model_path $MODEL_PATH

Uso básico con Diffusers:

import torch
from diffusers import HunyuanVideo15Pipeline
from diffusers.utils import export_to_video

dtype = torch.bfloat16
device = "cuda:0"

pipe = HunyuanVideo15Pipeline.from_pretrained(
    "hunyuanvideo-community/HunyuanVideo-1.5-Diffusers-720p_t2v",
    torch_dtype=dtype,
)
pipe.enable_model_cpu_offload()
pipe.vae.enable_tiling()

generator = torch.Generator(device=device).manual_seed(seed)
video = pipe(
    prompt=prompt,
    generator=generator,
    num_frames=121,
    num_inference_steps=50,
).frames[0]

export_to_video(video, "output.mp4", fps=24)

Uso optimizado con backend de atención:

import torch
from diffusers import HunyuanVideo15Pipeline, attention_backend
from diffusers.utils import export_to_video

dtype = torch.bfloat16
device = "cuda:0"

pipe = HunyuanVideo15Pipeline.from_pretrained(
    "hunyuanvideo-community/HunyuanVideo-1.5-Diffusers-720p_t2v",
    torch_dtype=dtype,
)
pipe.enable_model_cpu_offload()
pipe.vae.enable_tiling()

generator = torch.Generator(device=device).manual_seed(seed)
with attention_backend("_flash_3_hub"):
    video = pipe(
        prompt=prompt,
        generator=generator,
        num_frames=121,
        num_inference_steps=50,
    ).frames[0]

export_to_video(video, "output.mp4", fps=24)

Para mejor calidad, la página recomienda prompts largos y descriptivos, reescritura automática de prompts mediante modelos vLLM compatibles, 50 pasos para los modelos CFG-distilled, y 8 o 12 pasos para el modelo 480p I2V step-distilled.

Funcionalidades

Generación texto-a-video e imagen-a-video en un marco unificado.
Arquitectura DiT de 8.3B parámetros con VAE causal 3D y compresión espacial 16x y temporal 4x.
Atención SSTA para reducir cómputo en secuencias largas y acelerar síntesis de video 720p de 10 segundos.
Modelos 480p y 720p, variantes CFG-distilled, step-distilled, sparse attention y modelos de superresolución 720p/1080p.
Modelo I2V 480p step-distilled capaz de generar en 8 o 12 pasos, con reducción de tiempo de hasta 75% en RTX 4090 según la página.
Compatibilidad con Diffusers, ComfyUI, LightX2V, Wan2GP y aceleraciones como DeepCache, TeaCache, TaylorCache, SageAttention, sparse attention y FP8 GEMM.
Superresolución de pocos pasos para mejorar nitidez, textura y corrección de distorsiones hasta 1080p.
Entrenamiento y ajuste LoRA publicados, con soporte para FSDP, paralelismo de contexto/secuencia, gradient checkpointing y optimizador Muon.

Casos de uso

Crear videos a partir de prompts de texto con movimiento coherente, estética cinematográfica y seguimiento fuerte de instrucciones.
Animar una imagen de referencia mediante image-to-video para producir clips en 480p o 720p.
Generar contenido visual con texto renderizado, escenas físicas complejas, movimientos suaves y composición cinematográfica.
Prototipar flujos de video generativo en Diffusers, ComfyUI o aplicaciones locales con aceleraciones de inferencia.
Investigar y ajustar modelos de video mediante entrenamiento completo o fine-tuning LoRA sobre HunyuanVideo-1.5.
Escalar videos generados a 720p o 1080p con los modelos de superresolución incluidos.