Loading...

文章背景图

Open-Sora:开源版Sora视频生成模型安装与使用指南

2025-02-20
0
- 字
- 分钟
|

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)
CUDA11.8+12.1
Python3.103.10
系统Ubuntu 20.04Ubuntu 22.04 LTS
磁盘空间30GB100GB+(含数据集和模型)

详细部署步骤

方式一:快速推理(使用预训练权重)

  1. 克隆仓库
    git clone https://github.com/hpcaitech/Open-Sora.git
    cd Open-Sora
  2. 创建环境
    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  # 推理依赖
  3. 下载预训练权重
    从官方 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
  4. 运行推理(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/ 目录。

  5. 运行推理(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,如果你有自己的视频数据集:

  1. 准备数据
    将视频整理为CSV格式,每行包含视频路径、文本描述:
    path,caption
    data/video1.mp4,"一只猫在窗台上晒太阳"
    data/video2.mp4,"海浪拍打沙滩"
  2. 数据预处理
    # 提取视频帧
    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/
  3. 启动训练(单卡)
    torchrun --nproc_per_node=1 -m opensora.train.train \
      --config configs/opensora/train/opensora_v1.yaml \
      --ckpt-path ./checkpoints/OpenSora-STDiT-v2/
  4. 多卡分布式训练
    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文本编码器等组件有各自的许可证,商用前请确认每个组件的协议。

跳转链接

评论交流

文章目录