视频生成框架EasyAnimate正式开源!

简介: 视频生成框架EasyAnimate正式开源!

近期,Sora模型的热度持续上涨,社区中涌现了一些类Sora的开源项目,这些项目均基于Diffusion Transformer结构,使用Transformer结构取代了UNet作为扩散模型的基线,旨在生成更长、更高分辨率、且效果更好的视频。


EasyAnimate是阿里云人工智能平台PAI自主研发的DiT-based视频生成框架,它提供了完整的高清长视频生成解决方案,包括视频数据预处理、VAE训练、DiT训练、模型推理和模型评测等。在预训练模型的基础上,EasyAnimate可通过少量图片的LoRA微调来改变生成视频的风格,相比已有方案具有更好的扩展性和完整性。


EasyAnimate在人工智能平台PAI上进行了集成,供用户一键训练和部署,其支持以下功能:


  • 最大分辨率768x768,最长144帧的视频推理 (512x512分辨率可在A10 24G上推理)
  • DiT 基线模型的训练
  • DiT LoRA模型的训练(512x512分辨率可在A10 24G上训练图片Lora)
  • VAE模型的训练和推理
  • 视频预处理


用户可以使用EasyAnimate来进行任意风格视频模型的训练和推理。目前,EasyAnimate项目仍处在初期,并将持续优化来达到更好的生成效果,欢迎大家持续关注~


开源地址:https://github.com/aigc-apps/EasyAnimate

技术报告:https://arxiv.org/abs/2405.18991


效果展示


image.png


上图包含了EasyAnimate部分测试视频的第一帧图像。更多结果可以参考https://github.com/aigc-apps/EasyAnimate/blob/v2/scripts/Result_Gallery.md


在这里也展示了一些可以直接看到的结果与其对应的Prompts:


Prompt

GenerationResult

In this video, the sun sets over the sea, casting a symphony of fiery oranges and pinks across the sprawling canvas of the sky. These warm colors reflect on the undulating waters, creating a path of molten gold that leads to the horizon. Above, wispy clouds are painted with the last strokes of daylight, transitioning from soft lavender to deep violet as twilight approaches. The tranquil sounds of waves lapping gently against the shore provide a serene accompaniment to the visual majesty of the sunset's peaceful descent. image.png

This video shows a close-up of a white flower against a blurry background. The flower appears to be very small, and it is surrounded by green leaves. There are other flowers visible in the background that are also white. The camera angle is close to the flower, making it feel like you're standing right next to it. The video focuses on the small details of the flower, and it is a beautiful sight to behold.

image.png


This heartwarming video captures a dog with a delicate and expressive face. As it sits calmly, the background reveals a sun-dappled garden, enhancing the cheerful and tranquil atmosphere of this charming scene. The dog's infectious smile seems to invite viewers into a moment of happiness and companionship.

image.png

This heartwarming video captures a cat with a delicate and expressive face, sporting a beaming smile that radiates pure joy. Its eyes sparkle with a gentle intelligence and kindness, reflecting a soul full of love and contentment. The cat's soft, well-groomed fur ripples slightly in the breeze, complementing its friendly demeanor. As it sits calmly, the background reveals a sun-dappled garden, enhancing the cheerful and tranquil atmosphere of this charming scene. The cat's infectious smile seems to invite viewers into a moment of happiness and companionship.

image.png

The video showcases an adorable frog hiding in a puddle. It's a close-up shot of the frog, captured in the right time and angle to make it seem as if the viewer is right there with the frog in the puddle. The video is of high quality, giving a clear and vivid picture of the frog.

image.png

An extreme closeup of a young mans face, looking into the camera, from the front, alone in front of a dirty hot pink wall, intimate portrait.

image.png

1girl with black hair, cross earrings, cross necklace, snow background, jewelry, red lips, long hair, looking at viewer, necklace, realistic, solo, upper body, white headwear.

image.png

Visualize a video that brings to life the exquisite journey of cooking chicken in a hot pan. The scene opens with a sizzling sound as pieces of carefully seasoned chicken touch the surface of a pre-heated, gleaming pan. The golden hues of olive oil around the edges of the meat, encapsulating it in a cocoon of heat. As the chicken begins to cook, its color deepens to a rich, golden brown, its juices bubbling and steaming in the high heat.

image.png

The video depicts a view of the ocean with the focus on a jellyfish. It was captured at a close range, providing a detailed view of the jellyfish's beauty. The jellyfish swims gracefully in the water, creating a mesmerizing sight. The video is of high quality and provides a clear and detailed picture of the underwater scene.

image.png



数据预处理


视频分割

对于较长的视频分割,EasyAnimate使用PySceneDetect[https://github.com/Breakthrough/PySceneDetect]以识别视频内的场景变化并基于这些转换,根据一定的门限值来执行场景剪切,以确保视频片段的主题一致性。切割后,我们只保留长度在3到10秒之间的片段用于模型训练。


视频清洗与描述


参考SVD的数据准备流程,EasyAnimate提供了一条简单但有效的数据处理链路来进行高质量的数据筛选与打标。并且支持了分布式处理来提升数据预处理的速度,其整体流程如下:

image.png

  • 时长过滤:统计视频基本信息,来过滤时间短/分辨率低的低质量视频
  • 美学过滤:通过计算视频均匀4帧的美学得分均值,来过滤内容较差的视频(模糊、昏暗等)
  • 文本过滤:通过easyocr计算中间帧的文本占比,来过滤文本占比过大的视频
  • 运动过滤:计算帧间光流差异来过滤运动过慢或过快的视频。
  • 文本描述:通过videochat2[https://github.com/OpenGVLab/Ask-Anything]和vila[https://github.com/NVlabs/VILA]对视频帧进行recaption。PAI也在自研质量更高的视频recaption模型,将在第一时间放出供大家使用。


模型结构


EasyAnimate使用了PixArt-alpha[https://github.com/PixArt-alpha/PixArt-alpha]作为基础模型进行开发,并在此基础上修改了VAE和DiT的模型结构来更好地支持视频的生成。EasyAnimate的整体结构如下:


image.png


为了引入特征点在时间轴上的特征信息,EasyAnimate引入了运动模块(Motion  Module),以实现从2D图像到3D视频的扩展。为了更好的生成效果,其联合图片和视频将Backbone连同Motion  Module一起Finetune。在一个Pipeline中即实现了图片的生成,也实现了视频的生成。


另外,参考U-ViT,其将跳连接结构引入到EasyAnimate当中,通过引入浅层特征进一步优化深层特征,并且0初始化了一个全连接层给每一个跳连接结构,使其可以作为一个可插入模块应用到之前已经训练的还不错的DIT中。


同时,其提出了Slice VAE,用于解决MagViT在面对长、大视频时编解码上的显存困难,同时相比于MagViT在视频编解码阶段进行了时间维度更大的压缩。


我们将在下面的部分对所使用的视频VAE,视频Diffusuion Transformer进行简单介绍,更多算法细节可查看技术报告[https://arxiv.org/abs/2405.18991]


视频VAE

image.png

视频VAE的一个著名例子是MagViT[https://magvit.cs.cmu.edu/],大家均认为其被用于Sora框架。EasyAnimateV2版本采用MagViT进行探索研究。MagViT采用Casual 3D Conv。在使用普通3D Conv之前,该块在时间轴前引入填充,从而确保每一帧可以利用它先前的信息来增强因果关系,同时不考虑到后帧的影响。另外MagViT还允许模型同时处理图像和视频。尽管它在视频编码和解码方面很优雅,但在超长视频序列上进行训练时,它仍面临挑战,这主要是GPU VRAM的限制。当视频增大时,MagViT所需的内存往往甚至超过A100 GPU的可用内存,这使得对大视频(例如1024x1024x40)进行一步解码变得不可行。这个挑战突出了分批处理的必要性,它有助于增量解码,而不是试图一步解码整个序列。


对于分批处理,其首先在空间维度上(宽度和高度上)试验切片机制。然而,这可能导致一个视频不同块上有不一致的光照。因此,其转向沿时间维度(时间上)进行切片。通过这种方法,一组视频帧被分为几个部分,每个部分都被单独编码和解码,如图所示。但由于MagViT的独特机制,3D Conv前需要进行前向填充,对应的潜在latent中,每个部分的第一个latent由于填充特征仅包含较少的信息。这种不均匀的信息分布是一个可能阻碍模型优化的方面此外,MagViT使用这种批处理策略还影响处理过程中视频的压缩率。


总结上述的结果,MagViT在处理极长视频序列的训练过程中面临挑战,对于一些大且长的视频序列,直接对完整视频序列编解码的编解码显存开销极大,因此需要用到批处理来进行改善。基于此,EasyAnimate  引入了一种切片机制到MagViT中,提出了Slice VAE,该VAE在面临不同输入时使用不同的处理策略,当输入的是视频帧时,则在高宽与时间轴上进行压缩当输入为512x512x8的视频帧时,将其压缩为64x64x2的潜在latent当输入的是图片时,则仅仅在高宽上进行压缩,当输入为512x512的图片时,将其压缩为64x64x1的潜在latent。所提出的Slice  VAE的架构如上图所示。为了进一步提高解码的性能,EasyAnimate  在时间维度进行切片并引入了特征共享机制,从而获得时空更一致的特征,并在时间维度实现更高的压缩率。通过这种方式,编码的特征封装了时间信息,从而节省了计算资源,并同时提高了生成结果的质量。


参考Stable   Diffusion,EasyAnimate分两阶段训练了所提出的VAE,在第一阶段共同训练视频的编码器和解码器,在第二阶段仅对解码器进行微调来更好地提升解码视频的效果。Slice  VAE的与相关Diffusion Transformer权重会在近期开源。


视频Diffusion Transformer

image.png

在图像DiT的基础上,EasyAnimate首先引入了Motion  Module 在时序维度上引入注意力机制来让模型学习时序信息,以进行连续视频帧的生成。同时,利用额外的网格计算(Grid  Reshape),来扩大注意力机制的input  token数目,从而更多地利用图像的空间信息以达到更好的生成效果。运动模块专门设计用于嵌入时间信息。通过在时间维度上集成注意力机制,该模型获得了时间轴上的先验知识,这对生成视频运动至关重要。


另外,由于观察到深层DIT的训练经常是不稳定的,模型的损失有时候会从0.05急剧增加到0.2,最终增加到1.0。为了加强模型优化过程,避免DIT层反向传播过程中的梯度坍塌,EasyAnimate在训练过程中引入了U-VIT,在相应的Transform  Block之间使用了跳连接,这种基于UNet的框架对于Stable Diffusion模型来说是有效的。为了将这种修改无缝集成到现有的扩散变换器架构中,而无需进行全面的再训练,EasyAnimate初始化了几个具有零填充权重的完全连接层,如上图(c)中的灰色块。


训练过程


EasyAnimate的DiT模型训练分为三阶段。

image.png

首先,在图像数据上训练DiT模型来快速适应新训练的VAE模型。


其次,融合了大量的图像和视频数据集来训练motion module模块,将DiT模型从图像生成迁移到视频生成上来。仅训练motion module的条件下,模型能够生成微动的视频,但生成的画面质量和运动范围有限。


因此,在最后一个阶段,用进一步筛选后的高质量数据集对整个DiT模型进行微调来达到更好的模型效果。


首先训练256x256x144的视频模型,然后扩展到512x512x144的视频模型,最后扩展到768x768x144的视频模型。


可扩展性


EasyAnimate不仅支持整个模型的基线训练,同时支持Lora训练,具有良好的可扩展性。


以Lora训练为例,其可以支持使用视频数据或者图片数据对Backbone进行Lora训练,以引入期望运动的信息。EasyAnimate提供了一个Minimalism极简主义图片数据集,其中的demo图像如下所示:

image.png


参考Training-Lora-Wiki[https://github.com/aigc-apps/EasyAnimate/wiki/Training-Lora],完成Lora模型的微调后,可以进入页面中选择对应的Lora模型进行预测。


image.png


如下为该数据集训练的Lora模型对应的生成结果:

image.png

联系我们



参考文档


相关文章
|
数据安全/隐私保护 开发者 异构计算
阿里巴巴开源可控视频生成框架VideoComposer!(内含体验、推理实践干货)
8月16日,时间、空间可控的视频生成模型 VideoComposer 在魔搭社区开源。
阿里巴巴开源可控视频生成框架VideoComposer!(内含体验、推理实践干货)
|
安全 JavaScript 前端开发
JDK1.8的重要的新特性与功能
Java Development Kit (JDK) 1.8,也称为Java 8,是Java平台的一个重大更新,于2014年3月发布。它引入了多项新特性、新的API和性能提升
1310 3
|
5月前
|
人工智能 API
阿里巴巴发布开源视频编辑全功能模型Wan2.1-VACE,视频创作迎来"全能选手"!
阿里巴巴发布的开源模型Wan2.1-VACE,作为“万相2.1”系列成员,是业内首个视频生成与编辑统一解决方案。该多合一AI模型支持文本、图像和视频的多模态输入,提供视频生成、局部编辑、画面延展等功能,大幅提升创作效率。借助创新技术如“视频条件单元”和“上下文适配”,Wan2.1-VACE可广泛应用于短视频制作、广告营销等领域。模型已上线Hugging Face等平台,免费下载使用,助力AI普惠。
910 0
|
3月前
|
存储 人工智能 自然语言处理
告别文字乱码!全新文生图模型Qwen-Image来咯
通义千问团队开源了Qwen-Image,一个20B参数的MMDiT模型,具备卓越的文本渲染和图像编辑能力。支持复杂中英文文本生成与自动布局,适用于多场景图像生成与编辑任务,已在魔搭社区与Hugging Face开源。
682 2
|
数据采集 机器学习/深度学习 编解码
视频生成框架EasyAnimate正式开源!
EasyAnimate是人工智能平台PAI自主研发的DiT-based视频生成框架,它提供了完整的高清长视频生成解决方案,包括视频数据预处理、VAE训练、DiT训练、模型推理和模型评测等。可以使用EasyAnimate进行任意风格视频模型的训练和推理,还可以在预训练模型的基础上,通过少量图片的LoRA微调来改变生成视频的风格。
|
8月前
|
机器学习/深度学习 人工智能 数据可视化
1.4K star!几分钟搞定AI视频创作,这个开源神器让故事可视化如此简单!
story-flicks 是一个基于AI技术的自动化视频生成工具,能够将文字剧本快速转化为高质量短视频。开发者@alecm20通过深度学习算法,实现了从文本解析到视频合成的全流程自动化处理,支持多平台适配输出,是内容创作者和自媒体运营者的效率神器。
413 0
|
安全 Windows 编解码
怎么设置服务器禁止被ping
怎么设置服务器禁止被ping 如何禁止服务器被ping--怎么设置:频繁地使用Ping命令会导致网络堵塞、降低传输效率,为了避免恶意的网络攻击,一般都会拒绝用户Ping服务器。为实现这一目的,不仅可以在防火墙中进行设置,也可以在路由器上进行设置,并且还可以利用Windows2000/2003系统自身的功能实现。
6277 0
|
11月前
|
监控 数据可视化 关系型数据库
Dify: 一款宝藏大模型开发平台: 部署及基础使用
Dify 是一款开源的大语言模型(LLM)应用开发平台,融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使非技术人员也能参与 AI 应用的定义和数据运营。计算巢提供了 Dify 的快速部署解决方案,包括单机版和高可用版,支持通过 Docker Compose 和阿里云 ACK 部署,适用于开发测试和生产环境。用户可以通过配置 API、WebApp 脚手架等轻松集成 Dify 到业务中,极大简化了大语言模型应用的开发流程。
6380 22
Dify: 一款宝藏大模型开发平台:  部署及基础使用
|
Android开发 计算机视觉 C++
FFmpeg开发笔记(五十一)适合学习研究的几个音视频开源框架
音视频编程对许多程序员来说是一片充满挑战的领域,但借助如OpenCV、LearnOpenGL、FFmpeg、OBS Studio及VLC media player等强大的开源工具,可以降低入门门槛。这些框架不仅覆盖了计算机视觉、图形渲染,还包括多媒体处理与直播技术,通过多种编程语言如Python、C++的应用,使得音视频开发更为便捷。例如,OpenCV支持跨平台的视觉应用开发,FFmpeg则擅长多媒体文件的处理与转换,而VLC media player则是验证音视频文件质量的有效工具。
473 0
FFmpeg开发笔记(五十一)适合学习研究的几个音视频开源框架
|
自然语言处理 JavaScript 开发者
通义灵码插件:VSCode 的智能编程助手
通义灵码插件:VSCode 的智能编程助手
8270 4