Génération Vidéo SOTA

Wan2.2 Plongée Technique

Modèle de génération vidéo de nouvelle génération basé sur Diffusion Transformer (DiT), intégrant Flow Matching et Mixture-of-Experts (MoE).

Aperçu de l'Architecture

Wan2.2 est un système de génération vidéo de bout en bout. Il abandonne l'U-Net traditionnel et adopte l'architecture DiT pour gérer les longues séquences de tokens vidéo. Il possède 27B de paramètres, mais grâce à l'activation clairsemée MoE, l'utilisation de la VRAM en inférence équivaut à un modèle de 14B.

Entrée Unifiée (VCU)

Encode texte, images et masques uniformément.

Compression Spatio-temporelle Efficace

Wan-VAE atteint un taux de compression de 4×8×8, réduction de 256x.

Compréhension Multilingue

Utilise l'encodeur umT5, support natif bilingue (Anglais/Chinois).

Pipeline de Flux de Données

Entrée Vidéo
Prompt Texte
Encodeur Wan-VAE
3D Causal Conv
Encodeur umT5
Text Embedding
Cœur DiT
Flow Matching
Commutation MoE
Décodeur Wan-VAE
Reconstruction

VAE Spatio-temporel : L'Art de la Compression

Les données vidéo contiennent une forte redondance. Wan-VAE réalise une compression simultanée dans l'espace et le temps via une convolution 3D.
->

Détails Techniques Clés :

  • Conv 3D Causale : Assure que l'encodage des images ne dépend que des images précédentes.
  • Perte Hybride : Combinaison des pertes L1, KL, LPIPS et GAN.
  • Cache de Caractéristiques : Met en cache les caractéristiques des étapes précédentes pour une génération infinie.

Principes de Flow Matching

Visualisation : Flow Matching vs. Diffusion Traditionnelle

Wan2.2 utilise le Flow Matching. Sa trajectoire de génération est une ligne droite (Chemin de Transport Optimal), plus efficace et stable que la "marche aléatoire" de la diffusion traditionnelle.

Entrée Noise
Sortie Video
Flow Matching (Droit)
Diffusion Traditionnelle (Aléatoire)

Objectif d'Entraînement :

Le modèle prédit directement le vecteur vitesse.

Pourquoi Flow Matching ?

La diffusion traditionnelle (DDPM) simule des EDS avec des chemins courbes. Flow Matching construit une EDO Déterministe du bruit aux données. Les chemins droits permettent de plus grands pas (20-50 étapes).

Définition Mathématique

  • 1. Chemin d'Interpolation :
  • 2. Champ de Vecteurs :
  • 3. Fonction de Perte :

Architecture Mixture-of-Experts (MoE)

Le MoE de Wan2.2 est spécialisé pour la dimension temporelle du processus de débruitage. Les premières étapes (composition) et les dernières étapes (détails) nécessitent des capacités distinctes.

Démo Interactive : Commutation Dynamique MoE

Total Params : 27B | Actifs : 14B
Bruit Pur (Input) Vidéo (Output)
Stade Précoce (Bruit Élevé) Stade Raffinement (Bruit Faible)
Pas de Temps Actuel 1.00

Modèle Actif

Expert Bruit Élevé

Tâche Prioritaire

Mise en page & Structure Globale

Seuil de Commutation
t

Mise en page & Structure Globale

Division du Travail des Experts

ComposantExpert Bruit ÉlevéExpert Bruit Faible
ConditionSNR Faible (Tôt)SNR Élevé (Tard)
RôleGrand mouvement, mise en pageTexture, détails lumière
EntraînementDepuis ZéroAffiné depuis Wan2.1

Implémentation Code

Le code suivant montre comment utiliser la librairie Hugging Face `diffusers` pour charger Wan2.2 et générer une vidéo. La commutation MoE est gérée en interne.

Inférence Python (Diffusers)
import torch
from diffusers import WanPipeline
from diffusers.utils import export_to_video

# 1. Charger modèle (Charge poids MoE auto)
# Le code suivant montre comment utiliser la librairie Hugging Face `diffusers` pour charger Wan2.2 et générer une vidéo. La commutation MoE est gérée en interne.
pipe = WanPipeline.from_pretrained(
    "Wan-AI/Wan2.2-T2V-A14B-Diffusers",
    torch_dtype=torch.bfloat16
)

# 2. Activer déchargement CPU pour économiser VRAM
pipe.enable_model_cpu_offload()

# 3. Générer Vidéo (Flow Matching nécessite ~50 étapes)
prompt = "A cinematic drone shot of a futuristic city with flying cars, neon lights, 4k, high quality."
output = pipe(
    prompt=prompt,
    height=720,
    width=1280,
    num_inference_steps=50,
    guidance_scale=5.0
).frames[0]

# 4. Sauvegarder Résultat
export_to_video(output, "wan_futuristic_city.mp4")