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.mfbz.cn/a/729090.html

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

相关文章

16s功能注释--PICRUST2的安装及使用

文章目录 安装本地安装conda安装 使用一些报错 安装 本地安装 在github网址下载压缩包:https://github.com/picrust/picrust2/releases/tag/v2.5.2 解压后将bin目录设置到环境变量 conda安装 利用bioconda安装 conda create -n picrust2 -c bioconda -c conda-…

Matlab基础语法:变量和数据类型,基本运算,矩阵和向量,常用函数,脚本文件

目录 一、变量和数据类型 二、基本运算 三、矩阵和向量 四、常用函数 五、脚本文件 六、总结 一、变量和数据类型 Matlab 支持多种数据类型,包括数值类型、字符类型和逻辑类型。掌握这些基本的变量和数据类型,是我们进行数学建模和计算的基础。 数…

网络安全复习笔记

概述 要素 CIA:可用性;完整性;保密性。 可控性;不可否认性;可审查性。 攻击 被动:窃听 - 保密性;监听 - 保密性主动:假冒 - 完整性;重放 - 完整性;改写 -…

数学建模系列(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…

中服云产品远程运维系统

中服云产品远程运维系统主要针对设备售后市场服务的管理,利用工业物联网技术,一方面面向设备生产厂商,将分散的经销商、客户、销售出去的设备统一管理;另一方面面向设备使用厂家,实现设备实时运行监控;系统…

【手机号性别查询、姓名查询、年龄查询、要素核验接口】支持高并发查询。

** 最近更新时间:2024-06-21 用户手机号注册实名认证接口,精度高,简化注册用户的认证流程,输入手机号码就可以获得认证结果,适合金融、社交、教育、电商、商户入驻等业务场景,用于简化实名认证流程&#…

AI网络爬虫:用deepseek提取百度文心一言的智能体数据

真实网址:https://agents.baidu.com/lingjing/experhub/search/list?pageSize36&pageNo1&tagId-99 返回的json数据:{ "errno": 0, "msg": "success", "data": { "total": 36, "p…

Ollma本地大模型沉浸式翻译【403报错解决】

最终效果 通过Chrome的 沉浸式翻译 插件,用OpenAI通用接口调用本地的Ollma上的模型,实现本地的大模型翻译文献。 官方文档指导的Ollama的配置:一定要配置环境变量,否则会出现【403报错】

H6901B 2.7-24V36V60V72V80V100V 高效率高精度升压型大功率LED恒流驱动芯片

H6901B是一款高效率高精度升压型大功率LED恒流驱动芯片,它具备多种特性和优势,应用于多种LED照明产品中。 首先,H6901B具有宽范围的输入电压,从2.7V到100V,这使其能够适应不同电压源的应用场景。同时,其高效…

【解决方案】智慧园区解决方案(配套源码)

智慧园区整体解决方案-综合运营管理系统 1. 园区现状与发展机遇 2. 智慧园区愿景 3. 智慧解决方案架构 4. 智慧园区各子系统介绍 5. 智慧园区建设意义 楼宇管理,物业管理,消防管理,巡检管理,门禁管理,停车管理等综合实…

如何手机录屏?2个方法轻松搞定!

随着智能手机的普及和移动互联网的飞速发展,手机录屏已经成为人们在日常生活中经常需要使用的功能。无论是录制游戏精彩瞬间、分享App操作教程,还是保留重要聊天信息,手机录屏都发挥着重要作用。可是你知道如何手机录屏吗?本文将介…

若电路板上的二极管损坏后怎么确定型号呢?

若电路板上的二极管损坏后,还可以看清原来管子的型号,换用一个同型号的二极管即可。若看不清型号或管子未标注型号,一般可以根据该二极管在电路中的作用来代换。电路板上的二极管坏了,如何确定它的型号?。 一般来说看…

Linux 软链接

# 语法 ln -s <文件夹or文件的真实路径> <自定义路径别名> # 例子 ln -s /etc/sysconfig/network-scripts/ifcfg-ens33 ~/ens33

【启明智显产品介绍】Model3C工业级HMI芯片详解专题(一)芯片性能

【启明智显产品介绍】工业级HMI芯片Model3C详解&#xff08;一&#xff09;芯片性能 Model3C 是一款基于 RISC-V 的高性能、国产自主、工业级高清显示与智能控制 MCU&#xff0c;配置平头哥E907&#xff0c;主频400MHz&#xff0c;强大的 2D 图形加速处理器、PNG/JPEG 解码引擎…

AI写作如何助力大学生完成毕业论文?

近年来&#xff0c;随着科技的快速发展&#xff0c;AI已经逐渐渗透到了生活中的方方面面&#xff0c;其中也包含着学术领域。 作为学生党&#xff0c;你是否还在为期末论文&#xff0c;大学生实践报告而发愁&#xff1f; 有了这些AI写作神器&#xff0c;大学生们再也不用在期…

Numpy: np.memmap详细用法

文章目录 0. 引言1. 基本用法2. 参数说明3. 例子3.1 读取内存映射文件3.2 修改内存映射文件 4. 使用场景5. 注意事项 0. 引言 np.memmap 是 NumPy 提供的一种用于内存映射大文件的类&#xff0c;允许大文件不完全加载到内存中&#xff0c;而是通过内存映射的方式部分加载。这在…

还原试卷的软件叫什么?这3款一键还原

还原试卷的软件叫什么&#xff1f;在数字化学习日益普及的今天&#xff0c;学生们在处理试卷时经常面临一个问题&#xff1a;如何高效地将已作答的试卷还原成空白状态以便重复练习&#xff1f;为了解决这一问题&#xff0c;市场上涌现出了多款还原试卷的软件。下面&#xff0c;…

职工管理系统

需求分析 系统需要能够实现对职工信息的插入、删除、查找、修改和排序功能。职工信息包括职工编号、姓名、性别、出生年月、参加工作年月、学历、职务、住址、电话等信息。界面友好&#xff0c;通过菜单实现以上功能&#xff0c;操作简单&#xff0c;能够方便快捷地进行信息管理…

RAG实操教程langchain+Milvus向量数据库创建你的本地知识库 二

Miluvs 向量数据库 关于 Milvui 可以参考我的前两篇文章 • 一篇文章带你学会向量数据库Milvus&#xff08;一&#xff09;[1]• 一篇文章带你学会向量数据库Milvus&#xff08;二&#xff09;[2] 下面我们安装 pymilvus 库 pip install --upgrade --quiet pymilvus如果你…

【自撰写】【国际象棋入门】第7课 常见战术分析(二)牵制、驱赶和腾挪

第7课 常见战术分析&#xff08;二&#xff09;牵制、驱赶和腾挪 在《第6课&#xff1a;常见战术分析&#xff08;一&#xff09;吃双和抽将》中&#xff0c;我们通过一系列实际棋局的例子&#xff0c;简单介绍了“吃双”和“抽将”这两种十分常见的战术。本次课中&#xff0c…