🎬 Formation WAN LoRA Vidéo

⚠️ En cours de développement intensif
Cette configuration est encore expérimentale.
Utilisez-le comme source d'inspiration pour la génération vidéo basée sur le WAN (T2V/I2V/V2V/S2V) plutôt qu'un guide prêt à l'emploi.

Commander un serveur GPU pour WAN Video


🧩 1. Configuration de l'environnement

Créer un environnement Python propre en utilisant Conda (recommandé) ou venv:

bash
# 1) Conda / Virtual Environment
conda create -n wan22 python=3.10 -y
conda activate wan22

# 2) Install PyTorch (CUDA 12.x Build)
pip install --upgrade torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
pip install xformers accelerate transformers datasets peft bitsandbytes==0.43.3 safetensors einops
pip install opencv-python pillow tqdm

# 3) Clone Trainer
git clone https://github.com/Wan-Video/DiffSynth-Studio.git
cd DiffSynth-Studio
pip install -r requirements.txt || true
cd ..

💡 Conseil : Sur NVIDIA GPU A100utilisez toujours BF16 précision pour un entraînement stable et efficace.


🧠 2. Configuration du modèle

Placez votre Poids du modèle WAN 2.2 (selon votre tâche : T2V, I2V, V2V, S2V) ainsi que VAE et encodeur de texte fichiers dans les répertoires attendus du formateur — ou les transmettre manuellement via --model_name_or_path.

Exemples :

bash
--model_name_or_path Wan-AI/Wan2.2-T2V-A14B   # Text-to-Video
--model_name_or_path Wan-AI/Wan2.2-I2V-A14B   # Image-to-Video

🎞 3. Préparation de l'ensemble de données

WAN attend un ensemble de données JSONL fichier avec une entrée par clip vidéo.

Format d'exemple :

json
{"video": "/data/myset/clip_0001.mp4", "prompt": "a cozy coffee shop scene at golden hour", "fps": 24, "seconds": 4, "resolution": "1280x720"}
{"video": "/data/myset/clip_0002.mp4", "prompt": "rainy neon city street, cinematic", "fps": 24, "seconds": 4, "resolution": "1280x720"}

📘 Remarques :

  • Pour Texte vers Vidéo (T2V)vous pouvez vous référer à des images fixes, des images ou une vidéo factice. prompt et les spécifications cibles (fps, seconds, resolutionsont requis.

  • Stockez vos jeux de données comme suit :

    • /data/wan22/train.jsonl
    • /data/wan22/val.jsonl

⚙️ 4. accelerate Configuration

Initialiser une fois :

bash
accelerate config default

Ou définissez manuellement dans ~/.cache/huggingface/accelerate/default_config.yaml:

yaml
compute_environment: LOCAL_MACHINE
distributed_type: NO
mixed_precision: bf16
num_processes: 1
gpu_ids: "0"
dynamo_backend: NO

👉 Pour l'entraînement multi-GPU, définissez :

yaml
distributed_type: MULTI_GPU

🚀 5. Ajustement fin LoRA (Exemple A100 40 Go)

🧩 Text-to-Video (720p, 4 sec, BF16)

bash
conda activate wan22
cd DiffSynth-Studio

accelerate launch \
  train_wan_lora.py \
  --model_name_or_path "Wan-AI/Wan2.2-T2V-A14B" \
  --output_dir /data/wan22_lora_out \
  --dataset_json /data/wan22/train.jsonl \
  --resolution 720 --fps 24 --clip_seconds 4 \
  --train_batch_size 1 \
  --gradient_accumulation_steps 8 \
  --max_train_steps 20000 \
  --learning_rate 1e-4 --warmup_steps 500 \
  --lora_rank 64 --lora_alpha 64 \
  --use_bf16 --enable_xformers --gradient_checkpointing \
  --checkpointing_steps 1000 \
  --validation_json /data/wan22/val.jsonl --validation_steps 2000

🖼 Image vers Vidéo (I2V)

Modifier uniquement le modèle :

bash
--model_name_or_path "Wan-AI/Wan2.2-I2V-A14B"

🔧 6. Ajustements recommandés pour A100

Situation Ajustement recommandé
Beaucoup de VRAM Augmenter --train_batch_size à 2 ou utiliser --lora_rank 96–128
VRAM limitée Augmenter --gradient_accumulation_steps to 12–16
LoRAs de Personnage/Style 6 000 à 12 000 étapes, rang 32 à 64
Précision Privilégiez toujours BF16 au lieu de FP16
Optimisation Activer --gradient_checkpointing + --enable_xformers

💾 7. Reprise de l'entraînement / Points de contrôle

bash
accelerate launch train_wan_lora.py \
  ... (same parameters) \
  --resume_from_checkpoint "/data/wan22_lora_out/checkpoint-10000"

🧠 8. Inférence / Test

La plupart des workflows WAN (CLI, ComfyUI, etc.) prennent en charge le chargement direct des adaptateurs LoRA.

Exemple CLI :

bash
python infer_wan.py \
  --model_name_or_path "Wan-AI/Wan2.2-T2V-A14B" \
  --lora_path "/data/wan22_lora_out" \
  --prompt "cozy coffee shop at golden hour, bokeh" \
  --negative_prompt "distorted faces, artifacts" \
  --resolution 720 --fps 24 --seconds 4 \
  --output /data/wan22/samples/test001.mp4 \
  --use_bf16 --enable_xformers

💡 ComfyUI : Utilisez le chargeur WAN → attachez les LoRA → rendez vos vidéos de test.


🧮 9. Entraînement multi-GPU (sur le même hôte)

Exploitez plusieurs GPU (par exemple, 2× A100 40GB) pour un réglage fin plus rapide.

bash
accelerate config  # set distributed_type=MULTI_GPU, num_processes=2
accelerate launch \
  --multi_gpu \
  train_wan_lora.py \
  ... (same parameters) \
  --train_batch_size 1 --gradient_accumulation_steps 8

Pour les configurations avec 4 GPU ou plus, activez --seq_parallel si pris en charge — réduit considérablement la charge de la VRAM.


⚡ 10. Référence des hyperparamètres

Type LR Rang Alpha Étapes Lot Accumulation de gradient Remarques
Général 1e-4 64 64 10k–20k 1 8–12 Ligne de base équilibrée
Personnage 1e-4 64–128 64 8k–12k 1 8 ```json { "translated_text": "Idéal pour les clips courts de 2 à 4 secondes" " } ```
Style 1e-4 32–64 64 6k–10k 1 8–12 Gamme stylistique plus large
Évaluation tous les 1–2k Test 2–4 fixes + 2 invites réelles

🧾 Résumé

Formation WAN LoRA permet :

  • Personnalisation rapide des modèles de génération vidéo WAN 2.2
  • Cohérence du style, du thème et du personnage dans les résultats
  • Réglage fin efficace utilisant LoRA et xFormers avec une surcharge minimale de VRAM

Configuration recommandée :

  • ⚙️ CUDA 12.x
  • 🧠 NVIDIA A100 (40 Go)
  • 💡 Précision BF16
  • 🧩 xFormers + checkpointing de gradient

🏁 Aperçu du flux de travail exemple

texte
Environment  →  Model Setup  →  Dataset Prep  →  LoRA Fine-tune  →  Inference

🎥 Entraînez-vous plus intelligemment. Générez plus rapidement. WAN plus performant.