模型简介
模型特点
模型能力
使用案例
🚀 Open-Sora:让高效视频制作惠及大众
Open-Sora致力于高效产出高质量视频,我们期望让模型、工具及所有细节面向大众开放。通过秉持开源原则,Open-Sora不仅让先进的视频生成技术得以广泛应用,还打造了一个简洁易用的平台,降低了视频生成的复杂度。我们的目标是在内容创作领域激发创新、创意和包容性。
Github: https://github.com/hpcaitech/Open-Sora
✨ 主要特性
🔆 报告
- Open-Sora 2.0技术报告
- 逐步训练或微调你自己的模型
- 逐步训练和评估视频自动编码器
- 访问高压缩视频自动编码器
- 先前版本的报告(建议在相应分支查看):
- Open-Sora 1.3:移位窗口注意力、统一时空VAE等。
- Open-Sora 1.2,技术报告:整流流、3D-VAE、分数条件、评估等。
- Open-Sora 1.1:多分辨率/长度/宽高比、图像/视频条件/编辑、数据预处理等。
- Open-Sora 1.0:架构、字幕等。
📍 由于Open-Sora正在积极开发中,我们为不同版本保留了不同的分支。最新版本是main。旧版本包括:v1.0,v1.1,v1.2,v1.3。
📦 安装指南
安装环境
# 创建并激活虚拟环境(以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分辨率,一个模型同时支持文本到视频(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
💻 使用示例
基础用法
文本到视频生成
我们的模型针对图像到视频生成进行了优化,但也可用于文本到视频生成。为了生成高质量视频,借助通量文本到图像模型,我们构建了一个文本到图像再到视频的管道。
对于256x256分辨率:
# 生成一个给定提示的视频
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分辨率:
# 单GPU
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_768px.py --save-dir samples --prompt "raining, sea"
# 多GPU使用colossalai序列并行
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单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
# 768px多GPU
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%。
人工偏好结果显示,我们的模型与混元视频11B和Step-Video 30B相当。
凭借强大的性能,Open-Sora 2.0具有很高的性价比。
🤝 贡献
感谢以下优秀的贡献者:
如果你想为这个项目做出贡献,请参考贡献指南。
🙏 致谢
这里仅列出部分项目,其他工作和数据集请参考我们的报告。
- ColossalAI:一个强大的大模型并行加速和优化系统。
- DiT:基于Transformer的可扩展扩散模型。
- OpenDiT:DiT训练的加速方案,我们从OpenDiT中采用了有价值的加速策略。
- PixArt:一个基于DiT的开源文本到图像模型。
- Flux:一个强大的文本到图像生成模型。
- Latte:一种高效训练DiT用于视频的尝试。
- HunyuanVideo:开源文本到视频模型。
- StabilityAI VAE:一个强大的图像VAE模型。
- DC-AE:用于图像压缩的深度压缩自动编码器。
- CLIP:一个强大的文本-图像嵌入模型。
- T5:一个强大的文本编码器。
- LLaVA:基于Mistral-7B和Yi-34B的强大图像字幕模型。
- PLLaVA:一个强大的视频字幕模型。
- MiraData:一个大规模、长时长且带有结构化字幕的视频数据集。
📄 许可证
本项目采用Apache-2.0许可证。
📖 引用
@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},
}
⭐ 星标历史



