为什么即梦那么快?可灵那么慢!

为什么即梦那么快?可灵那么慢!

目录

写在前面

一、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

        这里有一些重要的对比参数:

Wan2.1 LTXVideo 参数量 1.2亿 9.3亿 空间下采样 8×8         32×32 时间下采样 4 8 潜在空间维度 16 128 压缩比 1:48 1:192

表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

        值得注意的是,图中只画了影响速度的一些模块,除此之外很多很多的细节没有展现(比如位置编码等),下面是这些模块具体参数和执行速度的对比:

模块名 Wan2.1输出 Wan2.1输出 Wan2.1
耗时
LTXVideo输出 LTXVideo输出 LTXVideo
耗时
Self-Attention Query [1, 32760, 1536] [1, 32760, 1536] 18ms [1, 6240, 2048] [1, 6240, 2048] 3ms Self-Attention Key [1, 32760, 1536] [1, 32760, 1536] 18ms [1, 6240, 2048] [1, 6240, 2048] 3ms Self-Attention Value [1, 32760, 1536] [1, 32760, 1536] 18ms [1, 6240, 2048] [1, 6240, 2048] 3ms Crosse-Attention Query [1, 32760, 1536] [1, 32760, 1536] 18ms [1, 6240, 2048] [1, 6240, 2048] 3ms Crosse-Attention Key [1, 512, 1536] [1, 512, 1536] 0.1ms [1, 128, 2048] [1, 128, 2048] 0.01ms Crosse-Attention Value [1, 512, 1536]

即梦Ai 教程

[1, 512, 1536] 0.1ms [1, 128, 2048] [1, 128, 2048] 0.01ms FFN [1, 32760, 1536] [1, 32760, 1536] 5ms [1, 6240, 2048] [1, 6240, 2048] 0.18ms Scheduler

FlowMatchEuler

DiscreteScheduler
[1, 16380, 1536]

[1, 16, 21, 60, 104] 33ms

UniPCMultistep

Scheduler
[1, 6240, 2048] 

[1, 128, 16, 15, 26]  0.14ms Decode [1, 16, 21, 60, 104] [1, 3, 81, 480, 832] 4s [1, 128, 16, 15, 26]  [1, 3, 121, 480, 832] 0.83s

表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中的327606240两个数来自输入数据的下采样,而1536和2048是可以根据Transformer的参数算出来的,先来看两个模型Transformer部分的参数对比:

参数 Wan2.1 LTXVideo class_name WanTransformer3DModel LTXVideoTransformer3DModel 层数 (num_layers) 30 28 注意力头数 (num_attention_heads) 12 32 每头维度 (attention_head_dim) 128 64 输入通道数 (in_channels) 16 128 输出通道数 (out_channels) 16 128 patch size [1, 2, 2] [1, 1, 1] FFN维度 (ffn_dim/caption_channels) 8960 4096 跨模态注意力维度 (cross_attention_dim/text_dim) 4096 2048

表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

(0)
上一篇 2026年3月12日 下午7:54
下一篇 2026年3月12日 下午7:55


相关推荐

关注全栈程序员社区公众号