目录
写在前面
一、VAE
二、Transformer
三、Classifier Free Guidance
四、总结
经常耍视频生成的小伙伴肯定发现了一个现象:同样是生成5s的视频,有的模型几十秒(比如即梦)就能完成,而有的却需要几分钟(比如可灵需要5分钟)。
那为什么生成速度差距这么大呢?要不,冲个VIP试试?.
我发现开源的LTXVideo(1.9B参数)和Wan2.1(1.3B参数)在RTX4090上推理时,生成5秒视频分别耗时37秒和260秒——这个速度表现恰好与未付费版的即梦和可灵一致。既然这两个模型规模相近,我们就来深入分析下为何它们的推理速度会相差近10倍。
先说结论,在同等规模的情况下,影响视频生成速度的最大因素是:压缩比!
压缩比是啥?这是个问题!
当下主流视频生成模型采用的是 分阶段训练 策略,即 先训练 VAE(变分自编码器),再训练 Transformer 部分,而非端到端联合训练。
数据压缩操作是VAE做的,Transformer 感觉压缩的数据执行推理。VAE压的越厉害,压缩比越高,执行速度也就越快。
VAE的训练目标是高效编码和解码视频帧,降低数据维度,同时保持高画质(在测试中,压缩至原始数据的 1/34 时仍保持 98.7% 画质)。
两个模型都使用 3D-VAE(三维变分自编码器)对视频数据进行时空分离压缩,将视频分解为空间(Spatial)和时间(Temporal)两个维度分别处理
LTXVideo和Wan2.1模型结构类似,都是下面这样:
图1
这里有一些重要的对比参数:
表1
重点来了,压缩比:
压缩操作:所谓的压缩操作时发生在VAE的编码阶段,解码阶段是将压缩后的数据在放大到指定分辨率。
空间下采样:以LTXVideo为例,将每帧的宽度和高度各缩小 32 倍,即从原始的 H×W 缩小到。
时间下采样×8:以LTXVideo为例,将帧数缩小 8 倍,即从原始的 T 帧缩小到 帧。
压缩比:VAE 的潜在空间使用了 128 个通道,而原始视频通常有 3 个通道(RGB)。因此压缩比的计算如下:
Wan2.1压缩比:
LTXVideo压缩比:
这意味着,经过 VAE 编码后,两个模型分别将视频数据的体积是原始数据的 1/48和1/192。LTXVideo的压缩比是Wan2.1的4倍。那么这个4倍的压缩比会带来多大的速度提升呢。
在 VAE 训练完成后,就是训练基于扩散的 Transformer 结构( DiT 架构)在潜在空间进行时空建模,学习视频的动态变化。VAE+DiT才是整个模型的完全体。
由于我们只讨论推理速度,所以直接跳过Transformer 的训练直接来到推理阶段,推理时并不会用到VAE的Encoder。
我们以生成宽x高x时长=832x480x5秒为例,去噪步数steps=50;Wan2.1的fps=16,那么模型的输出是[1, 3, 81, 480, 832];Wan2.1的fps=24,那么模型的输出是[1, 3, 121, 480, 832],
Wan2.1结构如下:
图2
LTXVideo结构如下:

图3
值得注意的是,图中只画了影响速度的一些模块,除此之外很多很多的细节没有展现(比如位置编码等),下面是这些模块具体参数和执行速度的对比:
耗时
耗时
即梦Ai 教程
FlowMatchEuler
DiscreteScheduler
[1, 16380, 1536]
UniPCMultistep
Scheduler
[1, 6240, 2048]
表2
从表1可以看出,LTXVideo的压缩程度更强,是Wan2.1的4倍(192/48),这就造成表2中耗时的主要来源Attention 中的KQV的输入输出规模都是Wan2.1更大,约为LTXVideo的4倍;高压缩比带来的Attention的KQV推理速度提升达到6倍(18ms/3ms),FFN的推理速度提升达到惊人的27倍(5s/0.18s);Scheduler两者是算法区别带来的速度差异,我们暂且不做讨论;decode的速度也提高了4.8倍,但是因为decode操作只执行一次,这部分收益有限。
表2中的32760和6240两个数来自输入数据的下采样,而1536和2048是可以根据Transformer的参数算出来的,先来看两个模型Transformer部分的参数对比:
表3
根据表3,注意力头数x每头维度,Wan2.1:12×128=1536;LTXVideo: 32×64=2048 。
最后计算一下总耗时,计算结果会略小于开篇提到的时间,因为有一些耗时不高的操作没有统计进来,我们只关注耗时高的操作:
Wan2.1耗时 = (18*4+0.1*2+5)*30*2*50+33*2*50+4000 = ms,其中30是Attention的层数;
LTXVideo耗时 = (3*4+0.01*2+0.18+0.14)*28*2*50+830 = 35382ms,其中28是Attention的层数。
我们在图2和图3中可以看到有一个CFG参数,在使用ComfyUI时也经常看到这个参数,那他是干什么的呢?
Classifier-Free Guidance(CFG) 是一种在生成模型(如扩散模型或条件生成模型)中用于提升生成样本质量和条件控制能力的技术。直白点说,CFG越大,反向提示词的作用就越大,而反向提示词一般都是控制输出质量的(例如:“模糊、畸变、多手指”),所以提高CFG就达到了提升图像质量的目的。
如果CFG<=1,那么生成的视频完全根据正向提示词,负向提示词不起作用。
为什么要提CFG呢 ,因为在模型的实现代码中都会出现类似下面的判断,当CFG<=1就不再生成反向提示词的latent,那Transformer部分执行时长会减半,这对推理速度来说很重要!!
最后总结一下:
1.影响视频生成速度的最大因素是压缩比;
2.压缩比是由VAE控制的;
3.模型最耗时的地方在Transformer,因为会循环执行很多次,所有压缩比带来的收益在Transformer部分最明显;
4.调整CFG可以改变生成质量,CFG越大,反向提示词越重要,如果CFG<=1则反向提示词不起作用,Transformer执行时间减半。
好了关于视频生成模型速度的内容就介绍到这。
关注不迷路(*^▽^*),暴富入口==》 https://bbs.csdn.net/topics/
发布者:Ai探索者,转载请注明出处:https://javaforall.net/265441.html原文链接:https://javaforall.net
