open-sora

Open-Sora,高效复现类Sora视频生成方案开源!魔搭社区最佳实践教程来啦!icon-default.png?t=N7T8https://mp.weixin.qq.com/s/WMQIDgZs2MBPGtx18XSXgw

Open-Sora开源方案讲解开源但“平替”的方案。icon-default.png?t=N7T8https://mp.weixin.qq.com/s/nPYCzgBA7hIsPZ6PCyXxKQOpen-Sora/docs/report_v1.md at main · hpcaitech/Open-Sora · GitHubOpen-Sora: Democratizing Efficient Video Production for All - Open-Sora/docs/report_v1.md at main · hpcaitech/Open-Soraicon-default.png?t=N7T8https://github.com/hpcaitech/Open-Sora/blob/main/docs/report_v1.md目前复现sora有两个主力项目,一个是open-sora,另一个是open-sora-plan,前者是hpcaitech,就是colossalAI团队,后者是北大兔展联合实验室推的,这两个都是可以持续跟进的项目,目前简单介绍下open-sora的一些做法。

1.变分自编码器VAE

为了降低计算成本,Open-Sora使用VAE将视频从原始像素空间映射至潜在空间(latent space)。Sora的技术报告中,采用了时空VAE来减少时间维度,Open-Sora项目组通过研究和实践,发现目前尚无开源的高品质时空VAE(3D-VAE)模型。Google研究项目的MAGVIT所使用的4x4x4 VAE并未开放源代码,而VideoGPT的2x4x4 VAE在实验中表现出较低的质量。因此,在Open-Sora v1版本中,使用来自Stability-AI的2D VAE(sd-vae-ft-mse)。

2.Diffusion transformers - STDiT

在处理视频训练时,涉及到大量token。对于每分钟24帧的视频,共有1440帧。经过VAE 4倍下采样和patch尺寸2倍下采样后,大约得到1440x1024≈150万token。对这150万个token进行全注意力操作会导致巨大的计算开销。因此,Open-Sora项目借鉴Latte项目,采用时空注意力机制来降低成本。

如图所示,在STDiT(空间-时间)架构中每个空间注意力模块之后插入一个时间注意力模块。这一设计与Latte论文中的变体3相似,但在参数数量上未做严格控制。Open-Sora在16x256x256分辨率视频上的实验表明,在相同迭代次数下,性能排序为:DiT(全注意力)> STDiT(顺序执行)> STDiT(并行执行)≈ Latte。出于效率考虑,Open-Sora本次选择了STDiT(顺序执行)。

Open-Sora专注视频生成任务,在PixArt-α基础上训练模型。这项研究,采用了T5-conditioned DiT结构。Open-Sora以PixArt-α为基础初始化模型,并将插入的时间注意力层初始化为零值。这样的初始化方式确保了模型从一开始就能保持图像生成能力,文本编码器采用的则是T5模型。插入的时间注意力层使得参数量从5.8亿增加到了7.24亿。

受PixArt-α和稳定视频扩散技术成功的启发,Open-Sora采取了逐步训练策略:首先在36.6万预训练数据集上以16x256x256分辨率训练,然后在2万数据集上分别以16x256x256、16x512x512以及64x512x512分辨率继续训练。借助缩放position embedding,显著降低了计算成本。

3.Patch embedding

Open-Sora尝试在DiT中使用三维patch embedding,但由于在时间维度上进行2倍下采样,生成的视频质量较低。因此,在下一版本中,Open-Sora把下采样的任务留给时空VAE,在V1中按照每3帧采样(16帧训练)和每2帧采样(64帧训练)的方式进行训练。

4.Video caption

Open-Sora使用LLaVA-1.6-Yi-34B为视频进行标注,该标注基于三个连续的帧以及一个精心设计的提示语。借助这个精心设计的提示语,LLaVA能够生成高质量的视频描述。

5.模型架构设计

整个架构包括一个预训练好的VAE,一个文本编码器和一个利用空间-时间注意力机制的STDiT模型,在训练阶段首先采用预训练好的VAE的编码器将视频数据进行压缩,然后在压缩之后的潜在空间中与文本embedding一起训练STDiT,在推理阶段,从VAE的潜在空间中随机采样出一个高斯噪声与提示词prompt embedding一起输入STDiT中,得到去噪之后的特征,最后输入到VAE的解码器中,解码得到视频。

6.训练

训练参考了stable video diffusion,包括三个阶段:1.大规模图像预训练,2.大规模视频预训练;3.高质量视频数据微调。每个阶段都会基于前一个阶段的权重继续训练,相比较从零开始单阶段训练,多阶段训练通过逐步扩展数据,高效。

6.1 第一阶段

通过互联网上丰富的大规模图像数据和先进的文生图技术,训练一个高质量的文生图模型,该模型将作为下一阶段视频预训练的初始化权重,PIxel-alpha的权重。同时,由于目前没有高质量的时空 VAE,采用了 Stable Diffusion [5] 模型预训练好的图像 VAE。该策略不仅保障了初始模型的优越性能,还显著降低了视频预训练的整体成本。

6.2 第二阶段

第二阶段的模型在第一阶段文生图模型的基础上加入了时序注意力模块,用于学习视频中的时序关系。其余模块与第一阶段保持一致,并加载第一阶段权重作为初始化,同时初始化时序注意力模块输出为零,以达到更高效更快速的收敛。采用了T5模型作为文本编码器。同时他们采用了 256x256 的小分辨率进行预训练,进一步增加了收敛速度,降低训练成本。

6.3 第三阶段

第三阶段用到的视频数据规模比第二阶段要少一个量级,但是视频的时长、分辨率和质量都更高。通过这种方式进行微调,他们实现了视频生成从短到长、从低分辨率到高分辨率、从低保真度到高保真度的高效扩展。

Open-Sora 的复现流程中,使用了 64 块 H800 进行训练。第二阶段的训练量一共是 2808 GPU hours,约合 7000 美元,第三阶段的训练量是 1920 GPU hours,大约 4500 美元。经过初步估算,整个训练方案成功把 Open-Sora 复现流程控制在了 1 万美元左右。

7.高效训练

总结来说,Open-Sora项目V1版本非常完整的复刻了基于Transformers的视频生成的Pipeline:

  • 比较多种STDiT的方式,采用了STDiT(顺序执行),并验证了结果

  • 借助position embedding,实现了不同分辨率和不同时长的视频生成。

在试验的过程中也遇到了一些困难,比如我们注意到,

  • Open-Sora项目一开始采用的是VideoGPT的时空VAE,验证效果不佳后,依然选择了Stable Diffusion的2D的VAE。

  • 同时,三维patch embedding,由于在时间维度上进行2倍下采样,生成的视频质量较低。在V1版本中依然采用了按帧采样的方式。

Open-Sora也借助了开源项目和模型的力量,包括但不限于:

  • LLaVA-1.6-Yi-34B的多模态LLM来实现Video-Caption,生成高质量的视频文本对。

  • 受PixArt-α和稳定视频扩散技术成功的启发,采用了T5 conditioned DiT结构。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt信号与槽

我们在使用Qt的时候,不使用Qt Designer 的方式进行开发,使用ui文件,信号与槽的连接方式是生成代码之后才能在setupUi函数里才能看到,或者需要进入Ui设计器里的信号槽模式里才能看到信号槽的连接。所以我们最好使用代码绘制界面。 …

CCD机器视觉在工业生产中起到什么作用?

CCD机器视觉尺寸测量是基于相对测量方法,通过可追溯性、放大校准、自动边缘提升和屏幕图像测量来计算实际尺寸。在精密测量中,放大倍数必须达到35倍或更高,才能达到微米级的精度。此时,视线宽度小于5mm。对于大于5mm的物体&#x…

游戏提示找不到steam_api64.dll,无法继续执行代码的解决方法

在我们日常沉浸在电脑世界中,尽情享受各类电子游戏带来的精彩与刺激时,偶尔会遭遇一些令人困扰的技术问题。这次,当您正全神贯注地启动心仪的游戏,期待着新一局冒险或竞技的开始,电脑屏幕上却冷不防地弹出一条警示信息…

--每周分享--

分享内容: 1.单链表的归并排序 2.一道有趣的思考题 分享细节: 单链表的归并排序 主要思想:递归 怎么理解?下面具体说明: 1.首先,我从整体的思考步骤说明:先分区,再排序&#…

游标的定义和类型

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 游标的基本概念 游标从字面上理解为游动的光标,可以使用 Excel 表格来想象游标的作用,游标指向每一行,通过游标访问每行数据。 在 Orac…

二维相位解包理论算法和软件【全文翻译- 菲林(Flynn)最小不连续性方法(4.5)】

4.5 菲林最小不连续性方法 在迄今为止对路径跟踪算法的讨论中,我们忽略了一种非常自然的方法,现在我们将对其进行描述。如果我们仔细观察图 4.42(a)中包裹相位数据中的条纹图案,就会发现 "条纹线 "或最亮像素和最暗像素之间的边界标志着从 0 到 2π 的过渡,它们…

【LAMMPS学习】八、基础知识(1.5) LAMMPS 库接口

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

react17中配置webpack:使用@代表src目录

在vue的项目中可以使用表示src目录,使用该符号表示绝对路径,那么在react中想要使用怎么办呢? 在react中使用表示src目录是需要在webpack中配置的,在核心模块node_modules-》react-scripts-》config-》webpack.config.js中搜索找到…

城市内涝与海绵城市规划设计中的水文水动力模拟

原文链接:城市内涝与海绵城市规划设计中的水文水动力模拟https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247601198&idx5&sn35b9e5e3961ea2f190f9742236a7217f&chksmfa820dc9cdf584df97633f64d19bdc3e5f7d1a5a85000c8f040e1953c51b9b39c87b5…

【Linux】Socket编程接口 | 实现简单的UDP网络程序

文章目录 一、预备知识理解源IP地址和目的IP地址理解源mac地址和目的mac地址认识端口号理解源端口号和目的端口号理解“端口号(PORT)”和“进程ID(PID)” 认识TCP和UDP协议TCP协议UDP协议 网络字节序为什么网络字节序采用的是大端…

华媒舍:7种方式,打造出旅游媒体套餐

现如今,伴随着旅游业发展与繁荣,更多旅游业发展从业人员越来越重视产品营销品牌基本建设,希望可以将自己的度假旅游产品和服务营销推广给更多的潜在用户。而建立一个优秀的旅游业发展媒体套餐内容品牌是吸引目标客户的重要步骤。下面我们就详…

6.3Python之字典的内置方法

1、创建字典 dict.fromkeys() :可将列表、元组、集合转为字典 knowledgeL [语文, 数学, 英语] scoresD1 dict.fromkeys(knowledgeL, 60) print(scoresD1) knowledgeT (Chinese, Math, English) scoresD2 dict.fromkeys(knowledgeT, 60) print(scoresD2) knowl…

用html写一个雨的特效

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>雨特效</title><link rel"stylesheet" href"./style.css"> </head> <body> <div id"wrap-textu…

一文掌握 React 开发中的 JavaScript 基础知识

前端开发中JavaScript是基石。在 React 开发中掌握掌握基础的 JavaScript 方法将有助于编写出更加高效、可维护的 React 应用程序。 在 React 开发中使用 ES6 语法可以带来更简洁、可读性更强、功能更丰富,以及更好性能和社区支持等诸多好处。这有助于提高开发效率,并构建出更…

Stable Diffusion——SDXL Turbo让 AI 出图速度提高10倍

摘要 在本研究中&#xff0c;我们提出了一种名为对抗扩散蒸馏&#xff08;ADD&#xff09;的创新训练技术&#xff0c;它能够在1至4步的采样过程中&#xff0c;高效地对大规模基础图像扩散模型进行处理&#xff0c;同时保持图像的高质量。该方法巧妙地结合了分数蒸馏技术&…

【企业场景】设计模式重点解析

设计模式 在平时的开发中&#xff0c;涉及到设计模式的有两块内容&#xff1a; 我们平时使用的框架&#xff08;比如spring、mybatis等&#xff09;我们自己开发业务使用的设计模式。 在平时的业务开发中&#xff0c;其实真正使用设计模式的场景并不多&#xff0c;虽然设计号…

企业业务遇到CC攻击,为何让人如此头疼。

随着互联网的普及和应用&#xff0c;网络安全已经成为人们越来越关注的一个问题。 随着网络信息化不断发展&#xff0c;用户对网站体验有着更高的要求&#xff0c;在网络时代&#xff0c;网站的稳定性至关重要&#xff0c;活跃在网络中的恶意攻击者惯用各类攻击手段破坏网站的稳…

C# Solidworks二次开发:几何公差IGot相关操作API详解

大家好&#xff0c;今天要介绍的是关于几何公差IGot相关操作的API。 几何公差之前没有讲过&#xff0c;具体API如下面所示&#xff1a; &#xff08;1&#xff09;第一个为GetText&#xff0c;这个API的含义为获取此几何公差的指定文本部分&#xff0c;下面是官方的具体解释&…

每日OJ题_01背包①_牛客DP41 【模板】01背包(滚动数组优化)

目录 牛客DP41 【模板】01背包 问题一解析 问题二解析 解析代码 滚动数组优化代码 牛客DP41 【模板】01背包 【模板】01背包_牛客题霸_牛客网 #include <iostream> using namespace std;int main() {int a, b;while (cin >> a >> b) { // 注意 while 处…

智慧污水井物联网远程监控案例

智慧污水井物联网远程监控案例 在当今数字化转型的浪潮中&#xff0c;智慧水务已成为城市基础设施建设的重要组成部分。其中&#xff0c;基于物联网技术的智慧污水井远程监控系统以其高效、精准、实时的特性&#xff0c;在提升污水处理效能、保障城市水环境安全、实现精细化管…