Open-Sora:开源版Sora视频生成模型安装与使用指南
官方信息
| 项目名称 | Open-Sora |
| 仓库地址 | https://github.com/hpcaitech/Open-Sora |
| 官方网站 | https://hpcaitech.github.io/Open-Sora |
| 最新更新 | 2025-02-20 |
| Star 数 | 约 16k+ |
| 项目定位 | HPC-AI Tech发起的开源Sora复现计划,目标是打造完全开源、可自由部署的文生视频大模型 |
项目背景
2024年2月OpenAI发布Sora后,"文生视频"成为AI领域最火热的方向。但Sora一直以闭源API形式存在,普通开发者无法本地部署。Open-Sora 由HPC-AI Tech(河洛科技)发起并维护,是国内最早、最活跃的开源Sora复现项目,目标是用开源技术路线逐步逼近Sora的效果。
Open-Sora 不是从零训练一个大模型,而是采用"站在巨人肩膀上"的策略:集成多个已开源的视频生成组件,包括VAE(如OpenSora V1.2的3D VAE)、DiT架构(借鉴PixArt-α/Σ)、文本编码器(T5/CLIP)等,通过精心的训练和工程优化,组合出可用的文生视频系统。
项目从2024年2月启动,陆续发布了Open-Sora v1.0、v1.1、v1.2等多个版本,视频分辨率从256×256提升到360×640,再到720p,帧数从16帧扩展到2秒、4秒、8秒。虽然效果与真正的Sora还有差距,但Open-Sora证明了开源社区可以复现视频生成的核心技术,并且完全免费、可本地部署、可微调。
Open-Sora 采用 Apache 2.0 协议,是学习视频生成技术、研究文生视频模型的最佳开源项目之一。
核心特性
- 完整开源复现Sora:从数据处理、模型训练到推理的全流程代码开放
- 720p高清输出:v1.2版本支持1280×720分辨率,最长8秒视频
- 多种架构支持:内置DiT、PixArt-α、Latte等多种视频生成架构
- 训练+推理一体化:不仅能推理,还提供完整的训练代码和数据pipeline
- 多分辨率支持:256p/480p/720p多档分辨率,适配不同硬件
- Accelerate分布式训练:基于HPC-AI自家的ColossalAI框架,支持多卡训练
- 社区活跃:持续更新,文档完善,有中文社区支持
环境要求
| 项目 | 最低要求 | 推荐配置 |
|---|---|---|
| GPU 显存 | 12GB(推理256p) | 24GB+(480p推理),80GB(720p) |
| CUDA | 11.8+ | 12.1 |
| Python | 3.10 | 3.10 |
| 系统 | Ubuntu 20.04 | Ubuntu 22.04 LTS |
| 磁盘空间 | 30GB | 100GB+(含数据集和模型) |
详细部署步骤
方式一:快速推理(使用预训练权重)
-
克隆仓库
git clone https://github.com/hpcaitech/Open-Sora.git cd Open-Sora
-
创建环境
conda create -n opensora python=3.10 -y conda activate opensora pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121 pip install -e . # 安装项目 pip install -r requirements/infere.txt # 推理依赖
-
下载预训练权重
从官方 HuggingFace 下载:# STDiT v2 720p模型(约10GB) huggingface-cli download hpcai-tech/OpenSora-STDiT-v2 --local-dir ./checkpoints/OpenSora-STDiT-v2 # 3D VAE(约1GB) huggingface-cli download hpcai-tech/OpenSora-VAE-v1.2 --local-dir ./checkpoints/OpenSora-VAE-v1.2 # T5文本编码器(约4GB) huggingface-cli download DeepFloyd/t5-v1_1-xxl --local-dir ./checkpoints/t5-v1_1-xxl
-
运行推理(720p)
python -m opensora.sample.sample \ --config configs/opensora/sample/STDiT_v2_720x1280.yaml \ --ckpt-path ./checkpoints/OpenSora-STDiT-v2/STDiT_v2_720x1280.pth \ --prompt "一只猫在窗台上晒太阳,微风吹动窗帘,阳光洒落,电影感画面" \ --save-dir ./results/ \ --num-sampling-steps 50 \ --seed 42
生成的视频会保存到
./results/目录。 -
运行推理(480p,24GB显存推荐)
python -m opensora.sample.sample \ --config configs/opensora/sample/STDiT_v2_480x640.yaml \ --ckpt-path ./checkpoints/OpenSora-STDiT-v2/STDiT_v2_480x640.pth \ --prompt "Astronaut riding a horse on Mars, cinematic" \ --save-dir ./results/
方式二:Gradio Web Demo
# 启动Web界面 python -m opensora.sample.app \ --config configs/opensora/sample/STDiT_v2_480x640.yaml \ --ckpt-path ./checkpoints/OpenSora-STDiT-v2/STDiT_v2_480x640.pth \ --port 7860 \ --share # 可选,生成公网链接
浏览器打开 http://127.0.0.1:7860,在网页中输入提示词即可生成视频。
方式三:Docker部署
docker run -d --name open-sora \ --gpus all \ -p 7860:7860 \ -v /data/opensora-checkpoints:/app/checkpoints \ -v /data/opensora-results:/app/results \ hpcaitech/open-sora:latest \ python -m opensora.sample.app --config configs/opensora/sample/STDiT_v2_480x640.yaml --port 7860
方式四:自定义训练(进阶)
Open-Sora还提供完整的训练pipeline,如果你有自己的视频数据集:
-
准备数据
将视频整理为CSV格式,每行包含视频路径、文本描述:path,caption data/video1.mp4,"一只猫在窗台上晒太阳" data/video2.mp4,"海浪拍打沙滩"
-
数据预处理
# 提取视频帧 python -m opensora.preprocess.extract_frames --data_path data/ --save_dir data/frames/ # 提取T5文本特征 python -m opensora.preprocess.extract_text_embeddings --csv data/metadata.csv --save_dir data/text_emb/
-
启动训练(单卡)
torchrun --nproc_per_node=1 -m opensora.train.train \ --config configs/opensora/train/opensora_v1.yaml \ --ckpt-path ./checkpoints/OpenSora-STDiT-v2/
-
多卡分布式训练
torchrun --nproc_per_node=8 -m opensora.train.train \ --config configs/opensora/train/opensora_v1.yaml \ --use-checkpoint \ --mixed-precision bf16
使用方法
批量生成视频
# 写一个prompts.txt,每行一个提示词 python -m opensora.sample.sample \ --config configs/opensora/sample/STDiT_v2_480x640.yaml \ --ckpt-path ./checkpoints/OpenSora-STDiT-v2/STDiT_v2_480x640.pth \ --prompt-file prompts.txt \ --save-dir ./batch_results/
提示词技巧
- 用完整句子描述场景,不要堆砌关键词
- 加上电影语言:"cinematic"、"close-up"、"wide shot"、"slow motion"
- 描述运动细节:"树叶随风飘落"、"人物转头微笑"
- 负面提示词:"blurry, low quality, distorted, flickering"
显存优化
- 推理时加
--use-emm(增强内存管理) - 降低分辨率到480p或360p
- 减少帧数:从81帧降到49帧(约3秒)
- 使用FP16/BF16精度
常见问题(FAQ)
Q1: Open-Sora和真正的Sora差多少?
Open-Sora目前在视频长度(8秒 vs Sora的60秒)、物理模拟准确性、复杂场景理解上还有较大差距。但它是完全开源的,你可以本地部署、微调、研究,这是Sora做不到的。对于学习视频生成技术来说,Open-Sora是最好的开源项目。
Q2: 12GB显存能跑吗?
可以跑256p或360p低分辨率版本,480p需要至少16GB显存,720p推荐24GB以上。推理时务必开启 --use-emm 参数。
Q3: 生成的视频闪烁严重怎么办?
1)增加采样步数;2)降低提示词中的剧烈运动描述;3)使用更稳定的VAE版本;4)后处理用RIFE做帧插值平滑。
Q4: 如何训练自己的模型?
Open-Sora提供了完整训练pipeline,但训练一个可用的视频模型需要数百GB视频数据和数十张A100显卡,对个人来说门槛较高。建议先用预训练权重做推理,或在预训练基础上做小规模微调(LoRA方式)。
Q5: 可以商用吗?
Open-Sora采用Apache 2.0协议,权重和代码都可自由商用。但注意其中使用的T5文本编码器等组件有各自的许可证,商用前请确认每个组件的协议。
跳转链接
- GitHub 仓库:https://github.com/hpcaitech/Open-Sora
- 官方演示站:https://hpcaitech.github.io/Open-Sora
- HuggingFace模型:https://huggingface.co/hpcai-tech
- ColossalAI框架:https://github.com/hpcaitech/ColossalAI
- 项目文档:https://github.com/hpcaitech/Open-Sora/tree/main/docs