模型概述
模型特點
模型能力
使用案例
🚀 Wan2.1
Wan2.1 是一套全面且開放的視頻基礎模型套件,突破了視頻生成的界限。它能在多個基準測試中超越現有開源模型和最先進的商業解決方案,支持消費級 GPU,可用於文本到視頻、圖像到視頻、視頻編輯、文本到圖像和視頻到音頻等多種任務,還能生成中英文文本,其強大的視頻 VAE 能高效處理視頻。
🚀 快速開始
安裝
克隆倉庫:
git clone https://github.com/Wan-Video/Wan2.1.git
cd Wan2.1
安裝依賴:
# 確保 torch >= 2.4.0
pip install -r requirements.txt
模型下載
模型 | 下載鏈接 | 說明 |
---|---|---|
T2V - 14B | 🤗 Huggingface 🤖 ModelScope | 支持 480P 和 720P |
I2V - 14B - 720P | 🤗 Huggingface 🤖 ModelScope | 支持 720P |
I2V - 14B - 480P | 🤗 Huggingface 🤖 ModelScope | 支持 480P |
T2V - 1.3B | 🤗 Huggingface 🤖 ModelScope | 支持 480P |
⚠️ 重要提示
1.3B 模型能夠生成 720P 分辨率的視頻。然而,由於在該分辨率下的訓練有限,與 480P 相比,結果通常不太穩定。為獲得最佳性能,建議使用 480P 分辨率。
使用 🤗 huggingface - cli 下載模型:
pip install "huggingface_hub[cli]"
huggingface-cli download Wan-AI/Wan2.1-T2V-1.3B-Diffusers --local-dir ./Wan2.1-T2V-1.3B-Diffusers
使用 🤖 modelscope - cli 下載模型:
pip install modelscope
modelscope download Wan-AI/Wan2.1-T2V-1.3B-Diffusers --local_dir ./Wan2.1-T2V-1.3B-Diffusers
運行文本到視頻生成
本倉庫支持兩個文本到視頻模型(1.3B 和 14B)和兩種分辨率(480P 和 720P)。這些模型的參數和配置如下:
任務 | 480P | 720P | 模型 |
---|---|---|---|
t2v - 14B | ✔️ | ✔️ | Wan2.1 - T2V - 14B |
t2v - 1.3B | ✔️ | ❌ | Wan2.1 - T2V - 1.3B |
基礎用法
為便於實現,我們先從跳過 提示擴展 步驟的基本推理過程開始。
- 單 GPU 推理
python generate.py --task t2v-1.3B --size 832*480 --ckpt_dir ./Wan2.1-T2V-1.3B --sample_shift 8 --sample_guide_scale 6 --prompt "Two anthropomorphic cats in comfy boxing gear and bright gloves fight intensely on a spotlighted stage."
如果遇到 OOM(內存不足)問題,可以使用 --offload_model True
和 --t5_cpu
選項來減少 GPU 內存使用。例如,在 RTX 4090 GPU 上:
python generate.py --task t2v-1.3B --size 832*480 --ckpt_dir ./Wan2.1-T2V-1.3B --offload_model True --t5_cpu --sample_shift 8 --sample_guide_scale 6 --prompt "Two anthropomorphic cats in comfy boxing gear and bright gloves fight intensely on a spotlighted stage."
💡 使用建議
如果使用
T2V - 1.3B
模型,建議將參數--sample_guide_scale
設置為 6。--sample_shift
參數可以根據性能在 8 到 12 的範圍內調整。
- 使用 FSDP + xDiT USP 進行多 GPU 推理
pip install "xfuser>=0.4.1"
torchrun --nproc_per_node=8 generate.py --task t2v-1.3B --size 832*480 --ckpt_dir ./Wan2.1-T2V-1.3B --dit_fsdp --t5_fsdp --ulysses_size 8 --sample_shift 8 --sample_guide_scale 6 --prompt "Two anthropomorphic cats in comfy boxing gear and bright gloves fight intensely on a spotlighted stage."
也可以直接使用 🤗 Diffusers 運行 Wan!
import torch
from diffusers import AutoencoderKLWan, WanPipeline
from diffusers.utils import export_to_video
# 可用模型: Wan-AI/Wan2.1-T2V-14B-Diffusers, Wan-AI/Wan2.1-T2V-1.3B-Diffusers
model_id = "Wan-AI/Wan2.1-T2V-1.3B-Diffusers"
vae = AutoencoderKLWan.from_pretrained(model_id, subfolder="vae", torch_dtype=torch.float32)
pipe = WanPipeline.from_pretrained(model_id, vae=vae, torch_dtype=torch.bfloat16)
pipe.to("cuda")
prompt = "A cat walks on the grass, realistic"
negative_prompt = "Bright tones, overexposed, static, blurred details, subtitles, style, works, paintings, images, static, overall gray, worst quality, low quality, JPEG compression residue, ugly, incomplete, extra fingers, poorly drawn hands, poorly drawn faces, deformed, disfigured, misshapen limbs, fused fingers, still picture, messy background, three legs, many people in the background, walking backwards"
output = pipe(
prompt=prompt,
negative_prompt=negative_prompt,
height=480,
width=832,
num_frames=81,
guidance_scale=5.0
).frames[0]
export_to_video(output, "output.mp4", fps=15)
高級用法
擴展提示可以有效豐富生成視頻中的細節,進一步提高視頻質量。因此,建議啟用提示擴展。我們提供以下兩種提示擴展方法:
- 使用 Dashscope API 進行擴展
- 提前申請
dashscope.api_key
(英文 | 中文)。 - 配置環境變量
DASH_API_KEY
以指定 Dashscope API 密鑰。對於阿里雲國際站的用戶,還需要將環境變量DASH_API_URL
設置為 'https://dashscope-intl.aliyuncs.com/api/v1'。更多詳細說明,請參考 dashscope 文檔。 - 對於文本到視頻任務使用
qwen - plus
模型,對於圖像到視頻任務使用qwen - vl - max
模型。 - 可以使用參數
--prompt_extend_model
修改用於擴展的模型。例如:
- 提前申請
DASH_API_KEY=your_key python generate.py --task t2v-1.3B --size 832*480 --ckpt_dir ./Wan2.1-T2V-1.3B --prompt "Two anthropomorphic cats in comfy boxing gear and bright gloves fight intensely on a spotlighted stage" --use_prompt_extend --prompt_extend_method 'dashscope' --prompt_extend_target_lang 'ch'
- 使用本地模型進行擴展
- 默認情況下,使用 HuggingFace 上的 Qwen 模型進行此擴展。用戶可以根據可用的 GPU 內存大小進行選擇。
- 對於文本到視頻任務,可以使用
Qwen/Qwen2.5 - 14B - Instruct
、Qwen/Qwen2.5 - 7B - Instruct
和Qwen/Qwen2.5 - 3B - Instruct
等模型。 - 對於圖像到視頻任務,可以使用
Qwen/Qwen2.5 - VL - 7B - Instruct
和Qwen/Qwen2.5 - VL - 3B - Instruct
等模型。 - 較大的模型通常提供更好的擴展結果,但需要更多的 GPU 內存。
- 可以使用參數
--prompt_extend_model
修改用於擴展的模型,允許指定本地模型路徑或 Hugging Face 模型。例如:
python generate.py --task t2v-1.3B --size 832*480 --ckpt_dir ./Wan2.1-T2V-1.3B --prompt "Two anthropomorphic cats in comfy boxing gear and bright gloves fight intensely on a spotlighted stage" --use_prompt_extend --prompt_extend_method 'local_qwen' --prompt_extend_target_lang 'ch'
運行本地 Gradio
cd gradio
# 如果使用 dashscope 的 API 進行提示擴展
DASH_API_KEY=your_key python t2v_1.3B_singleGPU.py --prompt_extend_method 'dashscope' --ckpt_dir ./Wan2.1-T2V-1.3B
# 如果使用本地模型進行提示擴展
python t2v_1.3B_singleGPU.py --prompt_extend_method 'local_qwen' --ckpt_dir ./Wan2.1-T2V-1.3B
✨ 主要特性
- 👍 SOTA 性能:Wan2.1 在多個基準測試中始終優於現有的開源模型和最先進的商業解決方案。
- 👍 支持消費級 GPU:T2V - 1.3B 模型僅需 8.19 GB VRAM,幾乎與所有消費級 GPU 兼容。它可以在 RTX 4090 上約 4 分鐘內生成一個 5 秒的 480P 視頻(不使用量化等優化技術)。其性能甚至可與一些閉源模型相媲美。
- 👍 多任務支持:Wan2.1 在文本到視頻、圖像到視頻、視頻編輯、文本到圖像和視頻到音頻等任務中表現出色,推動了視頻生成領域的發展。
- 👍 視覺文本生成:Wan2.1 是第一個能夠生成中英文文本的視頻模型,具有強大的文本生成能力,增強了其實用性。
- 👍 強大的視頻 VAE:Wan - VAE 具有出色的效率和性能,能夠對任意長度的 1080P 視頻進行編碼和解碼,同時保留時間信息,是視頻和圖像生成的理想基礎。
📚 詳細文檔
評估
我們使用 Wan - Bench 框架評估 T2V - 1.3B 模型的性能,結果如下表所示。結果表明,我們較小的 1.3B 模型在整體指標上超過了較大的開源模型,證明了 WanX2.1 架構和數據構建管道的有效性。
不同 GPU 上的計算效率
我們在不同 GPU 上測試了不同 Wan2.1 模型的計算效率,結果如下表所示。結果以 總時間 (s) / 峰值 GPU 內存 (GB) 的格式呈現。
此表中測試的參數設置如下: (1) 對於 8 個 GPU 上的 1.3B 模型,設置
--ring_size 8
和--ulysses_size 1
; (2) 對於 1 個 GPU 上的 14B 模型,使用--offload_model True
; (3) 對於單個 4090 GPU 上的 1.3B 模型,設置--offload_model True --t5_cpu
; (4) 對於所有測試,均未應用提示擴展,即未啟用--use_prompt_extend
。
Wan2.1 介紹
Wan2.1 基於主流擴散變壓器範式設計,通過一系列創新在生成能力方面取得了顯著進展。這些創新包括我們新穎的時空變分自編碼器(VAE)、可擴展的訓練策略、大規模數據構建和自動評估指標。這些貢獻共同提高了模型的性能和通用性。
(1) 3D 變分自編碼器
我們提出了一種新穎的 3D 因果 VAE 架構,稱為 Wan - VAE,專門為視頻生成設計。通過結合多種策略,我們提高了時空壓縮率,減少了內存使用,並確保了時間因果性。與其他開源 VAE 相比,Wan - VAE 在性能效率方面具有顯著優勢。此外,我們的 Wan - VAE 可以對無限長度的 1080P 視頻進行編碼和解碼,而不會丟失歷史時間信息,特別適合視頻生成任務。
(2) 視頻擴散 DiT
Wan2.1 在主流擴散變壓器範式內使用流匹配框架進行設計。我們模型的架構使用 T5 編碼器對多語言文本輸入進行編碼,每個變壓器塊中的交叉注意力將文本嵌入到模型結構中。此外,我們使用一個帶有線性層和 SiLU 層的 MLP 來處理輸入時間嵌入,並分別預測六個調製參數。這個 MLP 在所有變壓器塊中共享,每個塊學習一組不同的偏差。我們的實驗結果表明,在相同參數規模下,這種方法顯著提高了性能。
模型 | 維度 | 輸入維度 | 輸出維度 | 前饋維度 | 頻率維度 | 頭數 | 層數 |
---|---|---|---|---|---|---|---|
1.3B | 1536 | 16 | 16 | 8960 | 256 | 12 | 30 |
14B | 5120 | 16 | 16 | 13824 | 256 | 40 | 40 |
數據
我們精心策劃並去重了一個包含大量圖像和視頻數據的候選數據集。在數據策劃過程中,我們設計了一個四步數據清理過程,重點關注基本維度、視覺質量和運動質量。通過強大的數據處理管道,我們可以輕鬆獲得高質量、多樣化和大規模的圖像和視頻訓練集。
與 SOTA 模型的比較
我們將 Wan2.1 與領先的開源和閉源模型進行了比較,以評估其性能。使用我們精心設計的 1035 個內部提示,我們在 14 個主要維度和 26 個子維度上進行了測試。然後根據每個維度的重要性通過加權平均計算總分。詳細結果如下表所示。這些結果表明,我們的模型與開源和閉源模型相比具有優越的性能。
🔧 技術細節
3D 變分自編碼器
我們提出了一種名為 Wan - VAE 的新型 3D 因果 VAE 架構,專門用於視頻生成。通過結合多種策略,我們提高了時空壓縮率,減少了內存使用,並確保了時間因果性。與其他開源 VAE 相比,Wan - VAE 在性能效率方面具有顯著優勢。此外,我們的 Wan - VAE 可以對無限長度的 1080P 視頻進行編碼和解碼,而不會丟失歷史時間信息,特別適合視頻生成任務。
視頻擴散 DiT
Wan2.1 在主流擴散變壓器範式內使用流匹配框架進行設計。我們模型的架構使用 T5 編碼器對多語言文本輸入進行編碼,每個變壓器塊中的交叉注意力將文本嵌入到模型結構中。此外,我們使用一個帶有線性層和 SiLU 層的 MLP 來處理輸入時間嵌入,並分別預測六個調製參數。這個 MLP 在所有變壓器塊中共享,每個塊學習一組不同的偏差。我們的實驗結果表明,在相同參數規模下,這種方法顯著提高了性能。
📄 許可證
本倉庫中的模型遵循 Apache 2.0 許可證。我們對您生成的內容不主張任何權利,允許您自由使用它們,但請確保您的使用符合本許可證的規定。您對模型的使用負全部責任,不得涉及分享任何違反適用法律、傷害個人或群體、傳播用於傷害的個人信息、傳播錯誤信息或針對弱勢群體的內容。有關完整的限制列表和您的權利詳情,請參閱 許可證 全文。
致謝
我們感謝 SD3、Qwen、umt5 - xxl、diffusers 和 HuggingFace 倉庫的貢獻者,感謝他們的開放研究。
聯繫我們



