Ideas around T2I2V models
导言
理解当下最流行的多模态模型(e.g., 生成text2image, text2video,理解image2text,video2text)
排行榜: Vbench
- 当前主流的多模态生成模型(如图像生成和视频生成)主要采用Latent Stable Diffusion的方案框架。为了减少计算量,图像/视频等模态的数据(噪声)先经过VAE压缩得到Latent Vector,然后在文本信息的指导下进行去噪,最后生成符合预期的图像或视频。
- 当前主流的多模态理解模型一般采用视觉编码器 + 模态对齐 + LLM的算法流程,充分复用已有视觉编码器的理解能力和LLM的基础能力。训练过程一般分为多个阶段,如先进行模态对齐的一阶段预训练,然后进行二阶段的参数微调。
2013 VAE¶
- VAE(Variational Autoencoder,变分自编码器)是一种生成模型,结合了概率图模型和深度学习,主要用于学习数据的潜在表示并生成新数据。
- VAE属于概率生成模型(Probabilistic Generative Model),神经网络仅是其中的一个组件,依照功能的不同又可分为编码器和解码器。
- 编码器可将输入变量映射到与变分分布的参数相对应的潜空间(Latent Space),这样便可以产生多个遵循同一分布的不同样本。
- 解码器的功能基本相反,是从潜空间映射回输入空间,以生成数据点。
- 影响:变分自编码器(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¶
- Learning Transferable Visual Models From Natural Language Supervision 是OpenAI提出的用于生成文字embedding的方法
- 目的:借助带文字标签的图片数据集,来学习文字图片间的联系
- 原理图例:
6
2022 Stable Diffusion¶
理解原理
- High-Resolution Image Synthesis with Latent Diffusion Models 是Stable Diffusion开源出来的方法。
- 目的:在Diffusion模型的基础上,使用类似CLIP的text encoder来实现 text to image
- 改进点:
- 原理图例:
6
- 详细:
2023 DiTs¶
- 使用Transformers替换扩散模型中U-Net主干网络,发现不仅速度更快,在许多任务上效果也更好。
- 影响:扩散模型架构中U-Net并非不可替代,并且很容易使用诸如Transformers的结构替代U-Net
2023 SDXL¶
- SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis , 人如其名是SD的改进版
- 内容:
- 在原本的扩散模型后加Refiner模型(也是扩散模型), 参数量达到2.6B(10GB左右)
在Latent特征进行小噪声去除和细节质量提升。7
- 在原本的扩散模型后加Refiner模型(也是扩散模型), 参数量达到2.6B(10GB左右)
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,
技术要点:
- Self-Attention:文本信息注入的方式,DiT模型在最初引入文本时,通常使用Cross Attention的方法结合文本信息,如Pixart-α、hunyuan DiT等。Stable Diffusion 3通过Self-Attention引入文本信息。相比于Cross Attention,使用Self-Attention引入文本信息不仅节省了Cross Attention的参数量,还节省了Cross Attention的计算量。9
- 引入了RMS-Norm,在每一个attention运算之前,对Q和K进行了RMS-Norm归一化,用于增强模型训练的稳定性。
- 同时使用了更大的VQGAN,VQGAN压缩得到的特征维度从原来的4维提升到16维等。
MMDiT¶
关键核心是新的多模态扩散 Transformer(Multimodal Diffusion Transformer,MMDiT)架构。
- MMDiT 架构结合了 DiT 和矩形流(RF)形式。它使用两个独立的变换器来处理文本和图像嵌入,并在注意力操作中结合两种模态的序列。这意味着对于文本和图像两种不同的输入模态,MMDiT 分别使用不同的权重参数来进行编码和处理,以此能够更好地捕捉每种模态的特征和信息。
2404 EasyAnimate 12B¶
EasyAnimate是阿里云人工智能平台PAI自主研发的DiT-based视频生成框架。13
- 更新到v5.1版本,应用Qwen2 VL作为文本编码器,支持多语言预测,使用Flow作为采样方式,除去常见控制如Canny、Pose外,还支持轨迹控制,相机控制等。[ 2025.01.21 ]
- 使用奖励反向传播来训练Lora并优化视频,使其更好地符合人类偏好,详细信息请参见此处。EasyAnimateV5-7b现已发布。[ 2024.11.27 ]
- 更新到v5版本,最大支持1024x1024,49帧, 6s, 8fps视频生成,拓展模型规模到12B,应用MMDIT结构,支持不同输入的控制模型,支持中文与英文双语预测。[ 2024.11.08 ]
- 更新到v4版本,最大支持1024x1024,144帧, 6s, 24fps视频生成,支持文、图、视频生视频,单个模型可支持512到1280任意分辨率,支持中文与英文双语预测。[ 2024.08.15 ]
- 更新到v3版本,最大支持960x960,144帧,6s, 24fps视频生成,支持文与图生视频模型。[ 2024.07.01 ]
- 更新到v2版本,最大支持768x768,144帧,6s, 24fps视频生成。[ 2024.05.26 ]
以下是EasyAnimate各版本更新的Markdown表格整理,综合公开资料与官方技术报告:
版本 | 发布时间 | 核心功能升级 | 技术特性 | 分辨率与帧率 |
---|---|---|---|---|
v2 | 2024.05.26 | 文生视频 | - 采用DiT基础架构 - 初步实现文本到视频生成 |
最大768×768@24fps (144帧/6秒) |
v3 | 2024.07.01 | 新增图生视频功能 支持双图起止画面控制 |
- 引入Hybrid Motion Module - 集成Slice VAE时间轴压缩技术 - 支持CLIP图像编码器 |
最大960×960@24fps (144帧/6秒) |
v4 | 2024.08.15 | 支持视频生视频 动态分辨率适配 |
- 跨模态特征融合优化 | 最大1024×1024@24fps (144帧/6秒) |
v5 | 2024.11.08 | 中英双语支持 多模态控制模型 |
- 采用MMDIT架构 - 模型参数扩展至12B - 集成7种控制信号(OpenPose/Canny等) |
1024×1024@8fps (49帧/6秒) |
v5.1 | 2025.01.21 | 轨迹与相机控制 多语言预测优化 |
- Qwen2-VL作为文本编码器 - Flow采样方式改进 - 奖励反向传播训练机制 |
动态分辨率支持 |
关键技术演进路径¶
-
架构升级
v2-v3实现从基础DiT到时空混合运动模块的跨越,通过奇数层全局注意力与偶数层时序注意力的交替堆叠,解决视频连贯性问题;v5引入MMDIT架构,为不同模态设计独立映射网络,实现多模态特征高效对齐。 -
生成能力突破
通过Slice VAE技术实现时序压缩率1/4,使v4支持动态分辨率;v5的12B参数模型结合7种控制信号,可生成带精确构图引导的工业级视频。 -
交互方式创新
v3首创双图起止画面控制,v5.1新增轨迹/相机控制,支持通过运动路径曲线和镜头参数调整视频运镜效果[用户提供信息]。
该框架现已在PAI平台实现一键式训练部署,最新版支持通过LoRA微调实现风格迁移。具体技术细节可参考官方技术报告与GitHub仓库。
V2 V3¶
基于MagViT的Slice VAE¶
- 已有工作:
- 在Stable Dif fusion使用VAE实现将每个视频帧编码为单独的潜在特征,从而将帧的空间维度显著缩小到宽度和高度的八分之一。但这种编码技术忽略了时间信息,将视频降级为静态图像表示。
- MagViT在时间轴上引入了一种前置时间填充方式,从而确保帧利用先前信息增强时间因果关系,同时不受后续帧的影响。但在极长视频序列的训练中面临挑战,
- 先前的研究(Blattmann)表明,将图像整合到视频训练流程中可以更有效地优化模型架构,从而改进其文本对齐并提高输出质量。
- 挑战:
- 基于图像的VAE无法在时间维度上进行压缩;
- 传统的视频 VAE(Variational Autoencoder)在将视频帧编码为潜变特征时,需要大量的计算资源,尤其是当视频的时间长度增加时,GPU 内存的需求会迅速增加。这限制了模型处理长视频的能力,因为在有限的内存中无法同时加载和处理所有帧。
- 改进思路:
- Slice VAE 采用了一种分批处理的方法,即在时间轴上对视频进行切片(slice)。通过这种方式,长视频被分割成多个较短的段落,每个段落可以独立编码和解码,从而显著减少了单次处理所需的内存。这使得模型能够在有限的内存资源下处理更长时间的视频。
- 切片策略不仅减少了内存使用,还允许在解码过程中跨批次共享特征,这有助于保持视频帧之间的一致性,并提高了解码后视频的质量。
- 此外,Slice VAE 能够适应不同的帧计数和分辨率,使得模型更加灵活,能够适应各种视频生成需求。
DiT¶
- Motion Module运动模块:运动模块专门设计用于嵌入时间信息。通过在时间维度上集成注意力机制,该模型获得了时间轴上的先验知识,这对生成视频运动至关重要。
- U-VIT:在 DiT 的训练过程中使用长跳跃连接(long-skip connections)旨在提高模型训练的稳定性。
多阶段训练¶
首先训练视频VAE,然后使用三阶段粗到细训练策略将DiT模型适应于新的VAE。(使用大约1200万个图像和视频数据来训练视频VAE模型和DiT模型)
- VAE
- 根据MagViT策略训练出初始权重,然后分两个阶段训练切片VAE:
- 首先,我们在200k步内使用Adam优化器,β=(0.5,0.9),批量大小=96,学习率为1e-4训练整个VAE。
- 接下来,参考Stable Diffusion的程序,在100k步的第二阶段训练解码器,以更好地提高解码视频的保真度。
- DiT训练思路:从较低分辨率到较高分辨率逐步训练的。
- 最初,在引入新的视频VAE时,我们开始将DiT参数与该VAE对齐,此时仅使用图像数据。
- 随后,我们使用大规模视频数据集和图像数据来预训练运动模块(Motion Module),从而引入DiT的视频生成能力。在此处,我们引入了数据集分桶策略用于以不同的视频分辨率进行训练。
- 最后,我们使用高质量的视频数据来完善整个DiT模型,以增强其生成性能。
V5¶
数据规模:在大约10m SAM图片数据+26m 图片视频混合的预训练数据上进行了从0开始训练。11
对比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。
添加控制信号¶
使用控制信号替代了原本的mask信号,将控制信号使用VAE编码后作为Guidance与latent一起进入patch流程。该方案已经在CogVideoX-FUN的实践中证实有效。
我们在26m的预训练数据中进行了筛选,选择出大约443k高质量视频,同时使用不同的处理方式包含OpenPose、Scribble、Canny、Anime、MLSD、Hed和Depth进行控制条件的提取,作为condition控制信号进行训练。
工作原理图如下:
参考图添加Noise¶
在CogVideoX-FUN的实践中我们已经发现,在视频生成中,在视频中添加噪声对视频的生成结果有非常大的影响。参考CogVideoX和SVD,在非0的参考图向上添加Noise以破环原图,追求更大的运动幅度。
Pipeline结构如下:
提示词
另外,提示词对生成结果影响较大,请尽量描写动作以增加动态性。如果不知道怎么写正向提示词,可以使用smooth motion or in the wind来增加动态性。并且尽量避免在负向提示词中出现motion等表示动态的词汇。
基于Token长度的训练¶
EasyAnimateV5的训练分为多个阶段,除了图片Adapt VAE的阶段外,其它阶段均为视频训练,分别对应了不同的Token长度。
-
图片VAE的对齐: 我们使用了10M的SAM进行模型从0开始的文本图片对齐的训练,总共训练约120K步。在训练完成后,模型已经有能力根据提示词去生成对应的图片,并且图片中的目标基本符合提示词描述。
-
视频训练:
视频训练则根据不同Token长度,对视频进行缩放后进行训练。
视频训练分为多个阶段,每个阶段的Token长度分别是3328(对应256x256x49的视频),13312(对应512x512x49的视频),53248(对应1024x1024x49的视频)。
阶段 | Token长度 | 对应视频分辨率 | 数据量 | 用途 | Batch size | 训练步数 |
---|---|---|---|---|---|---|
3328 | 3328 | 256x256x49 | 26.6M | 文生视频 | 1536 | 66.5k |
13312 | 13312 | 512x512x49 | 17.9M | 文生视频 | 768 | 30k |
13312 | 13312 | 512x512x49 | 0.5M | 图生视频 | 384 | 5k |
53248 | 53248 | 1024x1024x49 | 0.5M | 图生视频 | 196 | 5k |
不同阶段通过合并训练目标和数据质量实现分辨率升级:
- 3328阶段:全量数据基础训练
- 13312阶段:高质量数据精调 + 图文对齐训练
- 53248阶段:最高质量数据超分训练
训练时我们采用高低分辨率结合训练,因此模型支持从512到1280任意分辨率的视频生成。
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进行数值的矫正再进行全链接,这样有利于网络的收敛。
奖励算法最终优化性能¶
请看RHLF一文
使用Flow-matching作为采样方式;¶
除了上述的架构变化之外,EasyAnimateV5.1还应用Flow-matching的方案来训练模型。在这种方法中,前向噪声过程被定义为在直线上连接数据和噪声分布的整流。Flow-matching采样过程更简单,在减少采样步骤数时表现良好。
其他¶
- 支持轨迹控制,相机控制等新控制方式;10
- 使用更多数据训练。
2407 InterlVL2 76B¶
这是理解模型,不是生成模型
Vision-Language Models (VLMs)
上海人工智能实验室(上海AI实验室)联合清华大学、香港中文大学、商汤科技等机构开源新一代书生·视觉大模型(InternVL)。性能和Qwen属于同一水平。
2408 Qwen2 VL 72B¶
这是理解模型,不是生成模型
- 亮点:能处理各种分辨率和长宽比
- 技术要点:
- 引入了naive dynamic resolution技术,支持灵活处理不同分辨率的输入图像和视频
- 创新性地提出了多模态旋转位置编码(M-RoPE),这有助于实现更高效的跨模态信息融合,从而增强了模型对于文本和视觉数据的理解能力
- 构建了一个统一的图像和视频理解框架,其中图像被视作两个相同的帧来处理,以维持与视频处理逻辑的一致性
- 并采用3D tubes替代传统的2D patches方法,进一步提升了对长时间序列视觉内容的理解深度
2408 CogVideoX 5B¶
2024年8月,智谱开源视频生成模型CogVideoX,先是2B模型,而后是5B模型,近期还开源了V1.5的模型:
技术特点:
- 自主研发了一套高效的三维变分自编码器结构(3D VAE)。降低了视频扩散生成模型的训练成本和难度。结合 3D RoPE 位置编码模块,该技术提升了在时间维度上对帧间关系的捕捉能力,从而建立了视频中的长期依赖关系。
- 拓展视频模型规模到5B,提升了模型的理解能力,使得模型能够处理超长且复杂的 prompt 指令。
- 模型与Stable Diffusion 3一致,将文本、时间、空间融合在一起,通过 Full Attention 机制优化模态间的交互效果。
多阶段训练¶
- 低分辨率到高分辨率训练
- 高质量数据微调
2412 HunyuanVideo 13B¶
HunyuanVideo 是一个隐空间模型,训练时它采用了 3D VAE 压缩时间维度和空间维度的特征。文本提示通过一个大语言模型编码后作为条件输入模型,引导模型通过对高斯噪声的多步去噪,输出一个视频的隐空间表示。最后,推理时通过 3D VAE 解码器将隐空间表示解码为视频。12
统一的图视频生成架构¶
HunyuanVideo 采用了 Transformer 和 Full Attention 的设计用于视频生成。具体来说,我们使用了一个“双流到单流”的混合模型设计用于视频生成。在双流阶段,视频和文本 token 通过并行的 Transformer Block 独立处理,使得每个模态可以学习适合自己的调制机制而不会相互干扰。在单流阶段,我们将视频和文本 token 连接起来并将它们输入到后续的 Transformer Block 中进行有效的多模态信息融合。这种设计捕捉了视觉和语义信息之间的复杂交互,增强了整体模型性能。
Flow Matching
Flow Matching框架来训练我们的图像和视频生成模型。Flow Matching通过对概率密度函数进行一系列变量变换,将复杂的概率分布转化为简单的概率分布,并通过逆变换生成新的数据样本。
MLLM 文本编码器¶
过去的视频生成模型通常使用预训练的 CLIP 和 T5-XXL 作为文本编码器,其中 CLIP 使用 Transformer Encoder,T5 使用 Encoder-Decoder 结构。HunyuanVideo 使用了一个预训练的 Multimodal Large Language Model (MLLM) 作为文本编码器,它具有以下优势:
- 与 T5 相比,MLLM 基于图文数据指令微调后在特征空间中具有更好的图像-文本对齐能力,这减轻了扩散模型中的图文对齐的难度;
- 与 CLIP 相比,MLLM 在图像的细节描述和复杂推理方面表现出更强的能力;
- MLLM 可以通过遵循系统指令实现零样本生成,帮助文本特征更多地关注关键信息。
由于 MLLM 是基于 Causal Attention 的,而 T5-XXL 使用了 Bidirectional Attention 为扩散模型提供更好的文本引导。因此,我们引入了一个额外的 token 优化器来增强文本特征。
3D VAE¶
我们的 VAE 采用了 CausalConv3D 作为 HunyuanVideo 的编码器和解码器,用于压缩视频的时间维度和空间维度,其中时间维度压缩 4 倍,空间维度压缩 8 倍,压缩为 16 channels。这样可以显著减少后续 Transformer 模型的 token 数量,使我们能够在原始分辨率和帧率下训练视频生成模型。
Prompt 改写¶
为了解决用户输入文本提示的多样性和不一致性的困难,我们微调了 Hunyuan-Large model 模型作为我们的 prompt 改写模型,将用户输入的提示词改写为更适合模型偏好的写法。
我们提供了两个改写模式:正常模式和导演模式。两种模式的提示词见这里。正常模式旨在增强视频生成模型对用户意图的理解,从而更准确地解释提供的指令。导演模式增强了诸如构图、光照和摄像机移动等方面的描述,倾向于生成视觉质量更高的视频。注意,这种增强有时可能会导致一些语义细节的丢失。
Prompt 改写模型可以直接使用 Hunyuan-Large 部署和推理. 我们开源了 prompt 改写模型的权重,见这里.
2502 Step-Video-T2V 30B¶
4大技术特点:
- 第一,当前最大参数30 billion开源视频生成模型,可直接生成最长204帧、540P分辨率的视频,确保生成的视频内容具有极高的一致性和信息密度。
- 第二,针对视频生成任务设计并训练了高压缩比的Video-VAE,在保证视频重构质量的前提下,能够将视频在空间维度压缩16×16倍,时间维度压缩8倍。
- 当下市面上多数VAE模型压缩比为8x8x4,在相同视频帧数下,Video-VAE能额外压缩8倍,故而训练和生成效率都提升64倍。
- 第三,针对DiT模型的超参设置、模型结构和训练效率,Step-Video-T2V了进行深入的系统优化,确保训练过程的高效性和稳定性。
- 第四,详细介绍了预训练和后训练在内的完整训练策略,包括各阶段的训练任务、学习目标以及数据构建和筛选方式。
- 此外,Step-Video-T2V在训练最后阶段引入Video-DPO(视频偏好优化)——这是一种针对视频生成的RL优化算法,能进一步提升视频生成质量,强化生成视频的合理性和稳定性。
训练系统相关细节请看AI Training System 一文。
计算压缩比
根据论文中提到的时空下采样因子和通道数变化,压缩比1:96的计算过程如下:
假设原始视频分辨率为\(T \times H \times W\)(时间×高度×宽度),每个像素有3个RGB通道。
总数据量为:
$$ \text{原始数据量} = T \times H \times W \times 3 $$
VAE通过时空下采样因子(如\(8 \times 8 \times 8\))压缩视频:
- 时间维度:压缩为\(T/8\)
- 空间维度:压缩为\(H/8 \times W/8\)
- 通道数:从3通道映射到16通道。
潜在表示的数据量为:
$$ \text{潜在数据量} = \frac{T}{8} \times \frac{H}{8} \times \frac{W}{8} \times 16 $$
压缩比为原始数据量与潜在数据量的比值:
$$
\text{压缩比} = \frac{T \times H \times W \times 3}{\frac{T}{8} \times \frac{H}{8} \times \frac{W}{8} \times 16} = \frac{3}{16} \times 8 \times 8 \times 8 = 96
$$
即 1:96,表示潜在空间数据量是原始数据的\(1/96\)。
压缩比公式:
$$
\text{压缩比} = \left( \text{时间因子} \times \text{高度因子} \times \text{宽度因子} \right) \times \frac{\text{原始通道数}}{\text{潜在通道数}}
$$
当使用\(8 \times 8 \times 8\)下采样时,结果为\(96:1\)。
VideoVAE(没懂公式)¶
基础:文本到视频扩散-Transformer模型的效率依赖于潜在空间压缩能力。由于注意力计算成本与token数量的平方成正比,通过高效压缩减少时空冗余至关重要——既能加速训练/推理,又符合扩散过程对紧凑表示的天然偏好。
Video-VAE在编码器后期和解码器初期引入双路径架构,通过统一时空压缩实现8×16×16下采样:
- 因果3D卷积模块:
- 编码器前期包含3个阶段,每阶段含两个Causal Res3DBlock和下采样层,后接融合卷积与注意力的MidBlock。
- 采用时间因果3D卷积(公式1):当前帧仅依赖历史帧,实现因果性建模,支持图像与视频联合训练。
- 双路径潜在融合:
- Conv路径:结合因果3D卷积与像素重排(公式2),保留高频细节。
- Shortcut路径:通过分组通道平均(公式3)保留低频结构。
- 输出融合:残差求和(公式4)平衡两类信息,解决传统VAE模糊问题。
多阶段训练¶
- textto-image (T2I) pre-training,
- 我们有意避免直接进行文本到视频(T2V)预训练,
- 因为早期实验表明:当在40亿参数模型上尝试从头开始T2V预训练时,模型对新概念的学习能力显著下降且收敛速度大幅减缓。
- 通过先进行T2I预训练,模型可以建立对视觉概念的扎实理解,为后续处理视频时序动态奠定基础。
- text-to-video/image (T2VI) pre-training,模型进入T2VI联合训练阶段,同步进行文本到图像和文本到视频训练。该步骤进一步分为两个子阶段:
- 低分辨率预训练(192x320,192P):在此阶段使用低分辨率视频,使模型专注于运动模式的学习而非细节特征。我们观察到模型在此阶段主要获取运动知识。
- 高分辨率预训练(544x992,540P):提升视频分辨率后继续训练,促使模型学习更精细的视觉细节。实验显示此阶段模型学习重点转向细节捕捉。
- 基于以上发现,我们在步骤二的第1子阶段分配更多计算资源,以强化运动特征的获取能力。
- text-to-video (T2V) fine-tuning,
- 由于预训练视频数据在领域和质量的多样性,直接使用预训练模型生成视频时可能引入伪影和风格不一致的问题。
- 为缓解此类问题,通过T2V微调步骤进一步完善训练流程。在此阶段,我们使用少量文本-视频配对数据,并移除文本到图像(T2I)任务,使模型专注于文本到视频生成的适配优化。
- direct preference optimization (DPO) training.
supervisied fine-tuning
发现:
- 对基于不同监督微调(SFT)数据集微调的模型进行权重平均(Model Averaging),可显著提升生成视频的质量与稳定性,其效果优于指数移动平均(EMA)方法。
- 即使对同一数据源微调的多个检查点进行平均,也能增强稳定性并减少生成失真。
- 此外,我们选择梯度范数达到峰值后阶段的模型检查点(即梯度范数与损失均下降的阶段),以确保生成结果的稳定性提升。
训练数据集构建¶
通过一系列逐步提高阈值的过滤器:
- 为步骤二的T2VI预训练创建了六个预训练子集。
- 并最终通过人工筛选构建监督微调(SFT)数据集。
图中展示了每个阶段应用的关键过滤器:灰色条表示被过滤的数据,彩色条为保留数据。
蒸馏Turbo(没懂公式)¶
- 问题:传统扩散模型通过50-100步迭代求解ODE(Ordinary Differential Equation,常微分方程),逐步将随机噪声转化为视频帧(如Step-Video-T2V需50步生成204帧),导致生成1分钟视频需数十分钟计算。
- 关键:减少迭代(函数评估次数Number of Function Evaluations,NFE)对提升推理效率至关重要。
-
改进:通过自蒸馏(self-distillation)结合修正流目标(rectified flows)和专用推理策略,大规模训练的Video DiT模型可将NFE降至仅8步且性能几乎无损。具体实现如下:
-
修正流蒸馏框架
基模型(Base Model)通过修正流(rectified flow)训练,蒸馏目标则是训练2-修正流模型(Liu等,2022),以在推理时构造更直接的ODE路径。如Lee等(2024)所述,2-修正流的损失函数为:
[
L(\theta, t) := \frac{1}{t^2} \mathbb{E}\left[ |v - u_\theta(x_t, t)|_2^2 \right] = \frac{1}{t^2} \mathbb{E}\left[ |x - \mathbb{E}[x|x_t]|_2^2 \right] + \tilde{L}(\theta, t) \tag{10}
]
由于所有训练样本均由1-修正流基模型生成,不可约损失(第一项)较小,而可约误差(第二项)可通过加权困难时间步高效优化。具体而言,2-修正流的训练损失在时间区间\(t \in [0,1]\)两端较大、中间较小。
- 数据与训练策略
使用SFT数据提示的精选分布生成约95,000个样本(50 NFE),并通过设计的正/负提示构建蒸馏数据集。修改时间步采样策略为U型分布:
[
p_t(u) \propto \exp(a u) + \exp(-a u) \quad (u \in [0,1], a=5)
]
较大的\(a\)值适应视频模型对时间偏移的更高需求。推理时观察到,随着训练推进,模型需要更大的采样时间偏移和更低的分类器无关引导(CFG)规模。通过结合线性衰减的CFG调度(式11),我们的模型能以10倍更少步骤达到同等生成质量。图6展示了Turbo模型以10 NFE生成的204帧样本。
2502 Wan-Video¶
- 亮点:闭源版本重新成为vbench榜首模型
- 当前论文暂时没出来
- 来自阿里云
高效VAE¶
- wan-vae实现了参数量小情况下的,输出效率最高,图像质量也数一数二。
- PSNR全称为Peak Signal to Noise Ratio,即峰值信噪比,经常用于计算两幅图像的可视化误差,最小值为0,越大代表两张图片差异越小。
DiT¶
- Flow Matching
- 特殊:(待研究)
- time embeddings: an MLP with a Linear layer and a SiLU layer to process
- 单独训练权重?predict six modulation parameters individually. This MLP is shared across all transformer blocks, with each block learning a distinct set of biases
参考文献¶
https://arxiv.org/pdf/2405.18991
https://blog.csdn.net/weixin_48534929/article/details/139430996
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
-
https://blog.csdn.net/weixin_44791964/article/details/145310822 ↩
-
https://blog.csdn.net/weixin_44791964/article/details/145310822 ↩↩
-
https://blog.csdn.net/weixin_44791964/article/details/143660061 ↩
-
https://github.com/Tencent/HunyuanVideo/blob/main/README_zh.md ↩
-
https://www.51cto.com/aigc/1015.html ↩