Open-Sora 部署教程:开源视频生成模型的本地化运行

Open-Sora 是一个由 HPC-AI Tech 发起的开源项目,致力于高效地生成高质量视频。本教程将指导你在配有 Nvidia GPU 的 Linux 服务器上,完成 Open-Sora 2.0 (11B) 模型的部署,并执行基础的文生视频任务。

项目背景与版本说明

Open-Sora 项目发展迅速,目前已发布多个版本。本教程以最新的 Open-Sora 2.0 版本为例,该版本拥有 11B 参数,在性能上可与 HunyuanVideo 等模型相媲美,且训练成本较低。请注意:不同版本的模型权重、配置文件和推理命令可能存在差异,请确保你操作的版本与教程一致。

准备工作:硬件与软件要求

部署 Open-Sora 2.0 对硬件有较高要求,请务必提前确认你的环境。

  • 硬件要求
    • GPU强烈推荐使用 Nvidia H100 或 H800 GPU。根据官方测试,使用 8x H800 GPU 进行 768x768 分辨率生成也需要一定时间。至少需要 RTX 3090 或同等及以上性能的显卡,且显存需大于 24GB。
    • 存储:模型文件、依赖库及生成的视频需要大量空间,建议至少预留 90GB 以上的可用硬盘空间。
    • 内存:建议 64GB 以上系统内存。
  • 软件要求
    • 操作系统:Linux (Ubuntu 20.04+ 或 CentOS 7+)。
    • GPU 驱动:已正确安装 Nvidia 驱动和 CUDA 工具包 (CUDA 11.8 或更高版本)。
    • Python 环境:推荐使用 Conda 管理环境,需要 Python 3.10 版本。

第一步:环境安装与项目克隆

  1. 克隆项目仓库

    1
    2
    git clone https://github.com/hpcaitech/Open-Sora.git
    cd Open-Sora
  2. 创建并激活 Conda 环境

    1
    2
    conda create -n opensora python=3.10 -y
    conda activate opensora
  3. 安装 PyTorch 和核心依赖
    确保安装的 PyTorch 版本 >= 2.4.0,并与你的 CUDA 版本匹配。以下是 CUDA 11.8 的示例,请根据实际情况调整。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 安装 PyTorch (参考 https://pytorch.org/get-started/locally/)
    # 例如:pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

    # 安装项目基础依赖 (进入项目根目录执行)
    pip install -v .

    # 安装 xformers 和 flash-attn 以加速训练和推理 (需根据CUDA版本选择)
    pip install xformers==0.0.27.post2 --index-url https://download.pytorch.org/whl/cu118
    pip install flash-attn --no-build-isolation

    如果安装 flash-attn 失败,可以尝试从源码编译。

第二步:下载模型权重

Open-Sora 2.0 的模型权重文件较大,需要通过 Hugging Face 或 ModelScope 下载。

  • 从 Hugging Face 下载 (推荐)

    1
    2
    3
    pip install "huggingface_hub[cli]"
    # 创建一个目录存放模型 (例如 ./ckpts)
    huggingface-cli download hpcai-tech/Open-Sora-v2 --local-dir ./ckpts
  • 从 ModelScope 下载

    1
    2
    pip install modelscope
    modelscope download hpcai-tech/Open-Sora-v2 --local_dir ./ckpts

第三步:运行文生视频推理

完成上述步骤后,即可运行推理命令生成视频。Open-Sora 2.0 支持 文本生成视频 (T2V)图像生成视频 (I2V)。这里我们演示最基础的 T2V 功能。

  • 单GPU推理 (256x256分辨率)

    1
    2
    3
    4
    # --nproc_per_node 1 表示使用1块GPU
    torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py \
    configs/diffusion/inference/t2i2v_256px.py \
    --save-dir samples --prompt "raining, sea"

    此命令将根据提示词 “raining, sea” 生成视频,并保存在 samples 目录下。

  • 多GPU推理 (768x768分辨率)

    1
    2
    3
    4
    # 使用8块GPU进行768分辨率生成,可大幅提升速度
    torchrun --nproc_per_node 8 --standalone scripts/diffusion/inference.py \
    configs/diffusion/inference/t2i2v_768px.py \
    --save-dir samples --prompt "raining, sea"
  • 高级推理选项

    • 生成时长和宽高比:可通过 --num-frames (帧数,需为 4k+1 且小于129) 和 --aspect-ratio (16:9, 9:16, 1:1 等) 参数控制输出视频的规格。
    • 启用提示词优化:设置 OPENAI_API_KEY 环境变量后,添加 --refine-prompt True 可使用大模型优化你的提示词,提升生成质量。

故障排查与常见问题

  • 显存不足 (CUDA Out of Memory): 这是最常见的问题。解决办法包括:
    • 降低生成分辨率 (如使用 t2i2v_256px.py 配置文件)。
    • 在命令中添加 --offload True 参数,将部分模型权重临时卸载到 CPU 以节省显存。
    • 减少 vae.micro_batch_size (在配置文件中调整),这可能会略微降低生成速度。
  • 依赖库安装错误: 确保 pipconda 环境没有问题,CUDA 版本与 PyTorch 及 xformersflash-attn 版本匹配。可以尝试先单独安装 torch,再安装其他依赖。
  • 模型下载失败: 如果从 Hugging Face 下载中断,可以重新执行 huggingface-cli download 命令,它会自动续传。网络不稳定时,可尝试使用 ModelScope 源。

Open-Sora 是一个功能强大但资源消耗较高的项目。如果你在本地部署中遇到困难,或希望进行微调训练,可以考虑使用其官方合作伙伴提供的云服务,以获得预配置环境和 H200 GPU 等高性能计算资源。希望本教程能帮助你成功开启视频生成之旅。