DFloat11/Wan2.2-T2V-A14B-2-DF11

DFloat11
Texto a video

Segunda etapa comprimida con DFloat11 del modelo Wan-AI/Wan2.2-T2V-A14B para generación de vídeo a partir de texto. Reduce un 32 % el tamaño frente a BFloat16, conserva salidas idénticas bit a bit y permite generar vídeo 720p de 5 segundos con una GPU de 24 GB mediante descarga a CPU.

Como usar

Requiere PyTorch y una GPU compatible con CUDA. Instala DFloat11 y la versión más reciente de Diffusers:

pip install -U dfloat11[cuda12]
pip install git+https://github.com/huggingface/diffusers

La ejecución completa utiliza conjuntamente las dos etapas DFloat11 del modelo Wan2.2:

import torch
from diffusers import WanPipeline, AutoencoderKLWan
from diffusers.utils import export_to_video
from dfloat11 import DFloat11Model

vae = AutoencoderKLWan.from_pretrained(
    "Wan-AI/Wan2.2-T2V-A14B-Diffusers",
    subfolder="vae",
    torch_dtype=torch.float32,
)
pipe = WanPipeline.from_pretrained(
    "Wan-AI/Wan2.2-T2V-A14B-Diffusers",
    vae=vae,
    torch_dtype=torch.bfloat16,
)

DFloat11Model.from_pretrained(
    "DFloat11/Wan2.2-T2V-A14B-DF11",
    device="cpu",
    cpu_offload=True,
    bfloat16_model=pipe.transformer,
)
DFloat11Model.from_pretrained(
    "DFloat11/Wan2.2-T2V-A14B-2-DF11",
    device="cpu",
    cpu_offload=True,
    bfloat16_model=pipe.transformer_2,
)

pipe.enable_model_cpu_offload()
output = pipe(
    prompt="A serene koi pond at night, with glowing lanterns reflecting on the rippling water.",
    height=720,
    width=1280,
    num_frames=81,
    guidance_scale=4.0,
    guidance_scale_2=3.0,
    num_inference_steps=40,
).frames[0]

export_to_video(output, "t2v_out.mp4", fps=16)

Ejecución recomendada con descarga a CPU, que requiere aproximadamente 22,5 GB de VRAM:

PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True python t2v.py --cpu_offload

Sin descarga a CPU se requieren aproximadamente 40 GB de VRAM:

PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True python t2v.py

La opción expandable_segments:True ayuda a evitar errores por fragmentación de la memoria de la GPU.

Funcionalidades

Generación de vídeo a partir de indicaciones de texto mediante Wan2.2-T2V-A14B.
Compresión sin pérdida DFloat11 basada en codificación Huffman de los bits de exponente de los pesos BFloat16.
Descompresión de pesos sobre la marcha directamente en GPU.
Tamaño dividido en dos componentes de aproximadamente 19,46 GB y 19,39 GB.
Consumo máximo aproximado de 41,06 GB de VRAM sin descarga a CPU y 22,49 GB con descarga.
Generación de 5 segundos a 720p en unos 42 minutos en una A100, o 44 minutos con descarga a CPU.
Compatible con Diffusers, PyTorch, GPU CUDA y exportación de resultados a MP4.
Mantiene la calidad completa y salidas idénticas bit a bit respecto al modelo BFloat16 original.

Casos de uso

Crear clips de vídeo 720p a partir de descripciones textuales.
Ejecutar Wan2.2-T2V-A14B localmente en una GPU de 24 GB mediante descarga de pesos a CPU.
Producir animaciones cinematográficas o escenas estilizadas configurando prompts positivos y negativos.
Investigar inferencia de modelos de difusión con compresión sin pérdida y descompresión de pesos en GPU.