论文阅读VACE: All-in-One Video Creation and Editing

code:https://github.com/ali-vilab/VACE

核心

  • 单个模型同时处理多种视频生成和视频编辑任务
  • 通过VCU(视频条件单元)进行实现

方法

视频任务

所有的视频相关任务可以分为4类

文本生视频

参考图片生视频

视频生视频

视频+mask生视频

VCU

对上述4个任务,制定一个统一的输入范式。text,frame以及mask。

对于每一个不同的任务,text不用变,主要变化F以及M。对于参考图+视频,无非是多了l个参考图的输入。mask对应设置如下表所示。

这样就统一了不同类型任务的输入。

结构

重构了DiT模型用于VACE

Context Tokenization
  • 概念解耦。主要是将视频分为了2部分,一部分是和mask有交互的,需要重新生成;一部分和mask无交互的,需要保持不变。
  • Context Latent Encoding.解藕的两部分以及原始视频、mask分别encoder到latent空间,shape保持一致
  • Context Embedder 将上述3个concat一起输入到transformer中
    代码如下:
python 复制代码
def vace_encode_frames(self, frames, ref_images, masks=None):
    if ref_images is None:
        ref_images = [None] * len(frames)
    else:
        assert len(frames) == len(ref_images)

    if masks is None:
        latents = self.vae.encode(frames)
    else:
        inactive = [i * (1 - m) + 0 * m for i, m in zip(frames, masks)]
        reactive = [i * m + 0 * (1 - m) for i, m in zip(frames, masks)]
        inactive = self.vae.encode(inactive)
        reactive = self.vae.encode(reactive)
        latents = [torch.cat((u, c), dim=0) for u, c in zip(inactive, reactive)]

    cat_latents = []
    for latent, refs in zip(latents, ref_images):
        if refs is not None:
            if masks is None:
                ref_latent = self.vae.encode(refs)
            else:
                ref_latent = self.vae.encode(refs)
                ref_latent = [torch.cat((u, torch.zeros_like(u)), dim=0) for u in ref_latent]
            assert all([x.shape[1] == 1 for x in ref_latent])
            latent = torch.cat([*ref_latent, latent], dim=1)
        cat_latents.append(latent)
    return cat_latents
3.3.2. Fully Fine-Tuning and Context Adapter Tuning

作者设计了两种训练方式。

  • 全训练。直接将video tokens和context tokens相加,然后训练整个DiT
  • Context Adapter Tuning。直训练context Block和context Embed。DiT不动,cotext作为一个控制信号注入到DiT。参考了Res-tuning,也有点controlnet到结构。
    后文也有提到Context Adapter Tuning的效果更好,所以关注这个就可以。

结果

作者自己构建了一个新的数据集,用于评估多类视频任务。

定量

多个任务上的性能超过了sota,特别是在视频质量和视频一致性方面。例如,在图像到视频(I2V)任务中,VACE在多个指标上优于I2VGenXL、CogVideoX-I2V和LTX-Video-I2V等方法。

但是在R2V任务上,keling更胜一筹

定性

消融实验

  • Context Adapter Tuning的训练方式更好
  • 超参数设置Uniform最好
  • Context Adapter设置所有layers最好
  • Concept 解耦更好一点

局限(C.1. Limitations)

  • 生成的质量和风格受基础模型的影响。小模型快,但是质量和连贯性不好。例如身份一致性差,对输入的控制能力较弱。大模型慢,质量高。
  • VACE的训练数据不足,训练时间不足
  • 用户使用起来更复杂一些(对比单一任务模型)

细节

基础模型

在LTX-Video-2B和WAN-T2V-14B两个模型基础上训练

训练卡数:16张A100/128张A100

训练分为3个阶段
  • 基础任务训练,作为构建更复杂任务的基石。具体任务为视频修复和视频扩展
  • 任务扩展训练,扩展模型的能力。包括单输入参考帧到多输入参考帧和单一任务到组合任务
  • 质量提升训练,提升模型生成视频的质量,特别是在高分辨率和长视频序列上的表现。
训练参数

总结

主要是统一了多个不同的视频任务,使得单一模型拥有复杂的能力。创新点注意围绕着接口设计、训练设计。模型核心结构未变。

相关推荐
s1ckrain1 天前
【论文阅读】VARGPT-v1.1
论文阅读·多模态大模型·统一生成模型
Catching Star1 天前
【论文笔记】【强化微调】Vision-R1:首个针对多模态 LLM 制定的强化微调方法,以 7B 比肩 70B
论文阅读·强化微调
王上上1 天前
【论文阅读41】-LSTM-PINN预测人口
论文阅读·人工智能·lstm
s1ckrain2 天前
【论文阅读】DeepEyes: Incentivizing “Thinking with Images” via Reinforcement Learning
论文阅读·强化学习·多模态大模型·vlm
张较瘦_2 天前
[论文阅读] 人工智能 + 软件工程 | 需求获取访谈中LLM生成跟进问题研究:来龙去脉与创新突破
论文阅读·人工智能
北京地铁1号线3 天前
GPT-2论文阅读:Language Models are Unsupervised Multitask Learners
论文阅读·gpt·语言模型
张较瘦_3 天前
[论文阅读] 人工智能 + 软件工程 | 软件架构中自然问题主动辅助研究:从挑战到解决方案
论文阅读·人工智能·软件工程
有Li3 天前
通过具有一致性嵌入的大语言模型实现端到端乳腺癌放射治疗计划制定|文献速递-最新论文分享
论文阅读·深度学习·分类·医学生
张较瘦_4 天前
[论文阅读] 人工智能 | 深度学习系统崩溃恢复新方案:DaiFu框架的原位修复技术
论文阅读·人工智能·深度学习
selia10784 天前
[论文阅读] Neural Architecture Search: Insights from 1000 Papers
论文阅读