モデル概要
モデル特徴
モデル能力
使用事例
🚀 Open-Sora: 誰もが使える効率的なビデオ制作を実現
私たちは、高品質なビデオを「効率的に」制作することを目的とした Open-Sora を設計・実装しました。私たちは、このモデル、ツール、およびすべての詳細を誰もが利用できるようにすることを目指しています。「オープンソース」の原則を受け入れることで、Open-Soraは高度なビデオ生成技術へのアクセスを民主化するだけでなく、ビデオ生成の複雑さを簡素化する、シンプルで使いやすいプラットフォームを提供します。Open-Soraを通じて、私たちの目標は、コンテンツ作成の分野におけるイノベーション、創造性、および包括性を促進することです。
Github: https://github.com/hpcaitech/Open-Sora
🚀 クイックスタート
インストール
# 仮想環境を作成してアクティブ化する (condaの場合)
conda create -n opensora python=3.10
conda activate opensora
# リポジトリをダウンロードする
git clone https://github.com/hpcaitech/Open-Sora
cd Open-Sora
# torch >= 2.4.0 を確認する
pip install -v . # 開発モードの場合、`pip install -v -e .`
pip install xformers==0.0.27.post2 --index-url https://download.pytorch.org/whl/cu121 # cudaバージョンに合わせてxformersをインストールする
pip install flash-attn --no-build-isolation
オプションで、より高速な処理のためにflash attention 3をインストールすることができます。
git clone https://github.com/Dao-AILab/flash-attention # 4f0640d5
cd flash-attention/hopper
python setup.py install
モデルのダウンロード
私たちの11Bモデルは、256pxと768pxの解像度をサポートしています。1つのモデルでT2VとI2Vの両方がサポートされています。 🤗 Huggingface 🤖 ModelScope。
Huggingfaceからダウンロードするには:
pip install "huggingface_hub[cli]"
huggingface-cli download hpcai-tech/Open-Sora-v2 --local-dir ./ckpts
ModelScopeからダウンロードするには:
pip install modelscope
modelscope download hpcai-tech/Open-Sora-v2 --local-dir ./ckpts
テキストからビデオへの生成
私たちのモデルは、画像からビデオへの生成に最適化されていますが、テキストからビデオへの生成にも使用できます。高品質なビデオを生成するために、fluxテキストから画像へのモデルの助けを借りて、テキストから画像、そしてビデオへのパイプラインを構築しています。256x256解像度の場合:
# 与えられたプロンプトで1つのビデオを生成する
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_256px.py --save-dir samples --prompt "raining, sea"
# オフロードを使用してメモリを節約する
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_256px.py --save-dir samples --prompt "raining, sea" --offload True
# csvを使用して生成する
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_256px.py --save-dir samples --dataset.data-path assets/texts/example.csv
768x768解像度の場合:
# 1つのGPUを使用する
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_768px.py --save-dir samples --prompt "raining, sea"
# colossalai spを使用して複数のGPUを使用する
torchrun --nproc_per_node 8 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_768px.py --save-dir samples --prompt "raining, sea"
生成するアスペクト比は --aspect_ratio
で、生成するフレーム数は --num_frames
で調整することができます。アスペクト比の候補値には 16:9
、9:16
、1:1
、2.39:1
があります。フレーム数の候補値は 4k+1
で、129未満でなければなりません。
また、直接テキストからビデオを生成することもできます:
# 256pxの場合、1つのGPUを使用する
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/256px.py --prompt "raining, sea"
# 768pxの場合、複数のGPUを使用する
torchrun --nproc_per_node 8 --standalone scripts/diffusion/inference.py configs/diffusion/inference/768px.py --prompt "raining, sea"
画像からビデオへの生成
プロンプトと参照画像を与えることで、次のコマンドを使用してビデオを生成することができます:
# 256pxの場合
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/256px.py --cond_type i2v_head --prompt "A plump pig wallows in a muddy pond on a rustic farm, its pink snout poking out as it snorts contentedly. The camera captures the pig's playful splashes, sending ripples through the water under the midday sun. Wooden fences and a red barn stand in the background, framed by rolling green hills. The pig's muddy coat glistens in the sunlight, showcasing the simple pleasures of its carefree life." --ref assets/texts/i2v.png
# 256pxでcsvを使用する場合
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/256px.py --cond_type i2v_head --dataset.data-path assets/texts/i2v.csv
# 複数のGPUを使用する768pxの場合
torchrun --nproc_per_node 8 --standalone scripts/diffusion/inference.py configs/diffusion/inference/768px.py --cond_type i2v_head --dataset.data-path assets/texts/i2v.csv
✨ 主な機能
モーションスコア
学習中に、私たちはテキストプロンプトにモーションスコアを提供しています。推論時には、次のコマンドを使用してモーションスコアを指定してビデオを生成することができます(デフォルトのスコアは4です)。
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_256px.py --save-dir samples --prompt "raining, sea" --motion-score 4
また、動的なモーションスコア評価器も提供しています。OpenAI APIキーを設定した後、次のコマンドを使用してビデオのモーションスコアを評価することができます。
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_256px.py --save-dir samples --prompt "raining, sea" --motion-score dynamic
スコア | 1 | 4 | 7 |
---|---|---|---|
![]() |
![]() |
![]() |
プロンプトの改良
私たちはChatGPTを利用してプロンプトを改良しています。次のコマンドを使用してプロンプトを改良することができます。この機能は、テキストからビデオへの生成と画像からビデオへの生成の両方で利用できます。
export OPENAI_API_KEY=sk-xxxx
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_256px.py --save-dir samples --prompt "raining, sea" --refine-prompt True
再現性
結果を再現可能にするために、乱数シードを設定することができます。
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_256px.py --save-dir samples --prompt "raining, sea" --sampling_option.seed 42 --seed 42
--num-sample k
を使用して、各プロンプトに対して k
個のサンプルを生成することができます。
🔧 技術詳細
計算効率
私たちは、H100/H800 GPUでテキストからビデオへの生成の計算効率をテストしました。256x256の場合、colossalaiのテンソル並列を使用し、--offload True
を使用します。768x768の場合、colossalaiのシーケンス並列を使用します。すべてのケースでステップ数は50を使用しています。結果は、$\color{blue}{\text{総時間 (s)}}/\color{red}{\text{ピークGPUメモリ (GB)}}$ の形式で示されています。
解像度 | 1x GPU | 2x GPUs | 4x GPUs | 8x GPUs |
---|---|---|---|---|
256x256 | $\color{blue}{60}/\color{red}{52.5}$ | $\color{blue}{40}/\color{red}{44.3}$ | $\color{blue}{34}/\color{red}{44.3}$ | |
768x768 | $\color{blue}{1656}/\color{red}{60.3}$ | $\color{blue}{863}/\color{red}{48.3}$ | $\color{blue}{466}/\color{red}{44.3}$ | $\color{blue}{276}/\color{red}{44.3}$ |
評価
VBench での評価では、Open-Sora 2.0はOpenAIのSoraとのギャップを大幅に縮小し、Open-Sora 1.2と比較して4.52% → 0.69%に減少しています。
人間の嗜好結果では、私たちのモデルはHunyuanVideo 11BやStep-Video 30Bと同等の性能を示しています。
強力な性能を持ちながら、Open-Sora 2.0は費用対効果が高いです。
📄 ライセンス
このプロジェクトは、Apache-2.0ライセンスの下で公開されています。
🔆 レポート
- Open-Sora 2.0の技術レポート
- 独自のモデルをトレーニングまたはファインチューニングするステップバイステップガイド
- ビデオオートエンコーダをトレーニングして評価するステップバイステップガイド
- 高圧縮ビデオオートエンコーダを確認する
- 以前のバージョンのレポート(該当するブランチで確認することをおすすめ):
- Open-Sora 1.3: shift-window attention、統一的な空間時間VAEなど。
- Open-Sora 1.2, 技術レポート: rectified flow、3d-VAE、スコア条件、評価など。
- Open-Sora 1.1: マルチ解像度/長さ/アスペクト比、画像/ビデオの条件付け/編集、データ前処理など。
- Open-Sora 1.0: アーキテクチャ、キャプションなど。
📍 Open-Soraは現在積極的に開発されているため、異なるバージョンに対して異なるブランチを維持しています。最新バージョンは main です。古いバージョンには、v1.0、v1.1、v1.2、v1.3 が含まれます。
🔗 貢献
この素晴らしい貢献者たちに感謝します:
このプロジェクトに貢献したい場合は、貢献ガイドライン を参照してください。
🎉 謝辞
ここではいくつかのプロジェクトのみを挙げています。他の作品やデータセットについては、レポートを参照してください。
- ColossalAI: 強力な大規模モデル並列加速と最適化システム。
- DiT: Transformersを用いた拡張可能な拡散モデル。
- OpenDiT: DiT学習のための加速。私たちはOpenDiTから学習プロセスのための貴重な加速戦略を採用しています。
- PixArt: オープンソースのDiTベースのテキストから画像へのモデル。
- Flux: 強力なテキストから画像への生成モデル。
- Latte: ビデオ用にDiTを効率的に学習する試み。
- HunyuanVideo: オープンソースのテキストからビデオへのモデル。
- StabilityAI VAE: 強力な画像VAEモデル。
- DC-AE: 画像圧縮のための深層圧縮オートエンコーダ。
- CLIP: 強力なテキスト-画像埋め込みモデル。
- T5: 強力なテキストエンコーダ。
- LLaVA: Mistral-7B と Yi-34B をベースにした強力な画像キャプションモデル。
- PLLaVA: 強力なビデオキャプションモデル。
- MiraData: 長時間の構造化されたキャプションを持つ大規模なビデオデータセット。
📚 引用
@article{opensora,
title={Open-sora: Democratizing efficient video production for all},
author={Zheng, Zangwei and Peng, Xiangyu and Yang, Tianji and Shen, Chenhui and Li, Shenggui and Liu, Hongxin and Zhou, Yukun and Li, Tianyi and You, Yang},
journal={arXiv preprint arXiv:2412.20404},
year={2024}
}
@article{opensora2,
title={Open-Sora 2.0: Training a Commercial-Level Video Generation Model in $200k},
author={Xiangyu Peng and Zangwei Zheng and Chenhui Shen and Tom Young and Xinying Guo and Binluo Wang and Hang Xu and Hongxin Liu and Mingyan Jiang and Wenjun Li and Yuhui Wang and Anbang Ye and Gang Ren and Qianran Ma and Wanying Liang and Xiang Lian and Xiwen Wu and Yuting Zhong and Zhuangyan Li and Chaoyu Gong and Guojun Lei and Leijun Cheng and Limin Zhang and Minghao Li and Ruijie Zhang and Silan Hu and Shijie Huang and Xiaokang Wang and Yuanheng Zhao and Yuqi Wang and Ziang Wei and Yang You},
year={2025},
journal={arXiv preprint arXiv:2503.09642},
}
⭐️ スター履歴



