My App

Turbo2K: Towards Ultra-Efficient and High-Quality 2K Video Synthesis

实现了2K的视频生成, latent space压缩视频, 知识蒸馏策略, 两步合成框架.

介绍

现实世界对2K视频有需求, 我们对这两个方向进行了改进. 1)当前的方法牺牲了质量, 2)复杂情况下一致性差.

举了个例子LTX-Video比同类减小了8倍的token量, 但是牺牲了质量和一致性.

和其他模型比较, 兼顾了质量和效率. Turbo2K利用LTX-Video的VAE高效压缩token, 利用知识蒸馏在小模型生成精细的纹理和一致的帧.

它们做了一个实验, 对比了LTX-Video和蒸馏后的LTX-Video, 结果如下图, 发现蒸馏后的LTX-Video在低分辨率下有更好的语义信息, 但是在高分辨率下表现很差, 为此它们提出了两阶段框架, 先用蒸馏后的LTX-Video生成低质量视频, 从中提取丰富的语义信息, 再指导高质量视频生成.

generation-result

方法

Turbo2K-overview

模型蒸馏

尽管teacher和student在latent sapce和结构设计上不同, 它们内在表示有结构性相似的语义模式.

蒸馏是这样做的, 如上图左边部分, 只看红色的路径是一个完整的DiT, Teacher提取的特征表示用于增强student的语义理解和详细的细节, 作为loss的一部分Ldis(θ,ϕ):=Ev,ϵ,t[sim(ftea,pϕ(fstu))]\mathcal{L}_{\text{dis}}(\theta, \phi) := -\mathbb{E}_{\mathbf{v}, \epsilon, t} [\text{sim}(\mathbf{f}_{\text{tea}}, p_{\phi}(\mathbf{f}_{\text{stu}}))], 其中pϕp_{\phi}是一个映射函数, 用于对齐student和teacher的token.

ps: 关于蒸馏多说一点, student的参数量比teacher少, 但是我希望student在某一步的输出和teacher对齐, 这是我目前理解的蒸馏.

在往后有一个讨论我看的云里雾里, 它表述teacher和student有相同的时间步t时表现更好, 如果teacher用finial timestep(0或者N吧), 近似于微调, 不太理解.

两步合成

原始的方法是先生成低分辨率视频, 再使用超分辨率技术提高分辨率, Turbo2K从低分辨率视频提取语义信息, 用它指导高分辨率视频的生成.

ps: 也就是说只要语义信息丰富, 是可能直接生成高分辨率视频, 同时保持质量和连续性的.

详细见"方法"中的图

thinking

在这里停下来思考一下, 从来没考虑过diffusion内部每一个块的输出意味着什么, 只关心输出是噪声, 下面是我对DiT的一个假设, 我甚至不知道DiT是不是和Unet一样上下采样的结构, 只是猜测每个DiT block提取的是忽略噪声的样本的特征或某种东西, 直接做高分辨率生成信息密度不够, 因为要生成的参数越多, 生成的随机性就越大, 但是如果我们把在LR model输出的特征展开, 和HR model的输出合并, 就可以保证它在一个不错的方向下生成.

这样讲和超分辨率技术差不多, 只是它在模型内部完成了这个过程.

实验和结果

使用HunYuanVideo(13B)作为teacher, LTX-Video(2B)作为student. 从质量和速度两个方面进行了比较, 质量比较用的VBench-Long.

消融实验做了两个. 1)模型蒸馏时, 探讨了是否需要teacher, teacher是t怎么取合适. 2)两步生成时, 探讨了将LR guide换成Latent guide, Feature guide(tl=tht_{l}=t_{h}), Feature guide(tl=0.1t_{l}=0.1)时的表现.

限制和未来工作

高动态和视觉复杂场景表现不佳, 手部姿势不连贯, 未来考虑扩大模型和数据库.

当前VAE结构不支持时间分区编码, 不能生成长视频.

On this page