モデル概要
モデル特徴
モデル能力
使用事例
license: apache-2.0 language:
- en
- zh tags:
- 動画生成
- 動画編集
- リファレンス動画生成
pipeline_tag: image-to-video
Wan2.1
💜 Wan    |    🖥️ GitHub    |   🤗 Hugging Face   |   🤖 ModelScope   |    📑 技術レポート    |    📑 ブログ    |   💬 WeChatグループ   |    📖 Discord  
このリポジトリでは、動画生成の限界を押し広げる包括的でオープンな動画基盤モデルスイートであるWan2.1を紹介します。Wan2.1は以下の主要な特徴を提供します:
- 👍 SOTA性能: Wan2.1は、複数のベンチマークにおいて既存のオープンソースモデルや最先端の商用ソリューションを一貫して上回ります。
- 👍 コンシューマー向けGPU対応: T2V-1.3Bモデルはわずか8.19GBのVRAMを必要とし、ほぼすべてのコンシューマー向けGPUと互換性があります。RTX 4090では最適化技術(量子化など)なしで約4分で5秒間の480P動画を生成できます。その性能は一部のクローズドソースモデルにも匹敵します。
- 👍 複数タスク対応: Wan2.1はテキストから動画、画像から動画、動画編集、テキストから画像、動画から音声生成など、動画生成の分野を前進させます。
- 👍 視覚的テキスト生成: Wan2.1は中国語と英語のテキストを生成できる初めての動画モデルで、実用的なアプリケーションを強化する堅牢なテキスト生成機能を備えています。
- 👍 強力な動画VAE: Wan-VAEは優れた効率と性能を提供し、時間情報を保持しながら任意の長さの1080P動画をエンコードおよびデコードします。これは動画と画像生成の理想的な基盤となります。
動画デモ
🔥 最新ニュース!!
- 2025年5月14日: 👋 Wan2.1 VACEを紹介します。これは動画作成と編集のオールインワンモデルで、推論コード、重み、技術レポートが公開されました!
- 2025年4月17日: 👋 Wan2.1 FLF2Vの推論コードと重みを公開しました!
- 2025年3月21日: 👋 Wan2.1 技術レポートのリリースを発表します。議論とフィードバックを歓迎します!
- 2025年3月3日: 👋 Wan2.1のT2VとI2VがDiffusersに統合されました(T2V | I2V)。ぜひお試しください!
- 2025年2月27日: 👋 Wan2.1がComfyUIに統合されました。お楽しみください!
- 2025年2月25日: 👋 Wan2.1の推論コードと重みをリリースしました。
コミュニティ作品
Wan2.1を改善した作品があり、より多くの人に見てもらいたい場合は、お知らせください。
- Phantomは、Wan2.1-T2V-1.3Bを基に単一および複数被写体参照の統一動画生成フレームワークを開発しました。サンプルをご覧ください。
- UniAnimate-DiTは、Wan2.1-14B-I2Vを基に人間画像アニメーションモデルをトレーニングし、推論およびトレーニングコードをオープンソース化しました。ぜひお楽しみください!
- CFG-ZeroはCFGの観点からWan2.1(T2VおよびI2Vモデルの両方)を強化します。
- TeaCacheは現在Wan2.1の高速化をサポートしており、約2倍の速度向上が可能です。ぜひお試しください!
- DiffSynth-Studioは、動画から動画、FP8量子化、VRAM最適化、LoRAトレーニングなど、Wan2.1のさらなるサポートを提供します。サンプルをご覧ください。
📑 今後の予定
- Wan2.1 テキストから動画
- [x] 14Bおよび1.3BモデルのマルチGPU推論コード
- [x] 14Bおよび1.3Bモデルのチェックポイント
- [x] Gradioデモ
- [x] ComfyUI統合
- [x] Diffusers統合
- [ ] Diffusers + マルチGPU推論
- Wan2.1 画像から動画
- [x] 14BモデルのマルチGPU推論コード
- [x] 14Bモデルのチェックポイント
- [x] Gradioデモ
- [x] ComfyUI統合
- [x] Diffusers統合
- [ ] Diffusers + マルチGPU推論
- Wan2.1 最初と最後のフレームから動画
- [x] 14BモデルのマルチGPU推論コード
- [x] 14Bモデルのチェックポイント
- [x] Gradioデモ
- [ ] ComfyUI統合
- [ ] Diffusers統合
- [ ] Diffusers + マルチGPU推論
- Wan2.1 VACE
- [x] 14Bおよび1.3BモデルのマルチGPU推論コード
- [x] 14Bおよび1.3Bモデルのチェックポイント
- [x] Gradioデモ
- [x] ComfyUI統合
- [ ] Diffusers統合
- [ ] Diffusers + マルチGPU推論
クイックスタート
インストール
リポジトリをクローン:
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をサポート |
FLF2V-14B | 🤗 Huggingface 🤖 ModelScope | 720Pをサポート |
VACE-1.3B | 🤗 Huggingface 🤖 ModelScope | 480Pをサポート |
VACE-14B | 🤗 Huggingface 🤖 ModelScope | 480Pおよび720Pをサポート |
💡注意:
- 1.3Bモデルは720P解像度の動画を生成できますが、この解像度でのトレーニングが限られているため、結果は一般的に480Pと比べて不安定です。最適なパフォーマンスを得るためには、480P解像度を使用することをお勧めします。
- 最初と最後のフレームから動画生成の場合、主に中国語のテキスト-動画ペアでモデルをトレーニングしています。そのため、より良い結果を得るには中国語のプロンプトを使用することをお勧めします。
huggingface-cliを使用してモデルをダウンロード:
pip install "huggingface_hub[cli]"
huggingface-cli download Wan-AI/Wan2.1-T2V-14B --local-dir ./Wan2.1-T2V-14B
modelscope-cliを使用してモデルをダウンロード:
pip install modelscope
modelscope download Wan-AI/Wan2.1-T2V-14B --local_dir ./Wan2.1-T2V-14B
テキストから動画生成を実行
このリポジトリは2つのテキストから動画モデル(1.3Bおよび14B)と2つの解像度(480Pおよび720P)をサポートしています。これらのモデルのパラメータと設定は以下の通りです:
タスク | 解像度 | モデル | |
---|---|---|---|
480P | 720P | ||
t2v-14B | ✔️ | ✔️ | Wan2.1-T2V-14B |
t2v-1.3B | ✔️ | ❌ | Wan2.1-T2V-1.3B |
(1) プロンプト拡張なし
実装を容易にするため、プロンプト拡張ステップをスキップする推論プロセスの基本バージョンから始めます。
- シングルGPU推論
python generate.py --task t2v-14B --size 1280*720 --ckpt_dir ./Wan2.1-T2V-14B --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推論
FSDPとxDiT USPを使用して推論を高速化します。
-
Ulysses戦略
Ulysses
戦略を使用したい場合、--ulysses_size $GPU_NUMS
を設定する必要があります。Ulysess
戦略を使用する場合、num_heads
はulysses_size
で割り切れる必要があることに注意してください。1.3Bモデルの場合、num_heads
は12
で、8(ほとんどのマルチGPUマシンは8GPUを搭載)で割り切れません。そのため、代わりにRing
戦略を使用することをお勧めします。 -
Ring戦略
Ring
戦略を使用したい場合、--ring_size $GPU_NUMS
を設定する必要があります。Ring
戦略を使用する場合、sequence length
はring_size
で割り切れる必要があることに注意してください。
もちろん、
Ulysses
とRing
戦略を組み合わせて使用することもできます。 -
pip install "xfuser>=0.4.1"
torchrun --nproc_per_node=8 generate.py --task t2v-14B --size 1280*720 --ckpt_dir ./Wan2.1-T2V-14B --dit_fsdp --t5_fsdp --ulysses_size 8 --prompt "Two anthropomorphic cats in comfy boxing gear and bright gloves fight intensely on a spotlighted stage."
(2) プロンプト拡張を使用
プロンプトを拡張することで、生成された動画の詳細を効果的に豊かにし、動画品質をさらに向上させることができます。そのため、プロンプト拡張を有効にすることをお勧めします。プロンプト拡張には以下の2つの方法を提供します:
- Dashscope APIを使用して拡張。
- 事前に
dashscope.api_key
を申請してください(EN | CN)。 - 環境変数
DASH_API_KEY
を設定してDashscope APIキーを指定します。Alibaba Cloudの国際サイトユーザーの場合、環境変数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-14B --size 1280*720 --ckpt_dir ./Wan2.1-T2V-14B --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 'zh'
-
ローカルモデルを使用して拡張。
- デフォルトでは、HuggingFaceのQwenモデルがこの拡張に使用されます。ユーザーは利用可能なGPUメモリサイズに基づいてQwenモデルや他のモデルを選択できます。
- テキストから動画タスクには
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-14B --size 1280*720 --ckpt_dir ./Wan2.1-T2V-14B --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 'zh'
(3) Diffusersで実行
以下のコマンドでDiffusersを使用してWan2.1-T2Vを簡単に推論できます:
import torch
from diffusers.utils import export_to_video
from diffusers import AutoencoderKLWan, WanPipeline
from diffusers.schedulers.scheduling_unipc_multistep import UniPCMultistepScheduler
# 利用可能なモデル: Wan-AI/Wan2.1-T2V-14B-Diffusers, Wan-AI/Wan2.1-T2V-1.3B-Diffusers
model_id = "Wan-AI/Wan2.1-T2V-14B-Diffusers"
vae = AutoencoderKLWan.from_pretrained(model_id, subfolder="vae", torch_dtype=torch.float32)
flow_shift = 5.0 # 720Pの場合は5.0、480Pの場合は3.0
scheduler = UniPCMultistepScheduler(prediction_type='flow_prediction', use_flow_sigmas=True, num_train_timesteps=1000, flow_shift=flow_shift)
pipe = WanPipeline.from_pretrained(model_id, vae=vae, torch_dtype=torch.bfloat16)
pipe.scheduler = scheduler
pipe.to("cuda")
prompt = "A cat and a dog baking a cake together in a kitchen. The cat is carefully measuring flour, while the dog is stirring the batter with a wooden spoon. The kitchen is cozy, with sunlight streaming through the window."
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=720,
width=1280,
num_frames=81,
guidance_scale=5.0,
).frames[0]
export_to_video(output, "output.mp4", fps=16)
💡注意: この例はプロンプト拡張と分散推論を統合していません。統合されたプロンプト拡張とマルチGPUバージョンのDiffusersを近日中に更新します。
(4) ローカルgradioを実行
cd gradio
# dashscopeのAPIを使用してプロンプト拡張を行う場合
DASH_API_KEY=your_key python t2v_14B_singleGPU.py --prompt_extend_method 'dashscope' --ckpt_dir ./Wan2.1-T2V-14B
# ローカルモデルを使用してプロンプト拡張を行う場合
python t2v_14B_singleGPU.py --prompt_extend_method 'local_qwen' --ckpt_dir ./Wan2.1-T2V-14B



