模型简介
模型特点
模型能力
使用案例
library_name: open-sora license: apache-2.0 pipeline_tag: text-to-video
Open-Sora:为所有人提供高效视频制作的民主化工具
我们设计并实现了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
文本到视频生成
我们的模型针对图像到视频生成进行了优化,但也可用于文本到视频生成。为了生成高质量视频,借助Flux文本到图像模型,我们构建了一个文本到图像到视频的流程。对于256x256分辨率:
# 根据提示生成一个视频
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_256px.py --save-dir samples --prompt "下雨, 海洋"
# 使用卸载节省内存
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_256px.py --save-dir samples --prompt "下雨, 海洋" --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 "下雨, 海洋"
# 多GPU使用colossalai sp
torchrun --nproc_per_node 8 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_768px.py --save-dir samples --prompt "下雨, 海洋"
可以通过--aspect_ratio
调整生成宽高比,通过--num_frames
调整生成长度。宽高比可选值包括16:9
、9:16
、1:1
、2.39:1
。帧数应为4k+1
且小于129。
也可以直接运行文本到视频:
# 单GPU生成256px
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/256px.py --prompt "下雨, 海洋"
# 多GPU生成768px
torchrun --nproc_per_node 8 --standalone scripts/diffusion/inference.py configs/diffusion/inference/768px.py --prompt "下雨, 海洋"
图像到视频生成
给定提示和参考图像,可以通过以下命令生成视频:
# 256px
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/256px.py --cond_type i2v_head --prompt "一只胖猪在乡村农场的泥塘里打滚,粉色的鼻子探出水面,满足地哼哼着。镜头捕捉到猪欢快的溅水,在正午阳光下激起涟漪。木栅栏和红色谷仓在背景中,远处是起伏的绿色山丘。猪的泥泞皮毛在阳光下闪闪发光,展现了它无忧无虑生活的简单快乐。" --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 "下雨, 海洋" --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 "下雨, 海洋" --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 "下雨, 海洋" --refine-prompt True
可复现性
为了使结果可复现,可以通过以下命令设置随机种子:
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_256px.py --save-dir samples --prompt "下雨, 海洋" --sampling_option.seed 42 --seed 42
使用--num-sample k
为每个提示生成k
个样本。
计算效率
我们在H100/H800 GPU上测试了文本到视频的计算效率。对于256x256,使用colossalai的张量并行,并启用--offload True
。对于768x768,使用colossalai的序列并行。所有测试使用50步。结果格式为:$\color{blue}{\text{总时间(秒)}}/\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具有高性价比。
贡献
感谢以下优秀贡献者:
如果您希望为该项目做出贡献,请参考贡献指南。
致谢
这里仅列出部分项目。其他工作和数据集请参考我们的报告。
- 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:包含长时长和结构化字幕的大规模视频数据集。
引用
@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},
}
Star历史



