跳转至

Idea to T2V model

导言

理解当下最流行的开源text to image, text to video模型。

排行榜: Vbench

2013 VAE

  • VAE(Variational Autoencoder,变分自编码器)是一种生成模型,结合了概率图模型和深度学习,主要用于学习数据的潜在表示并生成新数据。
  • VAE属于概率生成模型(Probabilistic Generative Model),神经网络仅是其中的一个组件,依照功能的不同又可分为编码器和解码器。
    • 编码器可将输入变量映射到与变分分布的参数相对应的潜空间(Latent Space),这样便可以产生多个遵循同一分布的不同样本。
    • 解码器的功能基本相反,是从潜空间映射回输入空间,以生成数据点。
  • 影响:变分自编码器(VAE)是一类常见的生成模型。纯VAE的生成效果不见得是最好的,但VAE还是经常会被用作大模型的子模块。

VAE

2014 对抗网络 GAN

  • generative adversarial network (GAN)是2014年提出的无监督训练方法1
  • 目的:给定一个训练集,学习生成与训练集具有相同统计数据的新数据。例如,在照片上训练的GAN可以生成新的照片,这些照片至少在人类观察者看来是真实的,具有许多真实的特征。
  • 网络结构:有两个网络,G(Generator)和D(Discriminator)功能分别是:3
    • G是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z)。
    • D是一个判别网络,判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,而输出为0,就代表不可能是真实的图片。
  • 核心思想:生成网络G的目标就是尽量生成真实的图片去欺骗判别网络D。而D的目标就是尽量把G生成的图片和真实的图片分别开来。这样,G和D构成了一个动态的“博弈过程”。 这意味着generator 没有被训练来最小化到特定图像的距离,而是欺骗了机器人。最理想的状态下,G可以生成足以“以假乱真”的图片G(z)。对于D来说,它难以判定G生成的图片究竟是不是真实的,因此D(G(z)) = 0.5
    • 换句话来说discriminator保存了generator网络训练出来的复杂loss函数2
  • 数学推导:基于概率论的两个网络的零和博弈(TODO)
  • 训练过程
    • 第一步训练D,D是希望V(G, D)越大越好,所以是加上梯度(ascending)。
    • 第二步训练G时,V(G, D)越小越好,所以是减去梯度(descending)。
    • 整个训练过程交替进行。
  • 推理过程:(猜测的)输入随机噪声,产生图片。
  • 拓展:DCGAN将CNN与GAN结合,把上述的G和D换成了两个卷积神经网络(CNN)
  • 缺点与局限性:Mode collapse(模式坍塌):generator 生成的图像都特别像。和训练的数据集太像了,导致几乎没有新亮点。
  • 原理图例

2015 简单图像分割 UNet

  • U-Net: Convolutional Networks for Biomedical Image Segmentation是最常用、最简单的一种分割模型了,它简单、高效、易懂、容易构建、可以从小数据集中训练。5
  • 目的:医疗影像语义分割任务
  • 网络结构:Unet网络非常的简单,前半部分就是特征提取,后半部分是上采样。在一些文献中把这种结构叫做编码器-解码器结构,由于网络的整体结构是一个大些的英文字母U,所以叫做U-net
    • Encoder:左半部分,由两个3x3的卷积层(RELU)再加上一个2x2的maxpooling层组成一个下采样的模块(后面代码可以看出);
    • Decoder:有半部分,由一个上采样的卷积层(去卷积层)+特征拼接concat+两个3x3的卷积层(ReLU)反复构成(代码中可以看出来);
  • 特点:对于图像语义较为简单、结构固定,并且数据量小的医疗图像,效果好
  • 原理图例

2020 扩散基础 DDPM

  • DDPM: Denoising Diffusion Probabilistic Models 提出了扩散模型
  • 核心思想
    • GAN也是生成图,但是两者原理完全不同;
    • GAN模型通过使得生成器拟合真实图片;
    • DDPM是拟合整个从真实图片到随机高斯噪声的过程,再通过反向过程生成新的图片。4
  • 特点:由于是一步步扩散出来的,可以看到演变的中间图过程。
  • 训练过程:
  • 原理图例:
  • 拓展:使用ResNet效果差,一般换成U-Net

2021 CLIP

2022 Stable Diffusion

理解原理

diffusion-explainer

  • High-Resolution Image Synthesis with Latent Diffusion Models 是Stable Diffusion开源出来的方法。
  • 目的:在Diffusion模型的基础上,使用类似CLIP的text encoder来实现 text to image
  • 改进点:
    • 如何引入多头Attention,来使得U-Net中文本与图像结合?
    • Diffusion的过程移动到被压缩后的图片上(latent space), 使得速度加快很多
  • 原理图例:6
  • 详细:

2023 DiTs

  • 使用Transformers替换扩散模型中U-Net主干网络,发现不仅速度更快,在许多任务上效果也更好。
  • 影响:扩散模型架构中U-Net并非不可替代,并且很容易使用诸如Transformers的结构替代U-Net

DiTs

2023 SDXL

  • SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis , 人如其名是SD的改进版
  • 内容:
    • 在原本的扩散模型后加Refiner模型(也是扩散模型), 参数量达到2.6B(10GB左右) 在Latent特征进行小噪声去除和细节质量提升。7
  • SDXL Stable Diffusion XL是Stable Diffusion的最新优化版本, 如果Stable Diffusion是图像生成领域的“YOLO”,那Stable Diffusion XL就是“YOLOv3”。
    • You Only Look Once (YOLO) 最流行的目标检测算法。
  • Huggingface: SDXL and SD Turbo

2402 SD3

  • 2024年2月发布了 Stable Diffusion 3,

技术要点:

  1. Self-Attention:文本信息注入的方式,DiT模型在最初引入文本时,通常使用Cross Attention的方法结合文本信息,如Pixart-α、hunyuan DiT等。Stable Diffusion 3通过Self-Attention引入文本信息。相比于Cross Attention,使用Self-Attention引入文本信息不仅节省了Cross Attention的参数量,还节省了Cross Attention的计算量。9
  2. 引入了RMS-Norm,在每一个attention运算之前,对Q和K进行了RMS-Norm归一化,用于增强模型训练的稳定性。
  3. 同时使用了更大的VQGAN,VQGAN压缩得到的特征维度从原来的4维提升到16维等。

MMDiT

关键核心是新的多模态扩散 Transformer(Multimodal Diffusion Transformer,MMDiT)架构。

  • MMDiT 架构结合了 DiT 和矩形流(RF)形式。它使用两个独立的变换器来处理文本和图像嵌入,并在注意力操作中结合两种模态的序列。这意味着对于文本和图像两种不同的输入模态,MMDiT 分别使用不同的权重参数来进行编码和处理,以此能够更好地捕捉每种模态的特征和信息。

MM-DiT

2408 Qwen2 VL

  • 亮点:能处理各种分辨率和长宽比
  • 技术要点:
    • 引入了naive dynamic resolution技术,支持灵活处理不同分辨率的输入图像和视频
    • 创新性地提出了多模态旋转位置编码(M-RoPE),这有助于实现更高效的跨模态信息融合,从而增强了模型对于文本和视觉数据的理解能力
    • 构建了一个统一的图像和视频理解框架,其中图像被视作两个相同的帧来处理,以维持与视频处理逻辑的一致性
    • 并采用3D tubes替代传统的2D patches方法,进一步提升了对长时间序列视觉内容的理解深度

2408 CogVideoX

2024年8月,智谱开源视频生成模型CogVideoX,先是2B模型,而后是5B模型,近期还开源了V1.5的模型:

技术特点:

  1. 自主研发了一套高效的三维变分自编码器结构(3D VAE)。降低了视频扩散生成模型的训练成本和难度。结合 3D RoPE 位置编码模块,该技术提升了在时间维度上对帧间关系的捕捉能力,从而建立了视频中的长期依赖关系。
  2. 拓展视频模型规模到5B,提升了模型的理解能力,使得模型能够处理超长且复杂的 prompt 指令。
  3. 模型与Stable Diffusion 3一致,将文本、时间、空间融合在一起,通过 Full Attention 机制优化模态间的交互效果。

2404 EasyAnimate

没有论文和大厂的支持背书,但是在可拓展性和易用性上做得不错。

  1. 更新到v5.1版本,应用Qwen2 VL作为文本编码器,支持多语言预测,使用Flow作为采样方式,除去常见控制如Canny、Pose外,还支持轨迹控制,相机控制等。[ 2025.01.21 ]
  2. 使用奖励反向传播来训练Lora并优化视频,使其更好地符合人类偏好,详细信息请参见此处。EasyAnimateV5-7b现已发布。[ 2024.11.27 ]
  3. 更新到v5版本,最大支持1024x1024,49帧, 6s, 8fps视频生成,拓展模型规模到12B,应用MMDIT结构,支持不同输入的控制模型,支持中文与英文双语预测。[ 2024.11.08 ]
  4. 更新到v4版本,最大支持1024x1024,144帧, 6s, 24fps视频生成,支持文、图、视频生视频,单个模型可支持512到1280任意分辨率,支持中文与英文双语预测。[ 2024.08.15 ]
  5. 更新到v3版本,最大支持960x960,144帧,6s, 24fps视频生成,支持文与图生视频模型。[ 2024.07.01 ]

V2 V3

https://blog.csdn.net/weixin_44791964/article/details/139223972?spm=1001.2014.3001.5502

https://blog.csdn.net/weixin_44791964/article/details/140025591?spm=1001.2014.3001.5502

V5

在EasyAnimateV5版本中,我们在大约10m SAM图片数据+26m 图片视频混合的预训练数据上进行了从0开始训练。与之前类似的是,EasyAnimateV5依然支持图片与视频预测与中文英文双语预测,同时支持文生视频、图生视频和视频生视频。11

参考CogVideoX,我们缩短了视频的总帧数并减少了视频的FPS以加快训练速度,最大支持FPS为8,总长度为49的视频生成。我们支持像素值从512x512x49、768x768x49、1024x1024x49与不同纵横比的视频生成。

对比EasyAnimateV4,EasyAnimateV5还突出了以下特点:

应用MMDIT结构,拓展模型规模到12B

参考Stable Diffusion 3和CogVideoX,在我们的模型中,我们将文本和视频嵌入连接起来以实现Self-Attention,从而更好地对齐视觉和语义信息。然而,这两种模态的特征空间之间存在显著差异,这可能导致它们的数值存在较大差异,这并不利于二者进行对齐。

为了解决这个问题,还是参考Stable Diffusion 3,我们采用MMDiT架构作为我们的基础模型,我们为每种模态实现了不同的to_k、to_q、to_v和前馈网络(FFN),并在一个Self-Attention中实现信息交互,以增强它们的对齐。

另外,为了提高模型的理解能力,我们将模型进行了放大,参考Flux,我们模型的总参数量扩展到了12B。

添加控制信号的EasyAnimateV5

在原本Inpaint模型的基础上,我们使用控制信号替代了原本的mask信号,将控制信号使用VAE编码后作为Guidance与latent一起进入patch流程。该方案已经在CogVideoX-FUN的实践中证实有效。

我们在26m的预训练数据中进行了筛选,选择出大约443k高质量视频,同时使用不同的处理方式包含OpenPose、Scribble、Canny、Anime、MLSD、Hed和Depth进行控制条件的提取,作为condition控制信号进行训练。

工作原理图如下:

参考图片添加Noise

在CogVideoX-FUN的实践中我们已经发现,在视频生成中,在视频中添加噪声对视频的生成结果有非常大的影响。参考CogVideoX和SVD,在非0的参考图向上添加Noise以破环原图,追求更大的运动幅度。

我们在模型中为参考图片添加了Noise。与CogVideoX一致,在进入VAE前,我们在均值为-3.0、标准差为0.5的正态分布中采样生成噪声幅度,并对其取指数,以确保噪声的幅度在合理范围内。

函数生成与输入视频相同形状的随机噪声,并根据已计算的噪声幅度进行缩放。噪声仅添加到有效值(不需要生成的像素帧上)上,随后与原图像叠加以得到加噪后的图像。

另外,提示词对生成结果影响较大,请尽量描写动作以增加动态性。如果不知道怎么写正向提示词,可以使用smooth motion or in the wind来增加动态性。并且尽量避免在负向提示词中出现motion等表示动态的词汇。

Pipeline结构如下:

基于Token长度的模型训练

EasyAnimateV5的训练分为多个阶段,除了图片Adapt VAE的阶段外,其它阶段均为视频训练,分别对应了不同的Token长度。

  1. 图片VAE的对齐: 我们使用了10M的SAM进行模型从0开始的文本图片对齐的训练,总共训练约120K步。在训练完成后,模型已经有能力根据提示词去生成对应的图片,并且图片中的目标基本符合提示词描述。

  2. 视频训练:

视频训练则根据不同Token长度,对视频进行缩放后进行训练。

视频训练分为多个阶段,每个阶段的Token长度分别是3328(对应256x256x49的视频),13312(对应512x512x49的视频),53248(对应1024x1024x49的视频)。

其中:

  1. 3328阶段: 使用了全部的数据(大约26.6M)训练文生视频模型,Batch size为1536,训练步数为66.5k。
  2. 13312阶段: 使用了720P以上的视频训练(大约17.9M)训练文生视频模型,Batch size为768,训练步数为30k; 使用了最高质量的视频训练(大约0.5M)训练图生视频模型 ,Batch size为384,训练步数为5k
  3. 53248阶段: 使用了最高质量的视频训练(大约0.5M)训练图生视频模型,Batch size为196,训练步数为5k。

训练时我们采用高低分辨率结合训练,因此模型支持从512到1280任意分辨率的视频生成,以13312 token长度为例:

  1. 在512x512分辨率下,视频帧数为49;
  2. 在768x768分辨率下,视频帧数为21;
  3. 在1024x1024分辨率下,视频帧数为9;

这些分辨率与对应长度混合训练,模型可以完成不同大小分辨率的视频生成。

EasyAnimateV5.1
  1. 这个多阶段训练具体是怎么实现的,为什么就能生成不同分辨率的视频?
  2. 原本Inpaint模型 是什么。

V5.1

对比EasyAnimateV5,EasyAnimateV5.1主要突出了以下特点:10

应用Qwen2 VL作为文本编码器,支持多语言预测;

在MMDiT结构的基础上,将EasyAnimateV5的双text encoders替换成alibaba近期发布的Qwen2 VL;相比于CLIP与T5这样的传统编码模型,使用LLM作为Text Encoder慢慢在生成领域里流行起来,比如最近大火的HunyuanVideo模型。

尽管LLM的主力工作是生成,但对文本的编码与理解能力依然优秀,Qwen2 VL是多模态LLM中性能的佼佼者,对语义理解更加精准。而相比于Qwen2本身,Qwen2 VL由于和图像做过对齐,对图像内容的理解更为精确。

通过取出Qwen2 VL hidden_states的倒数第二个特征输入到MMDiT中,与视频Embedding一起做Self-Attention。在做Self-Attention前,由于大语言模型深层特征值一般较大(可以达到几万),为其做了一个RMSNorm进行数值的矫正再进行全链接,这样有利于网络的收敛。

使用奖励算法最终优化性能;

为了进一步优化生成视频的质量以更好地对齐人类偏好,我们采用奖励反向传播(DRaFT 和 DRTune)对 EasyAnimateV5.1 基础模型进行后训练,使用奖励提升模型的文本一致性与画面的精细程度。

我们在EasyAnimate ComfyUI中详细说明了奖励反向传播的使用方案。我们实际使用了HPS v2.1和MPS两个模型对EasyAnimateV5.1进行奖励反向,两个模型都是人类偏好模型,作为反馈,调整后的EasyAnimateV5.1具有更好的文视频一致性,且画面更加精细。

如下三个视频,首个视频是没有使用奖励模型的生成效果,第二个视频是使用HPS作为奖励模型的生成效果,第三个视频是使用MPS作为奖励模型的生成效果。可以看到后面两个模型明显更为讨人喜欢。

使用Flow-matching作为采样方式;

除了上述的架构变化之外,EasyAnimateV5.1还应用Flow-matching的方案来训练模型。在这种方法中,前向噪声过程被定义为在直线上连接数据和噪声分布的整流。Flow-matching采样过程更简单,在减少采样步骤数时表现良好。

其他

  1. 支持轨迹控制,相机控制等新控制方式;10
  2. 使用更多数据训练。

参考文献

评论