AIGC视频生成国产之光:ByteDance的PixelDance模型

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍ByteDance的视频生成模型PixelDance,论文于2023年11月发布,模型上线于2024年9月,同时期上线的模型还有Seaweed(论文未发布)。

在这里插入图片描述

🌺优质专栏回顾🌺:

  1. 机器学习笔记
  2. 深度学习笔记
  3. 多模态论文笔记
  4. AIGC—图像

文章目录

    • 论文
    • 摘要
    • 引言
      • 输入
      • 训练和推理时的数据处理
      • 总结
    • 相关工作
      • 视频生成
      • 长视频生成
    • 方法
      • 模型架构
        • 潜在扩散架构
        • 图像指令注入
      • 训练和推理
    • 实验
      • 两种生成模式
      • 更多应用
        • 草图指令
        • 零样本视频编辑
    • 结论

论文

论文:https://arxiv.org/pdf/2311.10982
项目:https://makepixelsdance.github.io/

摘要

目前的视频生成方法主要侧重于文本到视频的生成,这样生成的视频片段往往动作极少。作者认为,仅依赖文本指令进行视频生成是不够且并非最优的。

在本文中,作者介绍了PixelDance,这是一种基于扩散模型的新颖方法,它将视频生成的第一帧和最后一帧的图像指令与文本指令相结合。

这并不是首例提出依赖文本指令进行视频生成是不够的论文,在Meta的Emu Video中也提到了,但是两者的生成策略略有不同:

  • Emu Video根据输入文本提示生成图像;之后再基于图像和文本的强条件生成视频。
  • 输入的内容包括,文本,作为视频第一帧的图像,作为视频最后一帧的图像。

Emu Video模型的实现参考历史文章:AIGC视频生成明星——Emu Video模型

引言

输入

作者提出了一种新颖的视频生成输入,其输入包括三部分:

  1. 文本指令
  2. 视频片段的第一帧引入图像指令。第一帧的图像指令描绘了视频片段的主要场景。
  3. 视频片段的最后一帧引入图像指令。最后一帧的图像指令(在训练和推理中可选使用)描绘了片段的结尾,并为生成提供了额外的控制。

这种方法还可以创建更长的视频,在这种情况下,模型会被多次应用,前一个片段的最后一帧将作为后续片段的第一帧指令

训练和推理时的数据处理

相比于其他模型提出使用高度描述性的文本注释以更好地遵循文本指令。图像指令使用真实视频帧,更加直接和易于获取。

PixelDance是一种基于潜在扩散模型的视频生成方法,以 <文本,第一帧,最后帧>指令为条件。

文本指令由预训练的文本编码器编码,并通过交叉注意力机制集成到扩散模型中。
图像指令由预训练的VAE编码器编码,并与扰动后的视频潜在表示或高斯噪声连接,作为扩散模型的输入,如下所示:【在下节“方法”中会详细介绍】。

  • 第一帧

    • 在训练中,使用(真实)第一帧来强制模型严格遵循指令,保持连续视频片段之间的连续性。
    • 在推理中,这个指令可以来源:
      1. 从文本到图像(T2I)模型中获得
      2. 由用户提供
  • 最后一帧

    • 在训练中,我们有意避免鼓励模型完全复制最后一帧指令,因为在推理中很难提供完美的最后一帧,在最后一帧的处理上,作者开发了三种技术:
      • 第一,在训练中,最后一帧指令是从视频片段的最后三帧(真实帧)中随机选择的。
      • 第二,我们向指令中引入噪声,以减少对指令的依赖并提高模型的鲁棒性。
      • 第三,在训练中,我们以一定的概率(例如25%)随机丢弃最后一帧指令。
    • 在推理中,用户可以使用基本的图像编辑工具创建这种指令。模型能够适应用户提供的粗略草图作为指导,而不需要提供完美的最后一帧。简单而有效的推理采样策略如下(最后一帧指令的影响可以通过T来调整。):
      • 在前T步去噪步骤中,利用最后一帧指令引导视频生成朝着期望的结束状态发展。
      • 在剩余的步骤中,丢弃该指令,使模型能够生成更具时间连贯性的视频。

总结

作者在文中说明了其主要贡献可以总结如下:

  • 提出了一种基于扩散模型的新颖视频生成方法PixelDance,它将第一帧和最后一帧的图像指令与文本指令相结合(还可以生成长视频,这一点是最重要的)。
  • 为PixelDance开发了训练和推理技术,这不仅有效地提高了生成视频的质量,而且为用户提供了对视频生成过程更多的控制。
  • 在公开数据上训练的模型在生成具有复杂场景和动作的高动态视频方面表现出色,为视频生成设定了新的标准。

相关工作

视频生成

扩散模型在逼真的文本到图像生成方面取得了显著进展,其表现出比GAN更强的鲁棒性,并且与基于Transformer的模型相比需要更少的参数。潜在扩散模型被提出通过在压缩的低维潜在空间中训练扩散模型来减轻计算负担。

对于视频生成,以往的研究通常在预训练的文本到图像扩散模型的2D UNet添加时间卷积层和时间注意力层【如Gen-1和Emu Video等】。尽管这些进展通过集成超分辨率模块为高分辨率视频的生成铺平了道路,但生成的视频具有简单、动作极少的特点。

最近,视频编辑领域取得了显著进展,特别是在保持视频原始结构和运动的同时进行内容修改方面,但存在下面的问题:

  • 寻找合适的参考视频进行编辑非常耗时。
  • 限制了创作的范围,因为它排除了合成全新内容(例如,一只北极熊走在长城上)的可能性。

长视频生成

长视频生成是一项更具挑战性的任务,它要求连续的视频片段之间无缝过渡,并且场景和角色具有长期一致性。通常有两种方法:

  1. 自回归方法采用滑动窗口,以前一个片段为条件生成新的片段。自回归方法由于时间上的误差累积容易导致质量下降。
  2. 分层方法首先生成稀疏帧,然后插值中间帧。需要长视频进行训练,由于在线视频中频繁的镜头变化,这些长视频很难获得。

在本文中,PixelDance以自回归的方式生成连续的视频片段,并且在合成长期一致的帧方面比现有模型表现更优。同时,我们提倡用户积极参与生成过程,就像电影导演一样,以确保生成的内容与用户的期望紧密一致。

方法

本文试图让模型专注于学习视频内容的动态变化,以生成具有丰富动作的视频。将第一帧和最后一帧的图像指令与文本指令相结合用于视频生成,并且我们有效地利用公开视频数据进行训练。我们将在本节详细阐述模型架构量身定制的训练和推理技术

模型架构

潜在扩散架构

论文中使用变分自动编码器(VAE)在潜在空间中进行去噪训练,以减轻计算负担。同时采用广泛使用的2D UNet作为扩散模型,它由一系列空间下采样层和一系列带有跳跃连接空间上采样层构成。它由两个基本块组成:

  • 2D卷积块
  • 2D注意力块。

通过插入时间层将2D UNet扩展为3D变体,实现如下:

  • 在2D卷积层之后添加沿时间维度的1D卷积层
  • 在2D注意力层之后添加沿时间维度的1D注意力层(双向自注意力机制)

Runway的Gen-1和Meta的Emu Video也是如此实现的。

该模型进行图像和视频联合训练,以在空间维度上保持高保真的生成能力。对于图像输入,1D时间操作被禁用。

图像输入主要涉及两类:训练时的图像指令输入以及联合训练时的普通图像输入

我们使用预训练的CLIP文本编码器对文本指令进行编码,并通过UNet中的交叉注意力层将嵌入文本注入,其中隐藏状态作为查询文本作为键和值

图像指令注入

第一帧最后一帧图像指令与文本指令相结合。在训练中,使用真实视频帧作为指令,这很容易获得。图像指令首先使用VAE将它们编码到扩散模型的输入空间中,得到 f f i r s t f^{first} ffirst f l a s t f^{last} flast 。最终的图像条件构建为: c i m a g e = [ f f i r s t , P A D s , f l a s t ] ∈ R F × C × H × W c^{image }=\left[f^{first }, PADs, f^{last }\right] \in \mathbb{R}^{F × C × H × W} cimage=[ffirst,PADs,flast]RF×C×H×W
其中 P A D s ∈ R ( F − 2 ) × C × H × W PADs \in \mathbb{R}^{(F-2) ×C ×H ×W} PADsR(F2)×C×H×W 。然后,条件 c i m a g e c^{image} cimage与噪声潜在表示 z t z_t zt沿通道维度连接,作为扩散模型的输入。

训练和推理

在这里插入图片描述

图3:展示了PixelDance的训练过程。原始视频片段和图像指令(位于红色和绿色框中)被编码为 z z z c i m a g e c^{image} cimage ,然后在添加不同噪声进行扰动后,沿着通道维度进行拼接

训练过程如上图所示。

第一帧指令:训练中使用真实的第一帧,使模型在推理中严格遵循第一帧指令。

最后一帧指令:有意避免鼓励模型完全复制最后一帧指令。因为在推理时,预先无法获得真实的最后一帧,模型需要适应用户提供的粗略草图作为指导,以生成时间连贯的视频。为此,引入了三种技术来选择最后一帧指令:

  • 第一,我们从视频片段的最后三帧真实帧中随机选择一帧作为训练的最后一帧指令。
  • 第二,为了提高鲁棒性,我们用噪声扰动图像指令的编码潜在表示 c i m a g e c^{image} cimage
  • 第三,在训练中,我们以概率 η \eta η随机丢弃最后一帧指令,将相应的潜在表示替换为零。

在第三种技术中,作者还提出了一种简单而有效的推理技术。在推理过程中,在总共T步去噪步骤的前 τ \tau τ步中应用最后一帧指令来引导视频生成朝着期望的结束状态发展,在后续步骤中丢弃该指令,以生成更合理且时间连贯的视频:
x ~ θ = { x ^ θ ( z t , f f i r s t , f l a s t , c t e x t ) , i f t < τ x ^ θ ( z t , f f i r s t , c t e x t ) , i f τ ≤ t ≤ T \tilde{x}_{\theta}=\left\{\begin{array}{ll} \hat{x}_{\theta}\left(z_{t}, f^{first }, f^{last }, c^{text }\right), & if t<\tau \\ \hat{x}_{\theta}\left(z_{t}, f^{first }, c^{text }\right), & if \tau \leq t \leq T \end{array} \right. x~θ={x^θ(zt,ffirst,flast,ctext),x^θ(zt,ffirst,ctext),ift<τifτtT
τ \tau τ决定了模型对最后一帧指令的依赖程度,调整 τ \tau τ将实现各种应用。例如,我们的模型可以在没有最后一帧指令的情况下(即 τ = 0 \tau = 0 τ=0)生成高动态视频。此外,我们在推理中应用无分类器引导,它混合了模型在有文本提示和无文本提示条件下的分数估计

实验

参照论文原文

两种生成模式

第一种是基础模式(Basic Mode)【和Emu Video 一样】,用户只需要提供一张指导图片+文本描述,PixelDance 就可以生成有高度一致性且有丰富动态性的视频,其中指导图片可以是真实图片,也可以利用现有的文生图模型生成,如下所示:
在这里插入图片描述

第二种是高级魔法模式(Magic Mode),给了用户更多发挥想象力和创造力的空间。在这种模式下,用户需要提供两张指导图片+文本描述,可以更好地生成更有难度的各种炫酷特效镜头,如下所示:
在这里插入图片描述

更多应用

草图指令

我们提出的方法可以扩展到其他类型的图像指令,如语义图、图像草图、人体姿态和边界框。为了证明这一点,我们以图像草图为例,使用图像草图作为最后一帧指令对PixelDance进行微调。结果如图10的前两行所示,表明一个简单的草图图像能够指导视频生成过程。

零样本视频编辑

PixelDance无需任何训练即可执行视频编辑,这通过将视频编辑任务转化为图像编辑任务来实现。如图10的最后一个示例所示,通过编辑给定视频的第一帧和最后一帧,PixelDance生成了与用户视频编辑期望一致的时间连贯视频。

结论

在本文中,作者提出了一种基于扩散模型的新颖视频生成方法PixelDance,它将第一帧和最后一帧的图像指令与文本指令相结合。作者还为该方法开发了专门的训练和推理技术。主要在WebVid - 10M上训练的PixelDance在合成具有复杂场景和动作的视频方面表现出卓越的熟练度,为视频生成设定了新的标准。

尽管我们的方法取得了显著成果,但仍有进一步改进的空间:

  • 首先,模型可以从高质量的开放域视频数据训练中受益。
  • 其次,在特定领域对模型进行微调可以进一步增强其能力。
  • 第三,结合概述视频关键元素和动作的注释文本可以提高与用户指令的匹配度。
  • 最后,PixelDance目前仅包含15亿参数,为未来的扩展提供了机会。未来的工作将对这些方面进行进一步研究。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/957112.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《keras 3 内卷神经网络》

keras 3 内卷神经网络 作者&#xff1a;Aritra Roy Gosthipaty 创建日期&#xff1a;2021/07/25 最后修改时间&#xff1a;2021/07/25 描述&#xff1a;深入研究特定于位置和通道无关的“内卷”内核。 &#xff08;i&#xff09; 此示例使用 Keras 3 在 Colab 中查看 GitHub …

【json_object】mysql中json_object函数过长,显示不全

问题&#xff1a;json只显示部分 解决&#xff1a; SET GLOBAL group_concat_max_len 1000000; -- 设置为1MB&#xff0c;根据需要调整如果当前在navicat上修改&#xff0c;只有效本次连接和后续会话&#xff0c;重新连接还是会恢复默认值1024 在my.ini配置文件中新增或者修…

云消息队列 Kafka 版 V3 系列荣获信通院“云原生技术创新标杆案例”

2024 年 12 月 24 日&#xff0c;由中国信息通信研究院&#xff08;以下简称“中国信通院”&#xff09;主办的“2025 中国信通院深度观察报告会&#xff1a;算力互联网分论坛”&#xff0c;在北京隆重召开。本次论坛以“算力互联网 新质生产力”为主题&#xff0c;全面展示中国…

2024 年度学习总结

目录 1. 前言 2. csdn 对于我的意义 3. 写博客的初衷 3.1 现在的想法 4. 写博客的意义 5. 关于生活和博客创作 5.1 写博客较于纸质笔记的优势 6. 致 2025 1. 前言 不知不觉, 来到 csdn 已经快一年了, 在这一年中, 我通过 csdn 学习到了很多知识, 结识了很多的良师益友…

Spring Boot自动配置原理:如何实现零配置启动

引言 在现代软件开发中&#xff0c;Spring 框架已经成为 Java 开发领域不可或缺的一部分。而 Spring Boot 的出现&#xff0c;更是为 Spring 应用的开发带来了革命性的变化。Spring Boot 的核心优势之一就是它的“自动配置”能力&#xff0c;它极大地简化了 Spring 应用的配置…

1.2.神经网络基础

目录 1.2.神经网络基础 1.2.1.Logistic回归 1.2.2 梯度下降算法 1.2.3 导数 1.2.4 向量化编程 1.2.5 正向传播与反向传播 1.2.6.练习 1.2.神经网络基础 1.2.1.Logistic回归 1.2.1.1.Logistic回归 逻辑回归是一个主要用于二分分类类的算法。那么逻辑回归是给定一个x ,…

Matlab总提示内存不够用,明明小于电脑内存

目录 前言情况1&#xff08;改matlab最大内存限制&#xff09;情况2&#xff08;重启电脑&#xff09;情况3 前言 在使用matlab中&#xff0c;有时候需要占用的内存并没有超过电脑内存依旧会报错&#xff0c;提示内存不够用&#xff0c;可以尝试下面几种方法&#xff0c;总有一…

使用AI生成金融时间序列数据:解决股市场的数据稀缺问题并提升信噪比

“GENERATIVE MODELS FOR FINANCIAL TIME SERIES DATA: ENHANCING SIGNAL-TO-NOISE RATIO AND ADDRESSING DATA SCARCITY IN A-SHARE MARKET” 论文地址&#xff1a;https://arxiv.org/pdf/2501.00063 摘要 金融领域面临的数据稀缺与低信噪比问题&#xff0c;限制了深度学习在…

深入解析人工智能中的协同过滤算法及其在推荐系统中的应用与优化

目录 什么是协同过滤算法核心原理基本步骤相似度计算代码实现详解1.流程图2.创建基础的数据结构存储用户评分数据3.计算用户相似度4.获取相似用户5.推荐方法 算法优化建议1. 数据预处理优化去除异常值和噪声数据进行数据标准化使用稀疏矩阵优化存储 2. 相似度计算优化使用局部敏…

react install

react 安装 React 是一个用于构建用户界面的 JavaScript 库。以下是安装 React 的步骤&#xff1a; 使用 Create React App Create React App 是一个官方支持的命令行工具&#xff0c;用于快速搭建 React 应用。 安装 Node.js 和 npm 确保你的计算机上安装了 Node.js 和 npm…

程序员不可能不知道的常见锁策略

前面我们学习过线程不安全问题&#xff0c;我们通过给代码加锁来解决线程不安全问题&#xff0c;在生活中我们也知道有很多种类型的锁&#xff0c;同时在代码的世界当中&#xff0c;也对应着很多类型的锁&#xff0c;今天我们对锁一探究竟&#xff01; 1. 常见的锁策略 注意: …

智启未来,AI筑梦科技新星”------华清远见成都中心2025冬令营圆满结束

2025年1月11日-16日&#xff0c;华清远见成都中心为期6天的“智启未来&#xff0c;AI筑梦科技新星”2025冬令营活动圆满结束。此次活动吸引了众多对人工智能和无人驾驶技术充满热情的学生参与&#xff0c;共同开启了一段点燃科技梦想的精彩旅程。 报道接待 以AI无人驾驶小车为核…

Debezium日常分享系列之:对于从Oracle数据库进行快照的性能优化

Debezium日常分享系列之&#xff1a;对于从Oracle数据库进行快照的性能优化 源数据库Kafka Connect监控测试结果 源数据库 Oracle 19c&#xff0c;本地&#xff0c;CDB数据库主机的I/O带宽为6 GB/s&#xff0c;由此主机上运行的所有数据库共享临时表空间由42个文件组成&#x…

RabbitMQ--延迟队列

&#xff08;一&#xff09;延迟队列 1.概念 延迟队列是一种特殊的队列&#xff0c;消息被发送后&#xff0c;消费者并不会立刻拿到消息&#xff0c;而是等待一段时间后&#xff0c;消费者才可以从这个队列中拿到消息进行消费 2.应用场景 延迟队列的应用场景很多&#xff0c;…

3DsMax设置中文界面

按键盘上的“Win”键&#xff0c;直接输入3dsmax&#xff0c;选择Simplified Chinese打开&#xff0c;之后就都是中文了

opencv在图片上添加中文汉字(c++以及python)

opencv在图片上添加中文汉字&#xff08;c以及python&#xff09;_c opencv绘制中文 知乎-CSDN博客 环境&#xff1a; ubuntu18.04 desktopopencv 3.4.15 opencv是不支持中文的。 这里C代码是采用替换原图的像素点来实现的&#xff0c;实现之前我们先了解一下汉字点阵字库。…

线程同步与Mutex

梦想是逃离世界… 文章目录 一、什么是线程同步&#xff1f;二、线程同步机制三、互斥锁&#xff08;Mutex&#xff09;四、loock 和 unlock五、Mutex的四种类型 一、什么是线程同步&#xff1f; 线程同步(Thread Synchronization)是多线程编程中的一个重要概念&#xff0c;它…

基于SpringBoot和PostGIS的全球首都信息管理设计与实现

目录 前言 一、首都空间表的设计 1、三张空间表的结构 二、SpringBoot后台管理的设计与实现 1、模型层的实现 2、业务层及控制层实现 三、前端的实现与成果可视化 1、新增数据的保存 2、首都的实际管理成果 3、全球首都信息 四、总结 前言 首都&#xff0c;一个国家的…

计算机网络 (50)两类密码体制

前言 计算机网络中的两类密码体制主要包括对称密钥密码体制&#xff08;也称为私钥密码体制、对称密码体制&#xff09;和公钥密码体制&#xff08;也称为非对称密码体制、公开密钥加密技术&#xff09;。 一、对称密钥密码体制 定义&#xff1a; 对称密钥密码体制是一种传…

【数据结构篇】顺序表 超详细

目录 一.顺序表的定义 1.顺序表的概念及结构 1.1线性表 2.顺序表的分类 2.1静态顺序表 2.2动态顺序表 二.动态顺序表的实现 1.准备工作和注意事项 2.顺序表的基本接口&#xff1a; 2.0 创建一个顺序表 2.1 顺序表的初始化 2.2 顺序表的销毁 2.3 顺序表的打印 3.顺序…