charles2530/Wan2.2-T2V-A14B-Diffusion-AWQ-INT4

charles2530
Texto a video

Versión cuantizada AWQ INT4 del modelo Wan2.2 T2V-A14B para generación de texto a video. Está basado en una arquitectura Mixture-of-Experts para difusión de video, con unos 14B parámetros activos por paso, y está orientado a generar videos de 5 segundos en resoluciones 480P y 720P con estética cinematográfica, movimiento complejo y control mediante prompts.

Como usar

Instalación y uso básico con Diffusers:

pip install -U diffusers transformers accelerate
import torch
from diffusers import DiffusionPipeline

# Cambiar a "mps" para dispositivos Apple
pipe = DiffusionPipeline.from_pretrained(
    "charles2530/Wan2.2-T2V-A14B-Diffusion-AWQ-INT4",
    dtype=torch.bfloat16,
    device_map="cuda"
)

prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"
image = pipe(prompt).images[0]

Ejemplo de inferencia Wan2.2 T2V a 720P sin extensión de prompt:

python generate.py --task t2v-A14B --size 1280*720 --ckpt_dir ./Wan2.2-T2V-A14B --offload_model True --convert_model_dtype --prompt "Two anthropomorphic cats in comfy boxing gear and bright gloves fight intensely on a spotlighted stage."

Ejemplo multi-GPU con FSDP y DeepSpeed Ulysses:

torchrun --nproc_per_node=8 generate.py --task t2v-A14B --size 1280*720 --ckpt_dir ./Wan2.2-T2V-A14B --dit_fsdp --t5_fsdp --ulysses_size 8 --prompt "Two anthropomorphic cats in comfy boxing gear and bright gloves fight intensely on a spotlighted stage."

Uso con Diffusers avanzado:

import torch
import numpy as np
from diffusers import WanPipeline, AutoencoderKLWan
from diffusers.utils import export_to_video, load_image

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

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=dtype
)
pipe.to(device)

height = 720
width = 1280
prompt = "Two anthropomorphic cats in comfy boxing gear and bright gloves fight intensely on a spotlighted stage."
negative_prompt = "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走"

output = pipe(
    prompt=prompt,
    negative_prompt=negative_prompt,
    height=height,
    width=width,
    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)

Nota: para esta variante de WanPipeline se indica que hacen falta funciones disponibles en la rama principal de Diffusers:

pip install git+https://github.com/huggingface/diffusers

Funcionalidades

Generación de texto a video con Diffusers y WanPipeline.
Soporte para videos de 5 segundos en 480P y 720P.
Arquitectura Mixture-of-Experts con expertos especializados para etapas de alto y bajo ruido durante el denoising.
Cuantización AWQ INT4 para reducir el peso y facilitar la inferencia frente a variantes completas.
Formato Safetensors y licencia Apache 2.0.
Puede usarse con inferencia local, ejecución multi-GPU con FSDP y DeepSpeed Ulysses, y flujos de Diffusers desde la rama principal.
Admite extensión de prompts con Dashscope o modelos locales Qwen para enriquecer detalles antes de generar el video.

Casos de uso

Crear videos cortos a partir de descripciones textuales con estética cinematográfica.
Prototipar escenas de video generativo en 480P o 720P para investigación, demostraciones o producción creativa.
Evaluar inferencia de Wan2.2 T2V en entornos locales con GPU, incluida ejecución multi-GPU.
Generar clips con movimiento complejo, composición controlada, iluminación y tono de color definidos por prompt.
Experimentar con prompts extendidos mediante Dashscope o Qwen para mejorar riqueza visual y detalles de escena.