TheStageAI/Elastic-Wan2.2-T2V-A14B-Diffusers
TheStageAI
Texto a video
Versión Elastic del modelo Wan2.2-T2V-A14B para generación de video a partir de texto, optimizada por TheStage AI ANNA para reducir latencia manteniendo una degradación de calidad inferior al 2% en la variante S. Usa la interfaz de Hugging Face Diffusers mediante el SDK ElasticModels y actualmente ofrece compilaciones aceleradas para videos de 81 fotogramas a 480x480.
Como usar
Instalación y configuración:
pip install thestage
thestage config set --access-token
pip install thestage
pip install 'thestage-elastic-models[nvidia]' \
--extra-index-url https://thestage.jfrog.io/artifactory/api/pypi/pypi-thestage-ai-production/simple
pip install diffusers==0.35.1
pip install flash_attn==2.7.3 --no-build-isolation
pip uninstall apex
pip install opencv-python==4.11.0.86 imageio-ffmpeg==0.6.0 imageio ftfy
pip install hf_transfer
Ejemplo de inferencia con la variante acelerada S:
import torch
from elastic_models.diffusers import WanPipeline
from diffusers.utils import export_to_video
model_name = 'Wan-AI/Wan2.2-T2V-A14B-Diffusers'
device = torch.device("cuda")
dtype = torch.bfloat16
pipe = WanPipeline.from_pretrained(
model_name,
torch_dtype=dtype,
# 'original' for original model
# 'S' for accelerated model
mode='S'
)
pipe.vae.enable_tiling()
pipe.vae.enable_slicing()
pipe.to(device)
prompt = "A beautiful woman in a red dress dancing"
with torch.no_grad():
output = pipe(
prompt=prompt,
negative_prompt="",
height=480,
width=480,
num_frames=81,
num_inference_steps=40,
guidance_scale=3.0,
guidance_scale_2=2.0,
generator=torch.Generator("cuda").manual_seed(42),
)
video = output.frames[0]
export_to_video(video, "output.mp4", fps=16)
Reproducción del benchmark de latencia:
import time
import torch
from elastic_models.diffusers import WanPipeline
model_name = 'Wan-AI/Wan2.2-T2V-A14B-Diffusers'
device = torch.device("cuda")
pipe = WanPipeline.from_pretrained(
model_name,
torch_dtype=torch.bfloat16,
mode='S'
)
pipe.vae.enable_tiling()
pipe.vae.enable_slicing()
pipe.to(device)
prompt = "A beautiful woman in a red dress dancing"
generate_kwargs = {
"prompt": prompt,
"negative_prompt": "",
"height": 480,
"width": 480,
"num_frames": 81,
"num_inference_steps": 40,
"guidance_scale": 3.0,
"guidance_scale_2": 2.0,
}
def evaluate_pipeline():
torch.cuda.synchronize()
start_time = time.time()
with torch.no_grad():
pipe(**generate_kwargs)
torch.cuda.synchronize()
return time.time() - start_time
# Warm-up
for _ in range(2):
evaluate_pipeline()
# Benchmarking
num_runs = 5
total_time = sum(evaluate_pipeline() for _ in range(num_runs))
average_latency = total_time / num_runs
print(f"Average Latency over {num_runs} runs: {average_latency} seconds")
Funcionalidades
- Generación text-to-video basada en Wan2.2-T2V-A14B-Diffusers.
- Variante acelerada S producida con TheStage AI ANNA para priorizar velocidad con pérdida de precisión menor al 2%.
- Interfaz compatible con Hugging Face Diffusers usando elastic_models.diffusers.WanPipeline.
- Soporte orientado a GPU H100 y B200 con CUDA 12.8+ y Python 3.10-3.12.
- Generación compilada disponible actualmente para 81 fotogramas a resolución 480x480.
- Benchmarks VBench reportados con métricas de consistencia de sujeto, consistencia de fondo, suavidad de movimiento, grado dinámico, calidad estética y calidad de imagen.
- Latencia reportada para video 480x480 de 81 fotogramas: 90 s en H100 para modo S frente a 180 s del original; 99 s en B200 para modo S frente a 117 s del original.
Casos de uso
- Crear videos cortos desde prompts de texto usando Wan2.2 con menor latencia que el modelo original.
- Ejecutar generación text-to-video acelerada en infraestructura con GPU H100 o B200.
- Comparar calidad y rendimiento de la variante S frente al modelo Wan2.2-T2V-A14B original.
- Integrar una versión acelerada de WanPipeline en flujos existentes basados en Diffusers.