阿里巴巴重磅开源EasyAnimate!基于DiT的长视频制作生态系统

文章链接:https://arxiv.org/pdf/2405.18991
开源地址:https://github.com/aigc-apps/EasyAnimate

本文介绍了EasyAnimate,这是一种用于视频生成的高级方法,利用Transformer架构的强大性能实现高效成果。扩展了最初设计用于2D图像合成的DiT框架,通过引入运动模块以适应3D视频生成的复杂性。该模块用于捕捉时间动态,从而确保帧的一致性和运动过渡的平滑性。运动模块可以适应各种DiT基线方法,以生成不同风格的视频。在训练和推理阶段,它还能够生成具有不同帧速率和分辨率的视频,适用于图像和视频。

此外,还引入了slice VAE,这是一种压缩时间轴的创新方法,方便生成长时间的视频。目前,EasyAnimate能够生成144帧的视频。研究者们基于DiT提供了一个全面的视频制作生态系统,涵盖数据预处理、VAE训练、DiT模型训练(包括基线模型和LoRA模型)以及端到端的视频推理。目前仍在不断努力提高我们方法的性能。

介绍

人工智能在文本、图像和声音的创意内容生成方面已经决定性地扩展了其应用范围。在视觉领域,扩散模型被广泛用于图像生成和修改。开源项目如Stable Diffusion在文本转图像方面取得了显著进展。然而,在视频生成方面,当前模型仍面临一些挑战,如质量欠佳、视频长度有限以及运动不自然,这表明该技术还有很大的进步空间。

一些开创性的研究在利用Stable Diffusion方法进行视频合成方面取得了进展,重点是用于去噪过程的UNet架构。最近,Sora 展现了非凡的视频生成能力,能够生成长达一分钟的高保真视频。这一进步显著提升了现实世界模拟的真实性,相比其前辈有了很大的提高。此外,这揭示了Transformer架构在视频生成中的关键作用,促使开源社区以新的热情深入探讨Transformer结构的复杂性。

在此背景下,研究者们推出了EasyAnimate,一个简单而强大的视频生成基线。该框架提供了一个易于访问的训练流程,涵盖了VAE、DiT的训练,并促进了文本到图像和文本到视频生成的混合训练。值得注意的是,设计了一种切片机制以支持长时间视频生成。为VAE实施了两阶段训练策略,以增强解码效果。

在DiT方面,通过引入时空运动模块块来探索视频生成的时间信息。此外,从UViT引入的长连接丰富了我们的架构。DiT的训练分为三个阶段:最初进行图像训练以适应新训练的VAE;随后在大规模数据集上训练运动模块以生成视频;最后,整个DiT网络在高分辨率视频和图像上进行训练。此外,还提出了一套全面的数据预处理协议,旨在策划高质量的视频内容及其对应的字幕。期望EasyAnimate能作为未来视频合成研究的强大且高效的基线,进一步推动创新、进步和探索。

模型架构

下图1展示了EasyAnimate的概述。是基于PixArt-α构建了EasyAnimate。它包括一个文本编码器、视频VAE(视频编码器和视频解码器)以及Diffsuion Transformer(DiT)。使用T5编码器作为文本编码器。

视频VAE

在早期的研究中,基于图像的变分自编码器(VAE)被广泛用于视频帧的编码和解码,例如AnimateDiff、ModelScopeT2V和OpenSora。一种流行的图像VAE实现(Stability-AI),如在Stable Diffusion中使用的那样,将每个视频帧编码为一个单独的潜在特征,大大缩小了帧的空间维度至宽度和高度的八分之一。这种编码技术忽视了时间动态,将视频降解为静态图像表示。传统基于图像的VAE的一个显著局限是其无法压缩时间维度。因此,细微的帧间时间关系未能被充分捕捉,导致潜在特征较大,CUDA内存需求急剧增加。这些挑战显著阻碍了此类方法在长视频创建中的实用性。因此,主要挑战在于如何在视频编码器和解码器中有效压缩时间维度。

此外,在使VAE能够同时使用图像和视频进行训练。先前的研究(Blattmann)表明,将图像整合到视频训练流程中可以更有效地优化模型架构,从而改进其文本对齐并提高输出质量。

一个著名的视频VAE例子是MagViT,据信它被用于Sora框架。为了提高时间维度的压缩效率,在MagViT中引入了切片机制,并提出了Slice VAE。Slice VAE的架构见下图2。

MagViT:最初在EasyAnimate中采用了MagViT。它采用了因果3D卷积块。该块在应用普通3D卷积之前,在时间轴上引入了一种前置时间填充方式,从而确保帧利用先前信息增强时间因果关系,同时不受后续帧的影响。此外,MagViT还允许模型处理图像和视频。通过将图像训练与视频训练结合,它能够利用丰富且易获取的图像,这已被证明在DiT的训练过程中可以增强文本-图像对齐,从而显著改善视频生成结果。尽管MagViT在视频编码和解码方面有其优雅的处理方式,但在极长视频序列的训练中面临挑战,主要是由于内存限制。具体而言,所需内存通常超过A100 GPU的可用内存,使得无法一步解码大视频(如1024x1024x40)。这个挑战突显了需要批处理以实现增量解码,而不是尝试在一步中解码整个序列的必要性。

Slice VAE:为了实现批处理,首先在空间维度上实验了切片机制。然而,这导致了不同批次之间的轻微照明不一致。随后,我们转向在时间维度上进行切片。通过这种方法,一组视频帧被分为若干部分,每部分分别进行编码和解码,如前面图2(a)所示。然而,不同批次之间的信息分布是不均衡的。例如,由于MagViT中的前向填充过程,第一批次包含一个实际特征和额外的填充特征,信息量较少。这种不均衡的信息分布是一个显著的方面,可能会阻碍模型优化。此外,这种批处理策略也会影响视频处理过程中的压缩率。

另一种方法是实现跨不同批次的特征共享,如前面图2(b)所示。在解码过程中,特征与其前后的特征(如果有的话)进行连接,从而产生更一致的特征并实现更高的压缩率。这涉及通过SpatialTemporalDownBlock(在编码器中标记为浅橙色)对特征进行压缩,目标是空间和时间维度。通过这种方式,编码特征包含时间信息,从而节省计算资源并同时提高生成结果的质量。

视频Diffsuion Transformer

Diffsuion Transformer的架构如下图3所示。该模型基于PixArt-α,并通过引入如图3(b)所示的运动模块,使其从2D图像合成扩展到3D视频生成。此外,还集成了UViT的连接,如图3(c)所示,以增强训练过程的稳定性。

运动模块:运动模块专门设计用于利用帧长度中嵌入的时间信息。通过在时间维度上整合注意力机制,模型获得了同化这些时间数据的能力,这对于生成视频运动至关重要。同时,采用网格重塑操作来增加注意力机制的输入令牌池,从而增强对图像中空间细节的利用,最终实现更优异的生成性能。值得注意的是,与AnimateDiff类似,训练好的运动模块可以适应各种DiT基线模型,以生成不同风格的视频。

U-VIT:在训练过程中,观察到深层的DITs趋于不稳定,表现为模型的损失急剧增加,从0.05到0.2,最终上升到1.0。为了加强模型优化过程并避免在通过DIT层进行反向传播时的梯度崩溃,在相应的变压器块之间使用了长跳跃连接,这对于基于UNet框架的Stable Diffusion模型非常有效。为了在现有的Diffsuion Transformer架构中无缝集成这一修改,而无需全面重新训练,初始化了几个权重为零的全连接层(前面图3(c)中的灰色块)。

数据预处理

EasyAnimate的训练包括图像数据和视频数据。本节详细介绍视频数据处理方法,包括三个主要阶段:视频拆分、视频过滤和视频字幕。这些步骤对于筛选出具有详细字幕的高质量视频数据,以便能够概括视频内容的精髓至关重要。

视频拆分

对于较长的视频拆分,首先使用PySceneDetect来识别视频中的场景变化,并根据这些过渡进行场景剪切,以确保视频片段的主题一致性。剪切后,仅保留长度在3到10秒之间的片段用于模型训练。

视频过滤

从三个方面过滤视频数据,即运动评分、文本区域评分和美学评分。

运动过滤:在训练视频生成模型时,确保视频展示出运动感以区分于静态图像至关重要。同时,保持运动的一定一致性也很重要,因为过于不稳定的运动会影响视频的整体连贯性。为此,使用RAFT (Teed and Deng, 2020) 在指定的每秒帧数(FPS)之间计算帧之间的运动评分,并根据适当的运动评分过滤视频,以微调运动的动态性。

文本过滤:视频数据中通常包含特定的文本信息(例如字幕),这不利于视频模型的学习过程。为了解决这个问题,使用光学字符识别(OCR)确定视频中文本区域的比例。OCR在采样帧上进行,以表示视频的文本评分。然后,仔细过滤掉任何文本区域超过视频帧面积1%的视频片段,确保剩下的视频对模型训练是最优的。

美学过滤:此外,互联网上有许多低质量的视频。这些视频可能缺乏主题焦点或因过度模糊而受到影响。为了提高训练数据集的质量,我们计算美学评分并保留高评分的视频,从而获得视觉上吸引人的训练集用于视频生成。

视频字幕

视频字幕的质量直接影响生成视频的效果。对几种大型多模态模型进行了全面比较,权衡了它们的性能和操作效率。经过仔细考虑和评估,选择了VideoChat2和VILA来进行视频数据的字幕生成,因为它们在我们的评估中表现出色,特别是在实现包含细节和时间信息的视频字幕方面非常有前途。

训练过程

总共使用了大约1200万张图像和视频数据来训练视频VAE模型和DiT模型。我们首先训练视频VAE,然后使用三阶段的粗到细训练策略将DiT模型适应新的VAE。

视频VAE

MagViT:使用Adam优化器,beta=(0.5, 0.9),学习率为1e-4进行训练,总共训练了350k步。总批量大小为128。

Slice VAE:从前述的MagViT初始化Slice VAE的权重。如下图4所示,Slice VAE分两阶段训练。首先,我们在200k步内训练整个VAE,使用Adam优化器,beta=(0.5, 0.9),批量大小为96,学习率为1e-4。接下来,按照Stable Diffusion(Rombach et al., 2021)的程序,在第二阶段仅训练解码器100k步,以更好地提高解码视频的保真度。

视频Diffsuion Transformer

如下图5所示,DiT模型的训练分为三个阶段。首先,在引入新的视频VAE后,我们通过仅使用图像数据来对齐DiT参数与该VAE。随后,我们使用大规模视频数据集与图像数据一起预训练运动模块,从而为DiT引入视频生成能力。使用桶策略(bucket strategy)来训练不同分辨率的视频。在这个阶段,尽管模型能够生成具有基本运动的视频,但输出往往质量不佳,表现为运动有限和清晰度欠佳。最后,我们使用高质量的视频数据精细调整整个DiT模型,以提高其生成性能。模型从较低分辨率逐渐扩展到较高分辨率进行训练,这是一种有效的策略,可以节省GPU内存并减少计算时间。

实验

目前已经在GitHub仓库中发布了检查点。您可以在以下地址查看生成结果并尝试使用EasyAnimate:https://github.com/aigc-apps/EasyAnimate。

结论

本文介绍了EasyAnimate,这是一种基于变压器架构的高性能AI视频生成和训练管道。基于DiT框架,EasyAnimate集成了运动模块,以确保一致的帧生成和流畅的运动过渡。该模型能够在训练和推理过程中适应不同的帧数和分辨率组合,适用于生成图像和视频。

参考文献

[1] EasyAnimate: A High-Performance Long Video Generation Method based on Transformer Architecture
[2]magvit: https://github.com/google-research/magvit
[3]PixArt: https://github.com/PixArt-alpha/PixArt-alpha
[4]Open-Sora-Plan: https://github.com/PKU-YuanGroup/Open-Sora-Plan
[5]Open-Sora: https://github.com/hpcaitech/Open-Sora
[6]Animatediff: https://github.com/guoyww/AnimateDiff

  • 25
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值