Diffusersにおけるオープンビデオ生成モデルの現状
Hugging Faceは、オープンビデオ生成モデルの現在の状況と、これらのリソース集約型のモデルをコンシューマー向けハードウェアで利用可能にするためにDiffusersライブラリで利用可能な技術的最適化について詳しく説明しています。主なポイントは、高品質なビデオ生成には依然として膨大な計算コストがかかるものの、量子化、オフロード、およびチャンク推論を組み合わせることで、速度を大幅に損なうことなくVRAM要件を劇的に削減できるということです。
ビデオ生成モデルの展望
ビデオ生成は現在、プロプライエタリなクローズドソースモデルと、拡大を続けるオープンソースの代替エコシステムに分かれています。
クローズドソースモデル
主要な業界プレーヤーは、以下のような非常に有能なプロプライエタリモデルを提供しています:
- OpenAI: Sora
- Google: Veo 2
- Meta: MovieGen
- RunwayML: Gen 3 Alpha
- Pika Labs: Pika 2.0
- KlingAI: Kling
- Haliluo: MiniMax
オープンソースモデル
ビデオ生成へのコミュニティアクセスを提供するために、いくつかのオープンモデルが登場しています:
- Tencent: Hunyuan Video
- Genmo: Mochi-1
- RhymesAI: Allegro
- Lightricks: LTX Video
- THUDM: CogVideoX
技術的課題と制限事項
ビデオ生成は、リアリズム、美学、および入力条件への準拠に加えて、フレーム間の時空間的な一貫性とコヒーレンスを維持する必要があるため、画像生成よりも大幅に複雑です。
主な制限事項
- 高いリソース要件: データセットの収集、ハードウェア、およびトレーニングの反復コストにより、オープンソースの開発は高コストになります。
- 汎用性: 一部のオープンモデルは、分布外のデータに苦戦したり、高品質な結果を得るために非常に具体的で詳細なプロンプト(例:LTX-Video)を必要としたりします。
- レイテンシ: 高い計算およびメモリ需要は、大幅な生成レイテンシにつながり、これがローカルデプロイの障壁となることがよくあります。
オープンビデオモデルのアーキテクチャ
現代のオープンビデオ生成モデルは、通常、テキストto画像モデルに似た構造に従っていますが、3D処理機能を備えています:
- Text Encoders: ほとんどのモデルはT5を好みますが、HunyuanはCLIP-LとLLaMa 3の両方を利用しています。
- Denoising Network: PixArtの要素を備えたDiT (Diffusion Transformer) アーキテクチャに基づいており、空間データと時間データの両方を捉える3Dビデオトークンを処理します。
- Encoder-Decoder: ピクセル空間と潜在空間の間を変換するために、空間圧縮と時間圧縮の両方を採用しています。メモリ管理のために、フレームごとのデコーディングがよく使用されます。
- Scheduler: 非パラメトリックなスケジューラが、タイムステップの計算とデノイジングプロセスを管理します。
Diffusersにおけるメモリ最適化
最先端のビデオモデルを実行するには、しばしば驚異的な量のVRAMが必要です。例えば、$121 \times 512 \times 768$ 解像度のビデオに対して標準的な torch.bfloat16 設定を使用する場合、ベースラインのメモリ要件は以下の通りです:
- HunyuanVideo: 60.09 GB
- CogVideoX (1.5 5B): 36.51 GB
- LTX-Video: 17.75 GB
最適化スイート
これらのモデルをコンシューマー向けハードウェアに届けるために、Diffusersはいくつかのオプションの最適化カテゴリを提供しています:
- Quantization:
bitsandbytes、torchao、GGUFなどのバックエンドを介して重みの精度を下げます。 - Offloading:
enable_model_cpu_offload()またはenable_sequential_cpu_offload()を使用して、計算中ではないレイヤーをCPUに移動します。 - Chunked Inference: フィードフォワード・チャンキング、デコーダーのタイリング/スライシング、および分割アテンション推論を通じて、アクティベーション状態のオーバーヘッドを削減します。
- Re-use of States: 過去のアテンションおよびMLP状態を再利用することで、特定のデノイジングステップをスキップします。
HunyuanVideoへの最適化の影響
Hugging Faceは、これらの技術を連鎖させることで、HunyuanVideoのVRAM要件を 60.10 GB (BF16 Base) から、FP8 Upcasting、Group offload (leaf)、およびVAE tilingの組み合わせを使用して 6.56 GB まで削減できることを実証しました。Flash AttentionとOptimized Feed-Forwardを使用することで、さらに約5 GBまで削減することが可能です。
トレーニングとファインチューニング
蒸留技術
推論速度を向上させるために、主に2つの蒸留手法が使用されます:
- Timestep Distillation: モデルに、より少ないステップで最終的な出力を予測するように学習させます(例:Flux.1-Schnell、FastHunyuan)。
- Guidance Distillation: Classifier-Free Guidanceによって必要とされる2回のフォワードパスを1回に減らし、生成時間を半分にします(例:HunyuanVideo、Flux.1-Dev)。
finetrainers によるファインチューニング
Hugging Faceは、オープンビデオモデルのファインチューニングを簡素化するために finetrainers リポジトリを導入しました。これにより、ユーザーは特定のモデル(例:CogVideoX)にLoRAなどの技術を適用して、「ディゾルブ」エフェクトのような特定の視覚効果を模倣することができます。