🎬 WAN Video LoRA Training

⚠️ In zware ontwikkeling
Deze configuratie is nog experimenteel.
Gebruik het als inspiratie voor WAN-gebaseerde videogeneratie (T2V/I2V/V2V/S2V), in plaats van een kant-en-klaar productiegereed handleiding.

WAN Video Trainings-experimenten? Neem dan contact met ons op via Ondersteuning Contactpersonen.

Bestel een GPU-server voor WAN-video


🧩 1. Omgevingsinstallatie

Anaconda (aangeraden) of venv gebruiken om een schone Python-omgeving aan te maken:

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 ..

💡 Tip: Op NVIDIA A100-GPUs, gebruik je altijd BF16-precisie voor stabiel en efficiënt trainen.


🧠 2. Modelinstelling

Plaats uw WAN 2.2 modelgewichten (afhankelijk van uw taak: T2V, I2V, V2V of S2V), samen met de VAE- en tekstencoder-bestanden, in de verwachte mapstructuur van de trainer – of geef ze handmatig door via --model_name_or_path

Voorbeelden:

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. Dataset Voorbereiding

JSONL dataset bestand met één opgave per videoclip.

Voorbeeldformaat:

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"}

📘 Aantekeningen:

  • Voor Tekst-naar-video (T2V), kunt u verwijzen naar stilstaande beelden, frames of een dummy-video. De prompt en de doel-specificaties (fps, seconden, resolutie) zijn verplicht.

  • Sla uw datasets op als:

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

⚙️ 4. accelerate Configuratie

Initialiseer één keer:

bash
accelerate config default

Of definieer handmatig in ~/.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

👉 Voor multi-GPU training, stel in:

yaml
distributed_type: MULTI_GPU

🚀 5. LoRA Fijnstemming (A100 40GB Voorbeeld)

🧩 Tekst-naar-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

🖼 Afbeelding-naar-Video (I2V)

Wijzig alleen het model:

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

🔧 6. Aanbevolen A100 optimalisaties

Situatie Aanbevolen aanpassing
Voldoende VRAM Verhogen --train_batch_size naar 2 of gebruik --lora_rank 96–128
Beperkt VRAM Verhogen --gradient_accumulation_steps to 12–16
Karakter/Stijl LoRA's 6k–12k stappen, rang 32–64
Precisie BF16 altijd verkiezen boven FP16
Optimalisatie Inschakelen --gradient_checkpointing + --enable_xformers

💾 7. Hervatten Training / Checkpoints

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

🧠 8. Inferentie / Testen

De meeste WAN-workflows (CLI, ComfyUI, etc.) ondersteunen het direct laden van LoRA-adapters.

CLI Voorbeeld:

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: Gebruik de WAN Loader → voeg LoRA(s) toe → genereer je testvideo’s.


🧮 9. Multi-GPU Training (Dezelfde Host)

Maak gebruik van meerdere GPU's (bijv. 2× A100 40GB) voor snellere fine-tuning.

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

Voor setups met 4+ GPU's, schakel --seq_parallel indien ondersteund — vermindert de VRAM-belasting aanzienlijk.


⚡ 10. Hyperparameter Referentie

Type LR Rang Alpha Stappen Batch Grad Accum Notities
Algemeen 1e-4 64 64 10k–20k 1 8–12 Gebalanceerde basislijn
Karakter 1e-4 64–128 64 8k–12k 1 8 Ideaal voor korte clips van 2–4 seconden
Stijl 1e-4 32–64 64 6k–10k 1 8–12 Breder stilistisch bereik
Evaluatie elke 1–2k Test 2–4 vast + 2 echte prompts

🧾 Samenvatting

WAN LoRA-training maakt mogelijk:

  • Snelle aanpassing van WAN 2.2 videogeneratiemodellen
  • Consistentie van stijl, thema en personages in outputs
  • Efficiënte fijnafstemming met LoRA en xFormers met minimale VRAM overhead

Aanbevolen instellingen:

  • ⚙️ CUDA 12.x
  • 🧠 NVIDIA A100 (40 GB)
  • 💡 BF16 precisie
  • 🧩 xFormers + gradient checkpointing

🏁 Overzicht voorbeeld workflow

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

🎥 Train slimmer. Genereer sneller. WAN sterker.