综合介绍
Open-Sora 是一个开源项目,旨在让任何人都能高效生成高质量视频。它由 hpcaitech 团队开发,提供从文本或图像生成视频的工具,支持多种分辨率和时长。项目完全开源,公开模型权重、代码和训练流程,鼓励社区贡献。最新版本 Open-Sora 2.0 在性能上接近行业顶尖模型,训练成本仅 20 万美元,生成视频速度快且质量高。用户可以免费下载代码,在本地运行,或通过 Hugging Face 的 Gradio 界面体验。Open-Sora 适合创作者、开发者与研究人员,推动视频创作的普及与创新,同时提供了商业产品:Video Ocean 。
功能列表
- 文本到视频生成:输入文字描述,生成符合内容的视频。
- 图像到视频生成:基于单张图片,生成动态视频。
- 视频扩展:延长视频时长或补充内容。
- 多分辨率支持:支持 144p 到 768p 的视频输出。
- 灵活时长:生成 2 秒到 16 秒的视频。
- 多样化宽高比:支持 16:9、9:16、1:1 等多种比例。
- 开源模型与训练:提供模型权重和训练代码,支持自定义开发。
- 高效推理:优化算法,降低硬件需求,单 GPU 即可生成视频。
- 提示词优化:支持 GPT-4o 增强提示词,提升生成质量。
- 动态评分:通过运动评分调整视频动态效果。
使用帮助
安装流程
要使用 Open-Sora,用户需要配置 Python 环境并安装依赖。以下是详细步骤:
- 创建虚拟环境
使用 Python 3.10 创建虚拟环境,避免依赖冲突:conda create -n opensora python=3.10 conda activate opensora
- 克隆代码库
从 GitHub 下载 Open-Sora 项目:git clone https://github.com/hpcaitech/Open-Sora cd Open-Sora
- 安装依赖
确保 PyTorch 版本高于 2.4.0,运行以下命令:pip install -v .
如果需要开发模式,使用:
pip install -v -e .
- 安装加速库
Open-Sora 使用xformers
和flash-attn
提升性能。根据 CUDA 版本安装:pip install xformers==0.0.27.post2 --index-url https://download.pytorch.org/whl/cu121 pip install flash-attn --no-build-isolation
为更快的推理速度,可手动编译
flash-attention
:git clone https://github.com/Dao-AILab/flash-attention cd flash-attention/hopper python setup.py install
- 下载模型权重
Open-Sora 2.0 支持 256p 和 768p 视频生成,模型可从 Hugging Face 或 ModelScope 下载: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
- 验证安装
检查环境是否正常:python -c "import opensora; print(opensora.__version__)"
使用方法
Open-Sora 支持文本到视频、图像到视频等多种功能,操作简单。以下是详细指南:
文本到视频生成
Open-Sora 优化了图像到视频流程,但也支持直接文本到视频生成。推荐使用文本到图像再到视频的管道,以提升质量。
- 准备提示词
编写详细的文字描述,例如:“暴风雨中的海洋,巨浪拍打岩石,乌云密布”。提示词越具体,效果越好。 - 运行生成命令
生成 256x256 视频:torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_256px.py --save-dir samples --prompt "Stormy ocean with crashing waves"
生成 768x768 视频(需要多 GPU):
torchrun --nproc_per_node 8 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_768px.py --save-dir samples --prompt "Stormy ocean with crashing waves"
- 调整参数
--aspect_ratio
:设置宽高比,如16:9
或1:1
。--num_frames
:设置帧数,范围为 4k+1(最大 129 帧)。--offload True
:启用内存优化,适合低配设备。
- 查看结果
生成的视频保存在samples
文件夹,格式为 MP4。
图像到视频生成
- 准备参考图像
上传一张图片,保存为input.png
。 - 运行生成命令
生成 256p 视频:torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/256px.py --cond_type i2v_head --prompt "A serene forest with flowing river" --ref input.png
生成 768p 视频:
torchrun --nproc_per_node 8 --standalone scripts/diffusion/inference.py configs/diffusion/inference/768px.py --cond_type i2v_head --prompt "A serene forest with flowing river" --ref input.png
- 优化动态效果
使用--motion-score
调整画面动态程度,默认值为 4。示例:torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/256px.py --cond_type i2v_head --prompt "A running horse" --ref horse.png --motion-score 7
提示词优化
Open-Sora 支持使用 GPT-4o 优化提示词,提升生成质量:
- 设置 OpenAI API 密钥:
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
Gradio 界面操作
Open-Sora 提供交互式 Gradio 界面:
- 启动界面:
python scripts/demo.py --model-type v2-768px
- 在浏览器访问
http://localhost:7860
。 - 输入提示词或上传图片,调整分辨率和帧数,点击“Generate”生成视频。
- 可启用“Refine prompt”优化提示词(需 OpenAI API 密钥)。
自定义模型训练
用户可以基于自己的数据集训练模型:
- 准备数据集:包含视频路径和描述的 CSV 文件。
- 修改配置文件:
configs/opensora-v2/train/stage1.py
,设置数据路径。 - 运行训练:
torchrun --nproc_per_node 8 scripts/train.py configs/opensora-v2/train/stage1.py --data-path your_data.csv
计算效率
Open-Sora 优化了推理效率,测试结果如下(H100 GPU,50 步采样):
- 256x256:单 GPU 60 秒,52.5GB 显存;4 GPU 34 秒,44.3GB 显存。
- 768x768:8 GPU 276 秒,44.3GB 显存。
注意事项
- 硬件要求:推荐 NVIDIA H100 或 A100,显存至少 24GB。低配设备可降低分辨率。
- 提示词质量:详细的描述能显著提升视频效果。
- 许可证:Open-Sora 使用 MIT 许可证,允许商用,但需遵守条款。
应用场景
- 短视频创作
博主可以用 Open-Sora 生成宣传视频,如“城市夜景灯光闪烁”,用于社交平台分享。 - 教育动画
教师可生成教学动画,如“行星绕太阳旋转”,增强课堂吸引力。 - 游戏场景设计
开发者基于概念图生成动态场景,用于游戏背景或过场动画。 - AI 研究
研究人员可修改模型代码,测试新算法或数据集,推动视频生成技术发展。
QA
- Open-Sora 2.0 的性能如何?
在 VBench 评测中,Open-Sora 2.0 与 OpenAI Sora 的差距缩小至 0.69%,接近 HunyuanVideo 11B 和 Step-Video 30B。 - 支持哪些分辨率和时长?
支持 144p 到 768p,视频时长 2 秒到 16 秒,宽高比包括 16:9、9:16 等。 - 如何优化生成质量?
使用详细提示词,调整motion-score
(1-7),或启用 GPT-4o 优化提示词。 - 可以免费使用吗?
Open-Sora 是完全开源的,免费提供模型和代码,遵循 MIT 许可证。