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

news2024/11/26 0:48:19

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%,序列扩充至近百万

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1531129.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Web应用技术基础】HTML(3)——表格

目录 题目1:原始表格 题目2:width、height 题目3: cellpadding 题目4:cellspacing、cellpadding 题目5:caption 题目6:rowspan 题目7:colspan 题目8:汇总题 题目1&#xff1…

vue脚手架中,如何解决控制台打印不显示源代码对应的行数而是打包后的JS文件的行数?

直接上图说话: 原因: 当你在浏览器的控制台看到的错误行数是打包后的 JavaScript 文件的行数,而不是源代码的行数,这通常是因为你的项目没有配置或者没有正确配置 source map。 source map 是一个映射文件,它可以将打…

电脑屏幕监控软件下载(一键下载,终身使用)

很多企业都想要对员工进行电脑监控管理,方便了解员工工作状态如何。 但是,如何选择软件,以及下载方法,是很多人首先会考虑的问题。 对于监控软件来说,首先,我们需要明确电脑屏幕监控软件的重要性。 对于企…

MySQL日志的一些疑惑解答

1.两阶段提交,要是在binlog写入磁盘后,redolog还没处于commit状态,这时事务会回滚吗? 我们先来看一下崩溃恢复时的判断规则。 如果 redo log 里面的事务是完整的,也就是已经有了 commit 标识,则直接提交&…

C语言例:(m=a==b)||(n=a==b);求解m,n的值

题目&#xff1a;设int a0,b0,m0,n0;执行语句(mab)||(nab);求解m,n的值。 #include<stdio.h> int main(void) {int a0,b0,m0,n0;(mab)||(nab);printf("m%d\n",m);printf("n%d\n",n);return 0; } 优先级: () 优先 优先 a b -->为真&am…

Linux--文件系统:数据的存储和组织之道

引言 文件系统是计算机操作系统中的重要组成部分&#xff0c;它负责管理计算机存储设备上的数据以及对数据进行组织和访问。一个高效可靠的文件系统对于系统性能和数据安全至关重要。 文件系统的基本概念 文件系统是操作系统中用于管理和存储文件的软件结构。它定义了如何在…

MT6825编码器在STM32中的使用

文章目录 1、PWM 绝对值位置读取功能1.1 DataSheet说明1.2 硬件支持1.3 Cubemax配置及使用1.4 项目代码实现1.5 效果验证1.6 注意事项 2、SPI 绝对值位置读取功能2.2 硬件支持2.3 Cubemax配置及使用2.4 项目代码实现 1、PWM 绝对值位置读取功能 1.1 DataSheet说明 1.2 硬件支持…

【计算机网络篇】物理层(4)信道的极限容量,信道复用技术

文章目录 &#x1f354;信道的极限容量&#x1f6f8;造成信号失真的主要因素⭐码元的传输速率 &#x1f6f8;奈氏准则&#x1f6f8;香农公式&#x1f388;练习 &#x1f5d2;️小结 &#x1f354;信道复用技术⭐常见的信道复用技术&#x1f388;频分复用FDM&#x1f388;时分复…

TouchGFX之性能测量

TouchGFX Core开放了几个信号&#xff0c;可用于测量性能。 当这些信号在内部触发时&#xff0c;用户可在应用程序中同步触发单个GPIO&#xff0c;从而实现“渲染时间”和其他有用信号的可视化。 信号在GPIO.hpp中定义 /* 用于操作GPIO的接口类&#xff0c;以便在目标硬件上进…

ANOMALY TRANSFORMER: TIME SERIES ANOMALY DETECTION WITH ASSOCIATION DISCREPANCY

论文题目&#xff1a; ANOMALY TRANSFORMER: TIME SERIES ANOMALY DETECTION WITH ASSOCIATION DISCREPANCY 发表会议&#xff1a;ICLR 2022 论文地址&#xff1a;https://openreview.net/pdf?idLzQQ89U1qm_ 论文代码&#xff1a;https://github.com/thuml/Anomaly-Transforme…

“惠才俊·暖同行”成都蓉北商圈“政策进楼宇”系列活动第二站

活动时间 2024年3月27日下午14:00活动地点 四川省成都市金牛区福堤路99号数媒大厦(5楼共享会议室)主办单位 成都蓉北商圈发展服务局 成都市金牛区新经济和科技局 成都树莓信息技术有限公司协办单位 蓉北人力资源服务产业园 主讲单位 蓉北商圈服务局、区新经济和科技局、国…

PyQt上手指南

文章目录 前言PyQt的好处从一个最简单的例子入手PyQt5基础组件体系源码结构 Qt Designer基础布局高级界面Web控件 多线程列表图形绘制PyQt5.QtGuiPyQtGraphmatplotlib和PyQt结合和mplfinance结合 工具使用打包链接 前言 用户界面开发&#xff0c;我搞过visual C MFC、Delphi V…

thinkphp 使用phpmailer发送邮件以及使用消息队列异步解耦发送邮件

邮箱注册配置&#xff1a; 注册163或qq邮箱&#xff0c;开启smtp服务 25端口 ssl则465端口 下载phpmailer composer 安装phpmailer composer require phpmailer/phpmailer设置配置文件 配置文件 书写代码 代码 <?php namespace app\job; use think\facade\Log; us…

安卓(uniapp)上架华为踩坑合集

1.如果是离线打包&#xff0c;注意在manifest那里修改&#xff1a; android:debuggablefalse2…您的应用targetsdk版本低于30&#xff0c;不符合华为应用市场审核标准。 修改建议&#xff1a;请您将应用targetsdk等级升级到30或30以上。 因为之前我升到30被打回来过&#xff…

【LAMMPS学习】三、构建LAMMPS(5)可选的构建设置

3、构建LAMMPS 3.5.可选的构建设置 LAMMPS 可以通过多种可选设置来构建。每个小节都解释了如何使用 CMake 和 make 进行构建。 3.5.1. C11 标准合规性 编译 LAMMPS 需要 C11 标准兼容编译器。 LAMMPS 2020 年 3 月 3 版是核心代码和大多数软件包与之前的 C98 标准兼容的最…

使用 Flink + Faker Connector 生成测试数据压测 MySQL

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…

基于java校园在线打印预约系统设计与实现

摘 要 二十一世纪以来&#xff0c;计算机行业应用技术不断发展&#xff0c;人们的观念也在不断改变。传统打印行业&#xff0c;用户已经意识到传统的打印文件方法等待时间太长。校园在线打印预约系统可以通过网络来打印文件&#xff0c;用户可以在特定的时间预约打印文件&#…

【RabbitMQ | 第一篇】消息队列基础知识

文章目录 1.消息队列基础知识1.1什么是消息队列&#xff1f;1.2消息队列有什么用&#xff1f;&#xff08;结合项目说&#xff09;1.2.1异步处理1.2.2削峰/限流1.2.3降低系统耦合性1.2.4实现分布式事务 1.3消息队列的缺点1.4JMS和AMQP1.4.1 JMS的两种消息模型&#xff08;1&…

PSQLException:limit must not be negative

limit must not be negative异常原因及解决 在PostgreSQL中遇到PsqlException: limit must not be negative异常&#xff0c;通常是由于在执行SQL查询时&#xff0c;传递给LIMIT子句的值为负数导致的。LIMIT子句用于限制查询结果的数量&#xff0c;其值必须是非负整数。 解决这…

C++ Qt开发:QUdpSocket实现组播通信

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍如何运用QUdpSocket组件实现基于UDP的组播通信…