上海交通大学の鄧志杰グループによるリアルタイム長尺動画生成ソリューションで、生成・学習・実行の3部分を一体設計しています。既存のチャンク別自己回帰手法では、まず1つのチャンクのノイズ除去を完了してから履歴キャッシュを更新する必要があり、1ステップのノイズ除去でも2回のフォワードパスが必要になります。Wave Forcingはチャンク因果的注意力(Chunked Causal Attention)を採用し、後続のチャンクが先行するチャンクのノイズ除去が完全には終わっていない段階で「よりクリーン」な文脈を読み取れるようにします。さらに、ずらされたノイズ除去ステージとキャッシュ更新を複数のGPU上の完全なモデルコピーに分散させ、パイプラインが埋まった後は各ラウンドで並行フォワードパスにより1チャンクずつ出力します(著者はこれを 1F1C と呼んでいます)。学習は3段階に分かれています:混合ノイズ除去、動き教師あり学習、自己生成履歴を用いた因果的適応。実行時において、WaveRT は Wave Parallelism を使用して各層の K/V を事前に単方向で配信し、通信を注意力計算の下に隠蔽するとともに、VAE デコードをパイプライン化します。
いいね 106 · コードスター数 96
理由
- 著者によると、Wan2.1-T2V-1.3B において、4 ステップ版は 8 枚の H200 GPU で DiT が 147.6 FPS、エンドツーエンドで 134.8 FPS を達成し、単一GPUのエンドツーエンドスループットの 7.07 倍です。READMEには、1593 フレーム(16 FPS で約 100 秒)のデコードが約 11.8 秒で完了すると記載されています。
- 品質面では、著者によると 5 ステップ版は全体として Rolling Forcing と同等であり、短尺動画および長尺動画における Dynamic Degree(動きの激しさ)が高いとされています。純粋な DiT の比較では、同じバックエンド・ステップ数・GPU数の条件下で、Wave Parallelism のスループットは Ulysses / Ring コンテキスト並列化のうちより高速な方の 2.53 倍です(1.3B–14B の6種類の規模)。
- 実行可能:推論コードと WaveRT ランタイムは Apache-2.0 で公開されており、Hugging Face の SJTU-DENG-Lab/WaveForcing-1.3B には 4 ステップ版と 5 ステップ版の2つの BF16 チェックポイントがあります(ModelScope にミラーあり)。参考学習コードも公開済みです。Hugging Face での当日いいね数は第2位でした(注目度を示すのみ)。
使い方
- ダウンロード:
hf download Wan-AI/Wan2.1-T2V-1.3B-Diffusers --local-dir ckpts/Wan2.1-T2V-1.3B-Diffusers、続いてhf download SJTU-DENG-Lab/WaveForcing-1.3B --local-dir ckpts/WaveForcing-1.3B(テキストエンコーダとVAEは Wan2.1 のベースモデルから読み込まれます)。 - 5 ステップ(5+2 レイアウト):
python -m wave\_rt --model-path ckpts/Wan2.1-T2V-1.3B-Diffusers --gen-ckpt ckpts/WaveForcing-1.3B/5step/model.safetensors --rf-step 5 --wp-size 6 --denoising-step-list 1000,800,600,400,200 --num-frames 24 --height 480 --width 832 --vae-stages 2 --cuda-visible-devices 0,1,2,3,4,5,6,7 --prompt "…"、出力はoutputs/quickstart/\<run-tag\>/video.mp4に保存されます。 - 4 ステップ(4+3 レイアウト、つまり見出しの数字):
--gen-ckptを4step/model.safetensorsに向け、かつ--rf-step 4 --wp-size 5 --denoising-step-list 1000,750,500,250 --vae-stages 3に変更します。 --num-framesは潜在空間のフレーム数であり、3 で割り切れる必要があります。399 に設定すると長尺動画ベンチマーク(デコード 1593 フレーム)に対応します。
リスク
- 参入障壁が高い:READMEのクイックスタートは 8 カードのパイプラインを前提としており、環境は Python 3.12、PyTorch 2.11.0+cu128、SGLang 拡散ランタイム、および Hopper アーキテクチャのGPUでのみ検証されています。単一GPUやコンシューマー向けGPUでの実行方法については説明がありません。
- 現時点では 1.3B チェックポイントのみが提供されており、解像度は 832×480 です。READMEの表にある 14B の行はランダム初期化重みであり、システムの拡張性のみをテストしたもので、生成品質を示すものではありません。
- 参考学習コードは RollingForcing の学術利用許諾に従っており、ランタイムの Apache-2.0 とは異なります。FPSおよび品質比較はすべて著者による報告であり、生成動画を確認していないため、画質については評価していません。
編集:複数の H100 / H200 GPU を所有し、リアルタイム長尺動画ストリーミングを行いたい、またはチャンク別自己回帰動画並列化を研究したいチームに適しています。単一GPUユーザーは、まずプロジェクトページの完全な設定マトリックスを確認してから判断してください。
開く · コード · Hugging Face 論文ページ