<aside> 💡

Key contributions

</aside>

# 0. Introduction

### 주요 특징

Wan 2.1은 공개 이후 **"오픈소스 SORA"**라 불리며 커뮤니티의 뜨거운 관심을 받았다. 핵심 키워드는 **3D Causal VAE + Diffusion Transformer + Flow Matching + 대규모 데이터셋**. 특히 다국어 T2V에서 **영상 내부 텍스트**까지 정확히 합성 가능한 첫 모델이라는 점이 인상적이다.

- **3D Causal VAE —** 시간 인과성을 보존하면서 64x 압축.
- **Flow Matching —** 노이즈 제거를 연속 확률 흐름으로 표현해 안정 및 가속.
- **15 B Video + 10 B Image —** 시각‑텍스트 정합 & 하드 케이스 학습.
- **6‑단계 Curriculum —** 해상도, 복잡도를 점진적으로 상승.
- **VBench 0.724 —** Sora(0.700), Gen‑2(0.672)를 능가.

# 1. Wan2.1 Model Architecture

## 1-1. Overview

| Items                     | 14 B (720p)             | 14 B (480p) | 1.3 B (480p) |
| ------------------------- | ----------------------- | ----------- | ------------ |
| **Parameter Size**        | ≈ 14.0 B                | ≈ 14.0 B    | ≈ 1.3 B      |
| **Resolution**            | 1280x720                | 960x540     | 960x540      |
| **Frame**                 | 80 (5 s@16 fps)         | 80          | 80           |
| **DiT Layers/Embeddings** | 40 / 5120               | 40 / 5120   | 30 / 1536    |
| **VAE down samples**      | 8x spatial, 4x temporal | 동일        | 동일         |
| **Data**                  | 15 B video + 10 B image | 동일        | 동일         |
| **Licenxe**               | Apache 2.0              | Apache 2.0  | Apache 2.0   |

## 1-2. Details

### Wan‑VAE 

#### 1) 설계 목표

1. **시간 인과성** — 미래 프레임 참조 없이 현재 프레임 인코딩.
2. **메모리 효율** — 긴 영상도 노트북 GPU에서 스트리밍 가능.
3. **재현 품질** — PSNR, SSIM ≥ 동급 2D VAE + 1 dB 이상.

#### 2) 인코더 구조

- 입력 : RGB $T=80$ frames, $HxW∈{720,540}$.
- **Conv3D‑Causal x 5 블록** → 시간 축 causal padding.
- **Down sample (2x) x 3** → 최종 8x spatial 축소, 4x temporal 축소.
- 출력 : `latent_seq ∈ R^{(1+T/4) x (H/8) x (W/8) x C}`.

#### 3) 디코더 구조

- **ConvTranspose3D 블록** x 대칭으로 구성.
- Skip connection : 인코더 각 단계 feature → 대응 디코더 단계.
- 마지막 층 : `tanh` → [-1,1] 픽셀 범위.

#### 4) 히스토리 캐시 & 청크 스트리밍

- **청크 크기 4f** — 인코딩 시 과거 latents 캐시에 저장.
- **Decoder**는 동일 청크 단위로 순차 복원 → GPU 2 GB 메모리 세이브.

### Diffusion Transformer (DiT) 

#### 1) 블록 구성 & 파라미터

- **Layer = 40 (14 B) / 30 (1.3 B)**.
- **Self‑Attention** → 토큰수 ≈ (21 latents) x H/8 x W/8 ≈ 13 k.
- **FFN hidden** = 8 x d_model.
- **GEGLU** 활성화 함수.

#### 2) 시간 임베딩 ⚡ Adaptive LN

- `t_embed = MLP(sinusoid(t))` (128‑d).
- 각 블록 AdaLN: `y = (1 + s) \\cdot (x / \\sqrt{Var} + \\epsilon) + b`, where `(s,b)` ← Linear(`t_embed`).
- **공유 MLP** → 파라미터 효율, 단계별 일관성.

#### 3) 크로스 어텐션 ↔ 텍스트, 이미지 조건

- Query = video latents, Key/Value = `concat(text_emb, img_emb)`.
- **Class‑free** 조건 블랭크 → CFG 때 사용.

#### 4) Flow Matching Loss & 학습 안정화

- 타깃 : `\\mathbf{F}(x,t) = -\\sigma(t)\\nabla_x \\log p_t(x)`.
- 모델 `\\hat{F}_\\theta` 로 **ODE integrator**(DDIM) 해석, 스텝 수 ↓.

### UMT5 텍스트 인코더 

#### 1) 다국어 사전학습

- 2 T 토큰, 100+ 언어.
- **자체 BPE 100k** → 중국어, 영어 토큰 효율 ↑.

#### 2) 텍스트‑비주얼 브릿지

- Text [CLS] embedding → DiT global prompt.
- Token‑wise cross‑attn → fine‑grained alignment.

### I2V 이미지 조건 분기 

#### 1) CLIP Vision 인코더

- ViT‑H @ 14 patch, 1280‑d.
- Linear → d_model dim, LayerNorm.

#### 2) 첫 프레임 잠재 삽입 & 정합 유지

- `latent_seq[0] = VAE(img)` 대체.
- **Noise schedule shift** → 첫 프레임 복사 but 나머지 프레임은 노이즈.

### 부가 모듈 : 비디오‑투‑오디오

- Auto‑tag video → Text2Audio LLM (Qwen‑Audio) → WAV.

# 2. Train Methods

## 2-1. 대규모 데이터셋 파이프라인

#### 1차 — 기본 필터링

- **장면 끊김**, **블랙 바**, **워터 마크** 검출 모델.
- FPS < 8 or > 60 → 제거.

#### 2차 — 시맨틱 군집 & 품질 스코어

- ViT ‑ B/32 feature → K‑means 100 클러스터.
- 각 클러스터 500 샘플 인수 작업 → 작은 평가 모델.

#### 3차 — 시각적 텍스트 강화

- 합성: 폰트 8k x 배경 3k.
- 실사: pan‑OCR → text box IOU > 0.7 선택.

#### 4차 — 고품질 후처리 세트

- PQV (Photo Quality Value) 상위 20 %.
- 동영상 : Motion Complexity ↑, Scene Diversity ↑.

## 2-2. 6단계 커리큘럼 학습

| Step | Resolution | Length | Batch | LR   | Purpose                 |
| ---- | ---------- | ------ | ----- | ---- | ----------------------- |
| 1    | 256² img   | —      | 32 k  | 1e‑3 | 텍스트‑시각 매핑 초기화 |
| 2    | 192²       | 5 s    | 8 k   | 6e‑4 | 움직임 패턴 습득        |
| 3    | 480²       | 5 s    | 4 k   | 4e‑4 | 디테일 ↑                |
| 4    | 720²       | 5 s    | 2 k   | 3e‑4 | 고해상도 적응           |
| 5    | 480²       | 5 s    | 1 k   | 1e‑4 | 고품질 FT(480p)         |
| 6    | 720²       | 5 s    | 0.5 k | 8e‑5 | 고품질 FT(720p)         |

## 2-3. 손실 함수 & Guidance

#### 1) Flow Matching Loss

$$
\\mathcal{L}_{FM} = \\mathbb{E}\\left[\\left|\\hat{F}_\\theta(x,t) - F(x,t)\\right|_2^2\\right]
$$

#### 2) CFG & CFG‑Zero

- Scale 3.5 ~ 7.0.
- CFG‑Zero: 무조건 분기 replace → "dropout mask" α = 0.1.

## 2-4. 분산 & 메모리 최적화

#### 1) RingAttention & Ulysses 시퀀스 병렬

- 토큰 길이 ≈ 13 k → GPU 32 GB 초과 ⚠️.
- Query x Key 분할 → all‑reduce cost ↓ 45 %.

#### 2) Activate Offload & Checkpoint

- GPU↔CPU  pipelined swap, step latency +2 % … VRAM ‑30 %.

#### 3) 지능형 노드 스케줄러

- Node health ping → slow node 10x 미만시 자동 축출.

# 3. Hyper-Parameters

## 3-1. Train

| Items               | Values                                  |
| ------------------- | --------------------------------------- |
| **Optimizer**       | *AdamW* (β₁ = 0.9, β₂ = 0.95, ε = 1e‑8) |
| **LR scheduler**    | Cosine decay w/ 10 % warm‑up            |
| **Base LR**         | 4e‑4 (14B) / 6e‑4 (1.3B)                |
| **Total batch**     | 4 096 (14B) / 8 192 (1.3B)              |
| **Grad accum**      | 8 steps                                 |
| **EMA**             | 0.9995                                  |
| **Diffusion steps** | 50 (추론) / 1 000 (학습)                |
| **CFG scale**       | 3.5 – 7.0                               |
| **Dropout**         | 0.1 (attn / ffn)                        |

## 3-2. Inference

| Items              | Default Values | Notes               |
| ------------------ | -------------- | ------------------- |
| **Sampling steps** | 50             | DDIM solver         |
| **CFG Scale**      | 5.0            | ≥7 : overshoot risk |
| **Seed**           | 42             | 재현성              |
| **Output FPS**     | 16             | 변경 가능           |

# 4. Evaluation & Comparison

### 1) VBench 종합 점수

- Wan 2.1‑14B **0.724** > Sora 0.700 > Gen‑2 0.672 > Pika 0.612.

### 2) Leader Board

| Categories    | SOTA    | Wan score |
| ------------- | ------- | --------- |
| 인물 동일성   | Wan 2.1 | 0.81      |
| 물리 정합성   | Sora    | 0.78      |
| 카메라워크    | Wan 2.1 | 0.83      |
| 플리커 최소화 | Gen‑2   | 0.77      |
| OCR 정확도    | Wan 2.1 | 0.85      |

### 3) Ablation Studies

- **Flow Matching ↘** DDPM 교체 → FVD +7 ↗︎.
- **시간 임베딩 공유 MLP 제거** → CLIP‑SIM ‑0.3.

### 4) Limitations & Error cases

1. **긴 장면 전환** 시 동일 인물 얼굴 drift.
2. **고주파 텍스처**(잔디, 물결)에서 moire pattern.
3. 10 s 이상 시퀀스 → 플리커 증가, 메모리 폭증.

# 5. Summary & Insights

#### 1) Token Compression & 3D VQVAE

- 프레임당 토큰 수 ↓ ~16x → 어텐션 O(n²) 부담 완화.

#### 2) Sparse Global Attention

- Per‑frame block sparse + periodic global token → 장면 일관성 ↑.

#### 3) Cascade Upsampling

- MS‑VideoFusion 구조: 128² → 256² → 512² → 1080².

#### 4) 3D Coherence Loss

- CLIP‑VIT + T‑ViT dual loss로 플리커 FVD ‑15 달성 사례.

#### 5) Multimodal Fusion → Scene Generation

- Text + Layout + Audio + Physics Prompt → 인터랙티브 씬.