Sora没体验资格?开源项目:Open-Sora,复现类Sora视频生成方案

2024-03-20 03:12

本文主要是介绍Sora没体验资格?开源项目:Open-Sora,复现类Sora视频生成方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

3ffccaa52d7da97ee3bea1c58af6477c.jpeg项目简介

Open-Sora项目是一项高效制作高质量视频的工作,明确所有权使用其模型、工具和内容的计划。通过采用开源原则,Open-Sora 不仅实现了先进的视频生成技术的普及,还提供了一个专业且用户界面的方案,简化了视频制作的复杂性。通过 Open-Sora,我们希望更多的开发者一起探索内容创作领域的创新、创造和遏制。

项目展示

bec3e00f2055fe8a7521c8e2870a8112.jpeg04152ed78e74e851ba1ea88a66e86c30.jpeg75eff32807ce8c06b44779188183a479.jpeg

项目地址

https://github.com/hpcaitech/Open-Sora

新功能

  • Open-Sora-v1 已发布。这里提供了模型权重。只需400K视频片段和在单卡H800上训200天(类比稳定视频扩散的152M样本),我们就可以生成2秒的512×512视频。
  • ✅ 从图像扩散模型到视频扩散模型的三阶段训练。我们提供每个阶段的权重。
  • ✅ 支持训练加速,包括 Transformer 加速、更快的 T5 和 VAE 以及序列任务。在对 64x512x512 视频进行训练时,Open-Sora 可将训练速度提高55%。详细信息请参见训练加速。
  • ✅ 我们提供用于数据修复的视频剪辑和字幕工具。有关说明请点击此处,我们的数据收集计划请点击数据集。
  • ✅ 我们发现来自VideoGPT的 VQ-VAE 质量较低,因此采用了来自Stability-AI的高质量 VAE。我们还发现使用添加时间维度的采样会导致质量降低。更多讨论,请参阅我们的报告。
  • ✅ 我们研究了不同的架构,包括 DiT、Latte 和我们提出的STDiT。我们的 STDiT 在质量和速度之间实现了更好的权衡。更多讨论,请参阅我们的报告。
  • ✅ 支持剪辑和 T5 文本调节。
  • ✅ 通过将图像视为单帧视频,我们的项目支持在图像和视频(如 ImageNet 和 UCF101)上训练 DiT。更多说明请参见指令解析。
  • ✅利用DiT、Latte和PixArt的官方权重支持推理。

查看更多

下一步计划【按优先级排序】

  • 完成数据处理流程(包括密集光流、美学评分、文本图像相似性、重复数据删除等)。更多信息请参见数据集。[项目进行中]
  • 训练视频-VAE。[项目进行中]

查看更多

  • 支持图像和视频调节。
  • 评估流程。
  • 加入更好的调度程序,如SD3中的整流流程程序。
  • 支持可变长宽比、分辨率和持续时间。
  • 发布后支持SD3。
目录
  • 安装
  • 模型权重
  • 推理
  • 数据处理
  • 训练
  • 贡献
  • 声明
  • 引用
安装

# create a virtual env
conda create -n opensora python=3.10

# install torch
# the command below is for CUDA 12.1, choose install commands from
# https://pytorch.org/get-started/locally/ based on your own CUDA version
pip3 install torch torchvision

# install flash attention (optional)
pip install packaging ninja
pip install flash-attn --no-build-isolation

# install apex (optional)
pip install -v --disable-pip-version-check --no-cache-dir --no-build-isolation --config-settings "--build-option=--cpp_ext" --config-settings "--build-option=--cuda_ext" git+https://github.com/NVIDIA/apex.git

# install xformers
pip3 install -U xformers --index-url https://download.pytorch.org/whl/cu121

# install this project
git clone https://github.com/hpcaitech/Open-Sora
cd Open-Sora
pip install -v .安装完成后,建议阅读结构,了解项目结构以及如何使用配置文件。

模型权重

分辨率数据迭代次数批量大小GPU 天数 (H800)网址16×256×256366K80k8×64117
16×256×25620K 总部24k8×6445
16×512×51220K 总部20k2×6435
我们模型的权重部分由PixArt-α初始化。参数数量为724M。有关训练的更多信息,请参阅我们的报告。有关数据集的更多信息,请参阅数据。HQ 表示水平。:warning:轰炸性:我们的模型是在有限的预算内训练出来的。质量和文本扫描度相对较差。特别是在生成人类时,模型表现很差,无法遵循详细的指令。我们正在努力改进质量和文本扫描。

推理

要使用我们提供的权重进行推理,首先将T5权重下载到
pretrained_models/t5_ckpts/t5-v1_1-xxl中。然后下载模型权重。运行以下命令配置生成样本。请参见此处自定义模型。# Sample 16x256x256 (5s/sample)
torchrun --standalone --nproc_per_node 1 scripts/inference.py configs/opensora/inference/16x256x256.py --ckpt-path ./path/to/your/ckpt.pth

# Sample 16x512x512 (20s/sample, 100 time steps)
torchrun --standalone --nproc_per_node 1 scripts/inference.py configs/opensora/inference/16x512x512.py --ckpt-path ./path/to/your/ckpt.pth

# Sample 64x512x512 (40s/sample, 100 time steps)
torchrun --standalone --nproc_per_node 1 scripts/inference.py configs/opensora/inference/64x512x512.py --ckpt-path ./path/to/your/ckpt.pth

# Sample 64x512x512 with sequence parallelism (30s/sample, 100 time steps)
# sequence parallelism is enabled automatically when nproc_per_node is larger than 1
torchrun --standalone --nproc_per_node 2 scripts/inference.py configs/opensora/inference/64x512x512.py --ckpt-path ./path/to/your/ckpt.pth我们在H800 GPU上进行了速度测试。如需使用其他模型进行推理,请参见此处获取更多说明。

数据处理

高质量数据是高质量模型的关键。这里有我们使用过的数据集和数据收集计划。我们提供处理视频数据的工具。目前,我们数据的处理流程包括以下步骤:

  1. 下载数据集。[文件]
  2. 将视频分割成片段。[文件]
  3. 生成视频字幕。[文件]
训练

要启动训练,首先T5权重下载到
pretrained_models/t5_ckpts/t5-v1_1-xxl中。然后运行以下命令在单个节点上启动训练。# 1 GPU, 16x256x256
torchrun --nnodes=1 --nproc_per_node=1 scripts/train.py configs/opensora/train/16x256x512.py --data-path YOUR_CSV_PATH
# 8 GPUs, 64x512x512
torchrun --nnodes=1 --nproc_per_node=8 scripts/train.py configs/opensora/train/64x512x512.py --data-path YOUR_CSV_PATH --ckpt-path YOUR_PRETRAINED_CKPT要在多个节点上启动训练,请根据ColossalAI准备一个主机文件,并运行以下命令。colossalai run --nproc_per_node 8 --hostfile hostfile scripts/train.py configs/opensora/train/64x512x512.py --data-path YOUR_CSV_PATH --ckpt-path YOUR_PRETRAINED_CKPT有关其他模型的训练和高级使用方法,请参阅此处获取更多说明。

贡献

如果您希望为该项目做出贡献,可以参考贡献指南。

声明
  • DiT:带有 Transformer 的可扩展扩散模型。
  • OpenDiT:DiT 训练的加速。我们采用了有价值的 OpenDiT 训练进度加速策略。
  • PixArt:一种基于 DiT 的开源文本到图像模型。
  • Latte:尝试有效地训练视频 DiT。
  • StabilityAI VAE:强大的图像 VAE 模型。
  • CLIP:强大的文本图像嵌入模型。
  • T5:强大的文本编码器。
  • LLaVA:基于Yi-34B 的强大图像字幕模型。
资讯

[2024.03.18] 我们发布了Open-Sora 1.0,这是一个完全开源的视频生成项目。Open-Sora 1.0 支持视频数据构建、加速训练、推理等流程。我们提供的模型权只需3天的训练就可以生成2秒的512x512视频。[2024.03.04] Open-Sora:开源Sora复现方案,成本降低46%,序列扩充至近百万

这篇关于Sora没体验资格?开源项目:Open-Sora,复现类Sora视频生成方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/828109

相关文章

Flask 验证码自动生成的实现示例

《Flask验证码自动生成的实现示例》本文主要介绍了Flask验证码自动生成的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 目录生成图片以及结果处理验证码蓝图html页面展示想必验证码大家都有所了解,但是可以自己定义图片验证码

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

Python如何在Word中生成多种不同类型的图表

《Python如何在Word中生成多种不同类型的图表》Word文档中插入图表不仅能直观呈现数据,还能提升文档的可读性和专业性,本文将介绍如何使用Python在Word文档中创建和自定义各种图表,需要的... 目录在Word中创建柱形图在Word中创建条形图在Word中创建折线图在Word中创建饼图在Word

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin

无需邀请码!Manus复刻开源版OpenManus下载安装与体验

《无需邀请码!Manus复刻开源版OpenManus下载安装与体验》Manus的完美复刻开源版OpenManus安装与体验,无需邀请码,手把手教你如何在本地安装与配置Manus的开源版OpenManu... Manus是什么?Manus 是 Monica 团队推出的全球首款通用型 AI Agent。Man

Nginx实现高并发的项目实践

《Nginx实现高并发的项目实践》本文主要介绍了Nginx实现高并发的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录使用最新稳定版本的Nginx合理配置工作进程(workers)配置工作进程连接数(worker_co

Java嵌套for循环优化方案分享

《Java嵌套for循环优化方案分享》介绍了Java中嵌套for循环的优化方法,包括减少循环次数、合并循环、使用更高效的数据结构、并行处理、预处理和缓存、算法优化、尽量减少对象创建以及本地变量优化,通... 目录Java 嵌套 for 循环优化方案1. 减少循环次数2. 合并循环3. 使用更高效的数据结构4

Vue中动态权限到按钮的完整实现方案详解

《Vue中动态权限到按钮的完整实现方案详解》这篇文章主要为大家详细介绍了Vue如何在现有方案的基础上加入对路由的增、删、改、查权限控制,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、数据库设计扩展1.1 修改路由表(routes)1.2 修改角色与路由权限表(role_routes)二、后端接口设计

nginx生成自签名SSL证书配置HTTPS的实现

《nginx生成自签名SSL证书配置HTTPS的实现》本文主要介绍在Nginx中生成自签名SSL证书并配置HTTPS,包括安装Nginx、创建证书、配置证书以及测试访问,具有一定的参考价值,感兴趣的可... 目录一、安装nginx二、创建证书三、配置证书并验证四、测试一、安装nginxnginx必须有"-

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx