Unet已死,Transformer当立!详细解读基于DiT的开源视频生成大模型EasyAnimate

Diffusion Models视频生成-博客汇总

前言:最近阿里云PIA团队开源了基于Diffusion Transformer结构的视频生成模型EasyAnimate,并且提出了专门针对视频的slice VAE,对于目前基于Unet结构的视频生成最好如SVD形成了降维打击,不论是生成质量、生成时长上都是遥遥领先。这篇博客详细解读一下EasyAnimate的技术报告《EasyAnimate: A High-Performance Long Video Generation Method based on Transformer Architecture》

目录

贡献概述

模型结构

Video VAE

Video DiT结构

三阶段训练

DiT训练

数据集清洗策略

视频分割

视频过滤

视频字幕

效果试用

个人感悟


贡献概述

EasyAnimate是一种用于视频生成的高级方法,它利用 Transformer 架构的力量来实现高性能结果。作者通过扩展了最初设计用于 2D 图像合成的 DiT 框架,通过结合运动模块块来适应 3D 视频生成的复杂性。它用于捕获时间动态,从而确保产生一致的帧和无缝的运动转换。运动模块可以适应各种 DiT 基线方法来生成具有不同风格的视频。它还可以在训练和推理阶段生成具有不同帧速率和分辨率的视频,适用于图像和视频。

模型结构

Video VAE

传统的基于图像的 VAE 的一个显着限制是它不能跨时间维度压缩。因此,细微的帧间时间关系仍未捕获,结果潜在特征很大,导致CUDA内存需求激增。这些挑战极大地阻碍了这种方法在创建长视频方面的实用性。一个主要的挑战在于有效地压缩视频编码器和解码器中的时间维度。

作者使用了MagViT,在MagViT的基础上引入切片机制,提出了Slice VAE。

MagViT采用因果 3D 卷积块。该块在使用 vanilla 3D 卷积之前以先前时间的方式沿时间轴引入填充,从而确保帧利用先验信息来增强时间因果关系,同时保持不受后续帧的影响。尽管 MagViT 对视频编码和解码的复杂方法,但它在训练极其冗长的视频序列时面临挑战,这主要是由于内存限制。具体来说,所需的内存甚至经常超过 A100 GPU 可用的内存,使得大型视频的一步解码(例如 1024x1024x40)是不可行的。所以不能尝试一步解码整个序列,需要切片后批量处理。

为了批处理视频序列,作者首先沿空间维度尝试了切片机制。然而,这导致了不同批次之间的轻微照明不一致。随后,我们转移到沿时间维度切片。通过这种方法,将一组视频帧分成几个部分,每个部分分别编码和解码,如图2(a)所示。尽管如此,不同批次的信息分布是不相等的。例如,由于MagViT中的前向填充过程,第一个批次包含一个真实特征和额外的填充特征,包含的信息较少。这种不均匀的信息分布是一个可能阻碍模型优化的独特方面。此外,这种批处理策略还会影响处理过程中视频的压缩率。或者,我们实现了不同批次的特征共享,如图 2(b) 所示。在解码过程中,特征与其前后特征(如果有)连接,从而产生更一致的特征并实现更高的压缩率。这涉及通过 SpatialTemporalDownBlock(编码器中标记为浅橙色)压缩特征,针对空间和时间维度。这样,编码的特征封装了时间信息,这反过来又保留了计算资源,同时提高了生成结果的质量。

Video DiT结构

主要有两点改进:在PixArt-α的基础上加了运动模块,并用了UViT连接增强稳定性。

运动模块设计:运动模块来利用嵌入在帧长度内的时间信息,通过将注意力机制整合到时间维度上,该模型获得了同化这种时间数据的能力,这对于生成视频运动至关重要。采用网格重塑操作来增强注意力机制的输入标记池,从而增强图像中存在的空间细节的利用率,最终导致生成性能优越。经过训练的运动模块可以适应各种DiT基线模型,以生成不同风格的视频。

UViT:在训练过程中,作者观察到深度 DITs 往往不稳定,正如模型的损失表现出从 0.05 增加到 0.2 所证明的那样,最终增加到 1.0。为了追求通过 DIT 层反向传播期间增强模型优化过程和反转梯度崩溃,我们使用相应变换器块之间的长跳跃连接,这对于基于 UNet 框架的稳定扩散模型是有效的。为了在现有的扩散变压器体系结构中无缝地集成这种修改,而不需要进行全面的再训练,我们用零填充权值初始化几个完全连接的层(图3(c)中的灰色块)。

三阶段训练

DiT 分为三个阶段进行训练:第一阶段,对新训练的 VAE 进行图像训练。第二阶段,运动模块在大规模数据集上进行训练以生成视频。第三阶段,整个 DiT 网络受益于使用高分辨率视频和图像进行训练。

DiT训练

DiT训练同样分成三个阶段:

  • 第一阶段,使用图像数据将 DiT 参数与该 VAE 对齐开始。
  • 第二阶段,使用大规模视频数据集和图像数据对运动模块预训练。
  • 第三阶段,使用高质量的视频数据细化整个 DiT 模型以提高其生成性能。该模型是从较低到较高分辨率逐步缩放的,这是保存GPU内存和减少计算时间的有效策略。

数据集清洗策略

使用大约1200万张图像和视频数据来训练视频VAE模型和DiT模型。

视频分割

对于较长的视频分割,我们最初使用PySceneDetect。为了识别视频中的场景变化,并基于这些转换执行场景切割,以确保视频片段的主题一致性。切割后,我们只保留那些长度在 3 到 10 秒之间进行模型训练的片段。

视频过滤

过滤掉运动分数异常、包含字幕和美学评分低的片段。

视频字幕

VideoChat2和VILA对视频打上字幕。

效果试用

很尴尬呀,传不上来,总之效果挺不错的。

个人感悟

1、效果上比Sora放出来的Demo是要差不少的,但是比Open-Sora要好一些,重点是比SVD强不少。

2、感觉基于DiT结构确实好用啊,估计还会有更多开源的作品出来,期待一波。

3、好的模型赶紧用来搞新业务搞新论文,鸡冻,冲鸭!

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

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

相关文章

Apifox 快速入门教程

访问示例项目​ 可访问Apifox官网,下载并打开 Apifox 后,你将会看到由系统自动创建的“示例团队”,其中内含一个“示例项目”。 项目中自动生成了与宠物商店有关的数条接口。 手动新建接口​ 新建接口是开发者们最常用的功能之一。Apifox 能…

提升运营设计水平的8个关键技巧

运营设计是建立更强大的设计团队,支持个人、流程和工具的协调,大规模扩大创造力和影响力的一种以人为本的方法。设计和操作通过敏捷和迭代的方法完全改变了开发过程,允许组织跨团队快速扩展和迭代设计过程。一个庞大的运营设计团队应该如何协…

嵌入式虚拟仿真创新教学方案,解决芯片原理讲解抽象、依赖大量硬件平台、系统化教学难三大难题

嵌入式技术起源早,市场需求旺盛,被广泛应用于各个领域,从智能家居到智慧城市,从工业自动化到医疗健康,嵌入式系统深度落地于各类智能设备与系统之中,支撑起物联网的发展。随着物联网与人工智能的迅速发展&a…

NGINX_十八 nginx 访问控制

十八 nginx 访问控制 1 nginx 访问控制模块 (1)基于IP的访问控制:http_access_module (2)基于用户的信任登录:http_auth_basic_module 2 基于IP的访问控制 2.1 配置语法 Syntax:allow addr…

《Windows API每日一练》5.2 按键消息

上一节中我们得知,Windows系统的按键消息有很多类型,大部分按键消息都是由Windows系统的默认窗口过程处理的,我们自己只需要处理少数几个按键消息。这一节我们将详细讲述Windows系统的所有按键消息及其处理方式。 本节必须掌握的知识点&…

解决IDEA使用卡顿的问题,设置JVM内存大小和清理缓存

解决IntelliJ IDEA中卡顿问题,可以尝试以下几个常见且有效的步骤: 1 增加IDEA的JVM内存分配: 位于IDEA安装目录的bin文件夹下,找到对应的操作系统配置文件(idea64.exe.vmoptions(Windows)或id…

BFS:FloodFill算法

文章目录 FloodFill算法简介1.图像渲染2.岛屿数量3.岛屿的最大面积4.被围绕的区域总结 FloodFill算法简介 Flood Fill算法是一种用于确定与某个给定节点相连的区域的算法,常用于计算机图形学和图像处理。该算法可以用于诸如填充多边形、检测连通区域等任务。Flood …

做电池研究如何发表Nature Communications,案例分析

✨【元素魔方学术俱乐部】✨ 👩‍🏫👨‍🏫我们创建了一个学术交流群 给全国各地以及各种研究方向的硕博 和老师们提供一个交流的平台📚🧪 感兴趣的话欢迎加入 📲本公众号中回复“社群” 会自动发…

Lynred在欧洲防务展上将展出新品——“HOT”红外传感器Seegnus。

Lynred在即将举办的巴黎欧洲防务展上将展出其令人瞩目的新品——“HOT”红外传感器Seegnus。这款专为战术视觉设计的大型阵列传感器,以其紧凑的封装和高分辨率的中波红外成像能力,无疑将为航空航天、国防和商业市场带来革命性的突破。 Seegnus传感器拥有…

RX数据集成:信创生态下的平滑过渡方案

过去,众多中国企业倾向于采用国际供应商的数据集成产品与方案。其中Informatica作为行业翘楚,以其卓越性能和技术领先地位赢得了全球500强中95%企业的青睐。在中国市场上,众多企业同样信赖并采纳其解决方案。然而,随着国际环境的演…

威泰视信嵌入式软件工程师笔试题

威泰视信嵌入式软件工程师笔试题答题时间 45分钟 选择题 1、以下不需要编译内核的情况是 A、删除系统不用的设备驱动程序时 B、升级内核时 C、添加新硬件时 D、激活网卡 只要你代码或配置有改动,都要重新编译的,只是如果代码写成块模式的&#xff…

【LLM之RAG】RAT论文阅读笔记

研究背景 近年来,大型语言模型(LLMs)在各种自然语言推理任务上取得了显著进展,尤其是在结合大规模模型和复杂提示策略(如链式思维提示(CoT))时。然而,LLMs 在推理的事实…

.net8 blazor auto模式很爽(三)用.net8的Blazor自动模式测试,到底在运行server还是WebAssembly

Blazor自动模式到底什么时侯在运行server,什么时侯在运行WebAssembly。这个对我们来说非常重要,官方并没有很清楚地告诉我们。并且存在一些误导,让我们觉得自动模式就是不管我怎么弄,blazor都会自动识别该使用server还是WebAssemb…

Ubuntu 安装 CloudCompare

步骤: sudo apt install flatpakflatpak install flathub org.cloudcompare.CloudCompare此时会有报错: error: No remote refs found similar to ‘flathub’执行 flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.fla…

【IDEA】Spring项目build失败

通常因为环境不匹配需要在file->projectstructure里面调整一下。

详解DAC数模转换+DAC输出模拟电压的测量比对实验程序

前言:详解DAC数模转换原理DAC输出模拟电压的测量比对实验程序(使用 DAC 通道 1 输出模拟电压,然后通过 ADC1 的通道 1 对该输出电压进行读取,并显示在 LCD 模块上面,DAC 的输出电压可以通过按键(或 USMART&…

了解CDN:提升网络性能和安全性的利器

在当今的数字时代,网站性能和安全性是每一个网站管理员必须关注的核心问题。内容分发网络(CDN,Content Delivery Network)作为解决这一问题的重要工具,逐渐成为主流。本文将详细介绍CDN的定义、作用及其工作原理&#…

小白学react之Next.js 14(一)不配置路由的玩法

Next.js 14是目前最新版本,我们用就用最新的玩一下。 建一个示例之后,我在找配置,我应该在那建一个新的页面。找半天硬是没找着,答案是现在不需要配置。 我们来看一下Next.js 14的项目结构: 很明显,在src/…

数学建模系列(4/4):Matlab建模实战

目录 引言 1. Matlab简介与安装 1.1 Matlab简介 1.2 Matlab的安装 2. Matlab基础操作 2.1 Matlab基础语法和常用命令 2.2 Matlab中的数据类型和数据结构 3. 用Matlab进行建模 3.1 矩阵运算与线性代数 矩阵运算 3.2 Matlab中的绘图功能 绘制2D图形 绘制3D图形 3.3…

物联网技术-第5章-物联网数据处理

目录 1.物联网数据特征 2.物联网数据处理 (1)数据清洗 (2)数据存储 (3)数据融合 (4)数据挖掘 3.大数据基本概念 4.云计算基本概念 (1)背景 &#xf…