一、介绍
Open-Sora 1.1 项目是 Colossal AI 团队开发的一个完全开源的视频生成项目,该项目致力于高效制作高质量视频,并通过开源原则实现先进视频生成技术的低成本普及。
1. 项目背景与目标
Open-Sora 项目旨在通过提供开源的模型、工具和内容,简化视频制作的复杂性,使更多人能够参与到内容创作领域的创新、创造和包容中来。对于1.0版本在功能、训练效率和整体灵活性方面进行了显著改进。
2. 主要特性与改进
(1)视频生成能力增强 :
- 延长视频长度 :Open-Sora 1.1 能够生成长达 21 秒的视频(部分信息提到为 15 秒,但最新消息显示已提升至 21 秒),与 Open-Sora 1.0 的 2 秒限制相比,这是一个显著的增加。
- 可变输出 :支持不同分辨率(从 144p 到 720p)和宽高比的视频生成,满足多样化的项目需求。
(2)图像生成功能 :
- 除了视频生成外,Open-Sora 1.1 还扩展了图像生成功能,使用户能够在生成视频的同时创建高质量的静态图像。
(3)增强的提示功能 :
- 允许用户利用图像和视频作为视频生成的提示,实现图转动画、视频延展、视频编辑和视频拼接等功能。
(4)模型架构与训练优化 :
- 模型架构修改 :引入了 ST-DiT-2 模型架构,这是 Open-Sora 1.0 中使用的原始模型架构的改进版本,提高了训练稳定性和整体性能。
- 多任务学习 :在训练过程中采用多任务学习方法,使模型能够同时处理各种视频属性,包括分辨率、帧长和宽高比。
- 数据处理流程 :采用了一套细致的数据处理流程,包括原始视频分割、多分数评估、字幕和匹配分数计算、最终过滤和摄像机运动检测等步骤,确保高质量的训练数据。
- Bucket 系统 :用于在不同分辨率的视频上高效训练模型,通过分桶的方式支持不同批次的动态尺寸,降低计算成本并平衡 GPU 负载。
(5)技术细节 :
- 时序注意力 :引入了 RoPE 位置编码,并使用 AdaIN 和 LN 来稳定训练过程。
- QK-normalization :与 SD3 一样,使用 QK-norm 来稳定半精度训练过程。
- 支持不同尺寸视频作为训练样本 :增加视频的宽高、时长和 fps 等信息到 text 中作为条件,使模型能够生成具有多种特性的视频。
二、容器构建说明
下面将以 open sora1.1项目进行部署,由于模型较大建议使用 RTX3090 及以上显卡 。
1. 安装 miniconda
进入 Anaconda 官网:
Miniconda — Anaconda 文档
找到快速命令行安装,选择 Linux 系统,复制代码进入终端中进行安装。
等待安装完成。
2. 安装并更新基础命令,让后续使用更快捷: unzip、lsof、git、git-lfs
apt-get update
apt-get install -y unzip
apt-get install -y lsof
apt-get install -y git
apt-get install -y git-lfs
3. 克隆项目仓库,并打开文件
项目地址:GitHub - PKU-YuanGroup/Open-Sora-Plan: This project aim to reproduce Sora (Open AI T2V model), we wish the open source community contribute to this project.
使用 Web URL 进行克隆默认下载 v1.2.0 版本,因此需找到 v1.1.0 版本的项目进行压缩包下载
上传压缩包至终端,解压。
unzip Open-Sora-Plan-1.1.0
打开文档
cd Open-Sora-Plan-1.1.0
4. 创建 python 为 3.8 版本的虚拟环境,名称为 opensora
conda create -n opensora python=3.8 -y
5. 激活虚拟环境 opensora
conda activate opensora
6. 安装项目依赖文件
为了安装速度更快可以将 pip 进行永久换源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install -e .
7. 指定端口:
export GRADIO_SERVER_NAME=0.0.0.0
export GRADIO_SERVER_PORT=8080
8. 更改模型库的镜像,运行 py 文件(运行项目,首次运行会自动下载模型参数,需要保证网络通畅)
export HF_ENDPOINT=https://hf-mirror.com
python -m opensora.serve.gradio_web_server
耐心等待
出现以下界面即为运行成功
三、网页演示
运行成功后获取访问链接,进入 webUI 界面后即可操作: