🎬 Formazione Video WAN LoRA

⚠️ In Sviluppo Intenso
Questa configurazione è ancora sperimentale.
Utilizzi come ispirazione per la generazione video basata su WAN (T2V/I2V/V2V/S2V) piuttosto che una guida pronta per la produzione.

Se desidera contribuire al nostro WAN Video Training Experimenten, contatti qui: Support Contacts.

Ordini una macchina GPU per WAN Video


🧩 1. Configurazione Ambiente

Crei un ambiente Python pulito utilizzando Conda (raccomandato) o 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 ..

💡 Consiglio: Su A100 GPU, utilizzi sempre la precisione BF16 per un allenamento stabile ed efficiente.


🧠 2. Configurazione del Modello

Posizioni i pesi del modello WAN 2.2 (a seconda del Suo compito: T2V, I2V, V2V, S2V) insieme ai file di VAE e text encoder nelle directory attese dal trainer — oppure passi questi dati manualmente tramite --model_name_or_path.

Esempi:

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. Preparazione del Dataset

WAN si aspetta un file di dataset JSONL con una voce per ogni clip video.

Formato esempio:

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

📘 Note:

  • Per Text-to-Video (T2V), Lei può fare riferimento a fotogrammi singoli, frame o a un video di esempio. Il prompt e le specifiche di destinazione (fps, secondi, risoluzione) sono obbligatori.

  • Salvi i Suoi dataset come:

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

⚙️ 4. accelerate Configurazione

Inizializzare una volta:

bash
accelerate config default

Oppure definisca manualmente 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

👉 Per l’allenamento su multi-GPU, imposti:

YAML
distributed_type: MULTI_GPU

🚀 5. Ottimizzazione LoRA (Esempio A100 40GB)

🧩 Testo-a-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

🖼 Immagine-a-video (I2V)

Modifichi solo il modello:

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

🔧 6. Impostazioni consigliate per A100

Condizione Aggiustamento consigliato
Molto VRAM Aumenti --train_batch_size a 2 oppure usare --lora_rank 96–128
Memoria VRAM limitata Aumenti --gradient_accumulation_steps to 12–16
LoRAs di Carattere/Stile 6k–12k passaggi, rank 32–64
Precisione Preferisca sempre BF16 rispetto a FP16
Ottimizzazione Abiliti --gradient_checkpointing + --enable_xformers

💾 7. Riprendi l’allenamento / Checkpoints

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

🧠 8. Inferenza / Test

La maggior parte dei flussi di lavoro WAN (CLI, ComfyUI, ecc.) consente di caricare direttamente gli adattatori LoRA.

Esempio da 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: Utilizzi il WAN Loader → attacchi LoRA(s) → renderizzi i Suoi video di test.


🧮 9. Addestramento Multi-GPU (Stesso Host)

Utilizzi più GPU (ad esempio, 2× A100 40GB) per un fine-tuning più rapido.

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

Per configurazioni con 4+ GPU, abiliti --seq_parallel se supportato — riduce significativamente il carico di VRAM.


⚡ 10. Riferimento agli Iperparametri

Tipo LR dimensione Alfa Passaggi Lotto Grad Accum Note
Generale 1e-4 64 64 10k–20k 1 8–12 Baseline equilibrato
Personaggio 1e-4 64–128 64 8k–12k 1 8 Ideale per clip brevi da 2–4 secondi
Stile 1e-4 32–64 64 6k–10k 1 8–12 Maggior gamma stilistica
Valutazione — — — ogni 1–2mila — — Test 2–4 prompt fissi + 2 prompt reali

🧾 Riassunto

Addestramento WAN LoRA consente:

  • Personalizzazione rapida dei modelli di generazione video WAN 2.2
  • Coerenza di stile, tema e personaggio nei risultati
  • Aggiustamento fine efficiente tramite LoRA e xFormers con consumo minimo di VRAM

Configurazione consigliata:

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

🏁 Esempio panoramico del flusso di lavoro

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

🎥 Imparare meglio. Generare più velocemente. WAN più robusto.