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.