Wan2.1
Wan2.1
Wan2.1은 텍스트-투-비디오와 이미지-투-비디오를 1.3B와 14B 체크포인트로 다루는 광범위한 오픈 비디오 계열입니다. 실용적 강점은 모션 풍부한 생성, 시간 일관성, 읽을 수 있는 중국어/영어 텍스트이며, 품질·메모리 목표에 따라 480p와 720p 변형을 제공합니다.
출처: 문서
본문
<DiffusionModelTags tags={["video", "text-to-video", "image-to-video", "1.3B / 14B", "bilingual text"]} />
1. 모델 소개 (Model Introduction)
Wan2.1은 텍스트-투-비디오와 이미지-투-비디오를 1.3B와 14B 체크포인트로 다루는 광범위한 오픈 비디오 계열입니다. 실용적 강점은 모션 풍부한 생성, 시간 일관성, 읽을 수 있는 중국어/영어 텍스트이며, 품질·메모리 목표에 따라 480p와 720p 변형을 제공합니다.
소비자 GPU 실험에는 1.3B T2V 모델을, 풋프린트보다 품질이 중요할 때는 14B 모델을 선택하세요. Wan2.1은 dense DiT 계열입니다. timestep 전문화된 MoE 용량이나 통합 5B TI2V 경로가 필요하면 대신 Wan2.2를 사용하세요.
2. SGLang-diffusion 설치 (Installation)
SGLang-diffusion은 여러 설치 방법을 제공합니다. 하드웨어 플랫폼과 요구사항에 따라 가장 적합한 방법을 선택할 수 있습니다.
설치 지침은 공식 SGLang-diffusion 설치 가이드를 참조하세요.
3. 모델 배포 (Model Deployment)
이 섹션은 다양한 하드웨어 플랫폼과 사용 사례에 최적화된 배포 구성을 제공합니다.
3.1 기본 구성 (Basic Configuration)
Wan2.1 시리즈는 여러 크기와 해상도의 모델을 제공합니다. SGLang은 NVIDIA B200, B300, H200, H100 GPU와 AMD MI300X, MI325X, MI355X GPU, Ascend A2/A3 Series NPU에서 Wan2.1 배포를 지원합니다. 권장 시작 구성은 하드웨어, 모델 크기, 메모리 여유에 따라 다릅니다.
대화형 명령 생성기 (Interactive Command Generator): 아래 구성 선택기를 사용해 모델 변형과 옵션에 적합한 배포 명령을 자동 생성하세요.
3.2 구성 팁 (Configuration Tips)
현재 지원되는 최적화 옵션은 SGLang diffusion 지원 매트릭스에 나열되어 있습니다.
--vae-path: 커스텀 VAE 모델 또는 HuggingFace 모델 ID 경로. 지정하지 않으면 메인 모델 경로에서 VAE를 로드.--num-gpus {NUM_GPUS}: 사용할 GPU 수.--tp-size {TP_SIZE}: 텐서 병렬 크기(인코더/DiT용. CPU 오프로드에 크게 의존하면(≤ 1)유지).--sp-degree {SP_SIZE}: 시퀀스 병렬 정도.--ulysses-degree {ULYSSES_DEGREE}: USP에서 DeepSpeed-Ulysses 스타일 SP의 정도.--ring-degree {RING_DEGREE}: USP에서 ring attention 스타일 SP의 정도.--text-encoder-cpu-offload,--dit-cpu-offload,--vae-cpu-offload: 필요할 때 최고 GPU 메모리를 줄이기 위한 CPU 오프로드.
4. 모델 호출 (Model Invocation)
4.1 기본 사용법 (Basic Usage)
더 많은 API 사용법과 요청 예시는 SGLang Diffusion OpenAI API를 참조하세요.
4.1.1 서버 시작 후 요청 보내기
sglang serve --model-path Wan-AI/Wan2.1-T2V-14B-Diffusers --port 30000
curl http://127.0.0.1:30000/v1/images/generations \
-o >(jq -r '.data[0].b64_json' | base64 --decode > example.png) \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ***" \
-d '{
"model": "Wan-AI/Wan2.1-T2V-14B-Diffusers",
"prompt": "A cute baby sea otter",
"n": 1,
"size": "1024x1024",
"response_format": "b64_json"
}'
4.1.2 서버 시작 없이 비디오 생성
SERVER_ARGS=(
--model-path Wan-AI/Wan2.1-T2V-14B-Diffusers
--text-encoder-cpu-offload
--pin-cpu-memory
--num-gpus 4
--ulysses-degree=2
--enable-cfg-parallel
)
SAMPLING_ARGS=(
--prompt "A curious raccoon"
--save-output
--output-path outputs
--output-file-name "A curious raccoon.mp4"
)
sglang generate "${SERVER_ARGS[@]}" "${SAMPLING_ARGS[@]}"
4.2 고급 사용법 (Advanced Usage)
4.2.1 Cache-DiT 가속 (Cache-DiT Acceleration)
SGLang은 Diffusion Transformer(DiT)용 캐싱 가속 엔진인 Cache-DiT를 통합해 최소 품질 손실로 상당한 추론 속도 향상을 얻을 수 있습니다. SGLANG_CACHE_DIT_ENABLED=True로 활성화할 수 있습니다. 자세한 내용은 SGLang Cache-DiT 문서를 참조하세요.
기본 사용법 (Basic Usage)
SGLANG_CACHE_DIT_ENABLED=true sglang serve --model-path Wan-AI/Wan2.1-T2V-14B-Diffusers
고급 사용법 (Advanced Usage)
결합 구성 예시:
SGLANG_CACHE_DIT_ENABLED=true \
SGLANG_CACHE_DIT_FN=2 \
SGLANG_CACHE_DIT_BN=1 \
SGLANG_CACHE_DIT_WARMUP=4 \
SGLANG_CACHE_DIT_RDT=0.4 \
SGLANG_CACHE_DIT_MC=4 \
SGLANG_CACHE_DIT_TAYLORSEER=true \
SGLANG_CACHE_DIT_TS_ORDER=2 \
sglang serve --model-path Wan-AI/Wan2.1-T2V-14B-Diffusers
4.2.2 GPU 최적화 (GPU Optimization)
--dit-cpu-offload: DiT 추론에 CPU 오프로드 사용. FSDP로 메모리가 부족하면 활성화.--text-encoder-cpu-offload: 텍스트 인코더 추론에 CPU 오프로드 사용.--image-encoder-cpu-offload: 이미지 인코더 추론에 CPU 오프로드 사용.--vae-cpu-offload: VAE에 CPU 오프로드 사용.--pin-cpu-memory: CPU 오프로드를 위한 메모리 고정. "CUDA error: invalid argument"가 보이면 해결책으로 사용.
4.2.3 지원 LoRA 레지스트리
SGLang은 기본 모델 위에 Wan2.1 LoRA 어댑터 적용을 지원합니다:
| 원본 모델 (origin model) | 지원 LoRA (supported LoRA) |
|---|---|
| Wan-AI/Wan2.1-T2V-14B | NIVEDAN/wan2.1-lora |
| Wan-AI/Wan2.1-I2V-14B-720P | valiantcat/Wan2.1-Fight-LoRA |
예시:
sglang serve --model-path Wan-AI/Wan2.1-T2V-14B-Diffusers --port 30000 \
--lora-path NIVEDAN/wan2.1-lora
5. 참조 벤치마크 (Reference Benchmark)
다음 벤치마크는 하나의 모델, 하드웨어 플랫폼, SGLang 이미지, 파라미터 세트에 대한 시점 참조입니다. 완전한 하드웨어 지원 매트릭스가 아닙니다.
테스트 환경:
- 하드웨어: AMD MI300X GPU (1x)
- 모델: Wan-AI/Wan2.1-T2V-14B-Diffusers
- SGLang Docker 이미지 버전: 0.5.9
5.1 SGLang으로 벤치마크 실행하는 방법
내장 SGLang diffusion 벤치마크 스크립트로 하드웨어에서 Wan2.1 성능을 평가할 수 있습니다.
5.1.1 단일 비디오 생성
```bash Command theme={null}
sglang serve --model-path Wan-AI/Wan2.1-T2V-14B-Diffusers
```
**벤치마크 명령 (Benchmark Command):**
```bash Command theme={null}
python3 -m sglang.multimodal_gen.benchmarks.bench_serving \
--dataset vbench --task text-to-video --num-prompts 1 --max-concurrency 1
```
**결과 (Result):**
```text Output theme={null}
================= Serving Benchmark Result =================
Task: text-to-video
Model: Wan-AI/Wan2.1-T2V-14B-Diffusers
Dataset: vbench
--------------------------------------------------
Benchmark duration (s): 1958.41
Request rate: inf
Max request concurrency: 1
Successful requests: 1/1
--------------------------------------------------
Request throughput (req/s): 0.00
Latency Mean (s): 1958.4059
Latency Median (s): 1958.4059
Latency P99 (s): 1958.4059
--------------------------------------------------
Peak Memory Max (MB): 59662.00
Peak Memory Mean (MB): 59662.00
Peak Memory Median (MB): 59662.00
============================================================
```
```bash Command theme={null}
#One A3 Series card has 2 npu chips. Benchmark was done with two A3 Series cards
sglang serve \
--model-path /models/Wan-AI/Wan2.1-T2V-14B-Diffusers/ \
--tp-size 2 \
--sp-degree 2 \
--num-gpus 4 \
--attention-backend laser_attn
```
**벤치마크 명령 (Benchmark Command):**
```bash Command theme={null}
python -m sglang.multimodal_gen.benchmarks.bench_serving \
--dataset vbench \
--task text-to-video \
--num-prompts 1 \
--max-concurrency 1
```
**결과 (Result):**
```text Output theme={null}
================= Serving Benchmark Result =================
Task: text-to-video
Model: Wan-AI/Wan2.1-T2V-14B-Diffusers/
Dataset: vbench
--------------------------------------------------
Benchmark duration (s): 1282.90
Request rate: inf
Max request concurrency: 1
Successful requests: 1/1
Completed outputs: 1
Outputs per prompt: 1
--------------------------------------------------
Request throughput (req/s): 0.00
Output throughput (outputs/s): 0.00
Latency Mean (s): 1282.90
Latency Median (s): 1282.90
Latency P90 (s): 1282.90
Latency P95 (s): 1282.90
Latency P99 (s): 1282.90
--------------------------------------------------
Peak Memory Max (MB): 31938.00
Peak Memory Mean (MB): 31938.00
Peak Memory Median (MB): 31938.00
============================================================
```
5.1.2 Cache-DiT 가속으로 비디오 생성
```bash Command theme={null}
SGLANG_CACHE_DIT_ENABLED=true \
SGLANG_CACHE_DIT_FN=2 \
SGLANG_CACHE_DIT_BN=1 \
SGLANG_CACHE_DIT_WARMUP=4 \
SGLANG_CACHE_DIT_RDT=0.4 \
SGLANG_CACHE_DIT_MC=4 \
SGLANG_CACHE_DIT_TAYLORSEER=true \
SGLANG_CACHE_DIT_TS_ORDER=2 \
sglang serve --model-path Wan-AI/Wan2.1-T2V-14B-Diffusers
```
**벤치마크 명령 (Benchmark Command):**
```bash Command theme={null}
python3 -m sglang.multimodal_gen.benchmarks.bench_serving \
--dataset vbench --task text-to-video --num-prompts 1 --max-concurrency 1
```
**결과 (Result):**
```text Output theme={null}
================= Serving Benchmark Result =================
Task: text-to-video
Model: Wan-AI/Wan2.1-T2V-14B-Diffusers
Dataset: vbench
--------------------------------------------------
Benchmark duration (s): 556.99
Request rate: inf
Max request concurrency: 1
Successful requests: 1/1
--------------------------------------------------
Request throughput (req/s): 0.00
Latency Mean (s): 556.9885
Latency Median (s): 556.9885
Latency P99 (s): 556.9885
--------------------------------------------------
Peak Memory Max (MB): 69306.00
Peak Memory Mean (MB): 69306.00
Peak Memory Median (MB): 69306.00
============================================================
```
```bash Command theme={null}
#One A3 Series card has 2 npu chips. Benchmark was done with two A3 Series cards
SGLANG_CACHE_DIT_FN=2 \
SGLANG_CACHE_DIT_BN=1 \
SGLANG_CACHE_DIT_WARMUP=4 \
SGLANG_CACHE_DIT_RDT=0.4 \
SGLANG_CACHE_DIT_MC=4 \
SGLANG_CACHE_DIT_TAYLORSEER=true \
SGLANG_CACHE_DIT_TS_ORDER=2 \
SGLANG_CACHE_DIT_ENABLED=true sglang serve \
--model-path /models/Wan-AI/Wan2.1-T2V-14B-Diffusers/ \
--tp-size 2 \
--sp-degree 2 \
--num-gpus 4 \
--attention-backend laser_attn
```
**벤치마크 명령 (Benchmark Command):**
```bash Command theme={null}
python -m sglang.multimodal_gen.benchmarks.bench_serving \
--dataset vbench \
--task text-to-video \
--num-prompts 1 \
--max-concurrency 1
```
**결과 (Result):**
```text Output theme={null}
================= Serving Benchmark Result =================
Task: text-to-video
Model: Wan-AI/Wan2.1-T2V-14B-Diffusers/
Dataset: vbench
--------------------------------------------------
Benchmark duration (s): 413.88
Request rate: inf
Max request concurrency: 1
Successful requests: 1/1
Completed outputs: 1
Outputs per prompt: 1
--------------------------------------------------
Request throughput (req/s): 0.00
Output throughput (outputs/s): 0.00
Latency Mean (s): 413.88
Latency Median (s): 413.88
Latency P90 (s): 413.88
Latency P95 (s): 413.88
Latency P99 (s): 413.88
--------------------------------------------------
Peak Memory Max (MB): 32782.00
Peak Memory Mean (MB): 32782.00
Peak Memory Median (MB): 32782.00
============================================================
```