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.