ConditionVideo: 无训练的条件引导视频生成 | AAAI 2024

作者:彭博,上海人工智能实验室与上海交大2023级联培博士。

最近的工作已经成功地将大规模文本到图像模型扩展到视频领域,产生了令人印象深刻的结果,但计算成本高,需要大量的视频数据。在这项工作中,我们介绍了ConditionVideo,这是一种无需训练的文本到视频生成方法,基于提供的条件、视频和输入文本,通过利用现成的文本到图像生成方法(例如,Stable Diffusion)的功能。ConditionVideo从随机噪声或给定场景视频生成逼真的动态视频。我们的方法明确地将运动表示分解为条件引导和场景运动组件。为此,ConditionVideo模型设计了一个UNet分支和一个控制分支。为了提高时间相干性,我们引入了稀疏双向时空注意(sBiST-Attn)。三维控制网络扩展了传统的二维控制网络模型,旨在通过额外利用时域的双向帧来增强条件生成的准确性。我们的方法在帧一致性、片段评分和条件准确性方面表现优异,优于其他方法。目前文章已被AAAI 2024会议接收,代码已开源到Github。

Arxiv 链接:https://arxiv.org/abs/2310.07697

Github 链接: GitHub - pengbo807/ConditionVideo: Training-Free Condition-Guided Text-to-Video Generation


贡献

  • 我们提出了一种无需训练的视频生成方法,该方法利用现成的文本到图像生成模型生成具有逼真动态背景的条件引导视频。

  • 我们的方法通过一个包括U-Net分支和条件控制分支的pipeline,将运动表征分解为条件引导和场景运动组件

  • 我们引入稀疏双向时空注意(sBiST-Attn)和三维条件控制分支,提高了条件精度和时间一致性。

方法

ConditionVideo利用引导注释(表示为 Condition)和可选参考场景(表示为Video)来生成逼真的视频。接下来,我们首先介绍我们的无训练pipeline,接着介绍我们建模运动的方法。而后,我们提出了稀疏双向时空注意(sBiST-Attn)机制。最后,我们给出3D控制分支的详细解释。

无训练采样Pipeline

图2描绘了我们提出的无训练采样Pipeline。利用从预训练的图像扩散模型的编码器解码器D(E(·)),我们逐帧在RGB空间和潜在空间之间进行视频变换。我们的ConditionVideo模型包含两个分支:一个UNet分支和一个3D控制分支。文本描述被输入到两个分支中。根据用户对定制或随机背景的偏好,UNet分支接受参考背景视频的隐层编码或随机噪声ϵ_b。条件会在加入随机噪声ϵc后被送入3D控制分支。

我们的控制分支使用ControlNet的原始权重。如图2右侧所示,我们通过使用1×3×3内核将2D卷积转换为3D,并用我们提出的sBiST-Attn模块替换self-attention模块。我们保持其他输入输出机制与之前相同。

运动表征策略

在传统的生成扩散模型中,噪声向量 ϵ 是从独立同分布的高斯分布中采样的,即 ϵ ∼ N(0, I),然后被控制分支和UNet分支共享。然而,如果我们遵循原始机制,让逆向背景视频的潜在代码被两个分支共享,我们观察到背景生成结果将会模糊。这是因为使用相同的潜在代码生成前景和背景假设前景角色与背景有强烈的关系。受此启发,我们明确将视频运动表示解耦为两个组成部分:背景运动和前景运动。背景运动由UNet分支生成,其潜在代码表示为背景噪声 ϵb ∼ N(0, I)。前景运动由给定的条件注释表示,而前景的外观表示是从噪声 ϵc ∼ N(0, I)生成的。

为了实现连续生成帧之间的时间一致性,我们调查了促进创建连贯视频的选定噪声模式。通过确保控制分支产生准确的条件控制,可以建立前景生成的一致性。在生成背景时,我们可以采取两种方法。第一种是使用背景噪声 ϵb 创建背景。第二种方法是从参考风景视频的逆向潜在代码生成背景。值得注意的是,我们观察到,当原始视频经历DDIM逆转时,其中存在的动态运动相关性被保留下来。因此,我们利用这种潜在的运动相关性来生成背景视频。

在采样过程中,第一步前向过程 t = T 时,我们将背景隐变量 z_T^{INV} 或 ϵ_b 输入UNet分支,将条件 Cond 输入我们的3D控制分支。然后,在随后的逆向步骤 t = T - 1, .., 0 中,我们将去噪后的隐变量 z_t 输入UNet分支,同时仍然使用 Ccond 作为3D控制分支的输入。采样算法的详细信息展示在算法1中。

稀疏双向时空注意力机制(sBiST-Attn)

考虑到时间连贯性和计算复杂性,我们提出了一种稀疏双向时空注意机制(sBiST-Attn),如图3所示。对于视频潜在张量 zti,i = 1, ..., F,注意力矩阵是在帧 zti 及其双向帧之间计算的,采样间隔为3。这个间隔是在权衡帧一致性和计算成本之后选择的。对于 zt 中的每个 zti,我们从其帧 zit 中导出查询特征。键和值特征是从双向帧 z3j+1t 中导出的,j = 0, ..., ⌊(F - 1)/3⌋。从数学上讲,我们的 sBiST-Attn 可以表示为:

3D控制分支

逐帧条件引导通常是有效的,但有时网络可能无法正确解释引导,导致条件输出不一致。鉴于条件运动的连续性,ConditionVideo 提出通过参考相邻帧来增强条件对齐的方法。如果由于控制弱而导致某个帧未能正确对齐,其他正确对齐的帧可以提供更多实质性的条件对齐信息。有鉴于此,我们设计我们的控制分支以时间方式运行,我们选择用 sBiST-Attn 模块替换自注意模块,并将二维卷积扩展到三维。替换的注意力模块可以考虑先前和后续的帧,从而增强我们的控制效果。

实验结果

我们基于ControlNet和Stable Diffusion 1.5的预训练权重实现我们的模型。我们为每个视频生成24帧,分辨率为512×512像素。在推理过程中,我们使用与Tune-A-Video相同的采样设置。更多细节可以在https://arxiv.org/abs/2310.07697的附录D中找到。我们将我们的方法与Tune-A-Video、ControlNet和Text2Video-Zero进行比较。对于Tune-A-Video,我们首先对提取条件的视频进行微调,然后从条件视频的相应噪声潜码中进行采样。

比较实验

定性比较

我们对基于pose、canny和depth信息的视觉比较呈现在图4、5和6中。Tune-A-Video在与我们给定的条件和文本描述很好地对齐方面存在困难。ControlNet在条件对齐精度方面有所改进,但缺乏时间一致性。尽管Text2Video能够制作出质量卓越的视频,但我们仍然发现并用图中的红圈标出了一些小瑕疵。我们的模型超越了所有其他模型,展示了出色的条件对齐质量和帧一致性。

定量比较

我们使用三个指标评估所有方法:Frame Consistency,Clip Score,和Pose Accuracy。由于其他条件难以评估,我们仅使用姿势准确性评估条件一致性。不同条件的结果显示在表1中,我们在所有条件下都实现了最高的Frame Consistency和Clip Score,表明我们的方法在时间一致性和文本对齐方面表现最佳。我们的姿势-视频对齐也比其他三种技术更好。这些条件是从120个不同视频中随机生成的。

Ablation Study

我们对条件控制分支、时间模块和3D控制分支进行了消融实验,结果如图7中所示。在我们的研究中,我们单独修改每个元素进行比较分析,确保所有其他设置保持不变。

条件控制分支

我们评估了使用和不使用姿势的性能,如图7所示。没有姿势条件时,视频被固定为图像,而使用姿势控制则允许生成带有特定时间语义信息的视频。

时间模块

无训练视频生成严重依赖于有效的空间-时间建模。为了评估我们的时间注意模块的效果,我们移除了我们的sBiST-注意机制,并将其替换为非时间自注意机制、稀疏因果注意机制和稠密注意机制,稠密注意机制关注所有关键帧和值。结果展示在表3中。时间和非时间注意的比较强调了时间建模对于生成时间一致性视频的重要性。通过与稀疏因果注意机制进行比较,我们证明了ConditionVideo的sBiST注意机制的有效性,表明了将双向帧的信息融入能够比仅使用先前帧提高性能。此外,我们观察到在帧一致性方面,我们的方法与密集注意机制之间几乎没有差异,尽管后者的生成时间是我们的两倍以上。

3D控制分支

我们将我们的3D控制分支与按帧处理条件的2D版本进行了比较。对于2D分支,我们使用了原始的ControlNet条件分支。这两个控制分支在Frame Consistency,Clip Score,和Pose Accuracy方面进行了评估。表4的结果显示,我们的3D控制分支在姿势准确性方面优于2D控制分支,同时保持了相似的帧一致性和Clip Score。这证明了额外考虑双向帧可以增强姿势控制。

讨论与结论

在本文中,我们提出了ConditionVideo,这是一种无需训练即可生成生动运动视频的方法。这项技术利用了独特的运动表达,由背景视频和条件数据信息化,并利用我们的sBiST-Attn机制和3D控制分支来增强帧一致性和条件对齐能力。我们的实验表明,ConditionVideo可以制作高质量视频,这在视频生成和AI驱动的内容创建方面标志着一个重要的进步。在我们的实验中,我们发现我们的方法能够生成长视频。此外,这种方法与ControlVideo的层次采样器兼容,该采样器用于生成长视频。尽管基于条件的和时间注意在维持视频连贯性方面有效,但我们也注意到了像姿势数据这样条件稀疏的视频中的闪烁等挑战。为了解决这个问题,一个潜在的解决方案为融入更密集采样的控制输入和额外的时间相关结构。

论文链接:

https://arxiv.org/abs/2310.07697

Github 链接:

GitHub - pengbo807/ConditionVideo: Training-Free Condition-Guided Text-to-Video Generation

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

游戏如何应对薅羊毛问题

在大众眼里,“薅羊毛”是指在电商领域,“羊毛党”利用平台、商家的促销规则,低价获取商品和服务的行为。如前不久“小天鹅被一夜薅走7000万”的案例震惊全网。 然而实际上,“薅羊毛”现象不仅存在于电商场景,在游戏中…

设计模式之适配器模式(通俗易懂--代码辅助理解【Java版】)

文章目录 设计模式概述1、适配器模式2、适配器模式的使用场景3、优点4、缺点5、主要角色6、代码示例1)UML图2)源代码(1)定义一部手机,它有个typec口。(2)定义一个vga接口。(3&#x…

docker入门-快速学会docker

死记硬背一张图 镜像类似于我们是使用的虚拟机,创建虚拟机前需要下载的系统镜像文件,比如iso文件,img文件等等这样一些镜像文件。 容器可以比作正在运行中的一个虚拟机。 tar文件,tar文件类似于vm使用时的vmdk文件。通过load指…

在 Docker容器中安装 ROS-Melodic 并使用 rviz 进行图形化显示

文章目录 写在前面1. 背景描述2. 安装步骤2.1 允许本地机器上的用户或进程连接到 X server2.2 拉取 docker 镜像2.3 使用镜像osrf/ros:melodic-desktop-full创建并运行容器2.4 运行 roscore2.5 运行 rviz 参考链接 写在前面 自己的测试环境: Ubuntu20.04&#xff0…

面网易后台开发居然遇到了一个困难难度算法题

在提供面经的同学中,竟然有同学在面试网易后台研发的时候遇到了一道困难难度的算法题。 一般来说,大多数面试的算法题都是以中等难度为主,遇到困难难度的算法题也许是公司现在不缺人、也许是在选拔人才、当然也很可能是面试官其实并不想要你…

在三维可视化项目中,B/S和C/S架构该如何选择?

一、什么是B/S和C/S 在3D数据可视化中,有两种常见的架构模式:BS(Browser/Server)和CS(Client/Server) B/S模式 B/S模式是指将3D数据可视化的逻辑和处理放在服务器端,而在客户端使用浏览器进行…

前端新机部署

编辑器:vscode 下载地址 vscode常用插件 显示代码修改历史、作者等信息 GitLens Nodejs版本 Node版本管理工具 Nvm下载地址 nvm常用命令: nvm ls // 查看安装的所有node.js的版本nvm list available //查看可以安装的所有node.js版本nvm install 版本…

Linux:Ubuntu系统开启SSH服务

在Ubuntu上开启SSH服务,可以按照以下步骤进行: 1.安装OpenSSH服务 如果你还没有安装OpenSSH服务,可以使用以下命令安装: sudo apt update sudo apt install openssh-server2. 启动SSH服务 安装完成后,启动SSH服务&a…

Docker在linux系统中的下载与使用

Docker在linux系统中的下载与使用 一、docker作用,下载及安装二、docker镜像三、创建容器四、容器数据卷 一、docker作用,下载及安装 ubuntu下载安装docker 命令:在ubuntu上面执行这个命令 Docker version:查看docker是否安装成功 配置阿里云镜像加速:进入阿里云网站…

【WEB应用安全测试指南–蓝队安全测试2】--超详细-可直接进行实战!!!亲测-可进行安全及渗透测试

安全基础理论入门知识参考上一篇《WEB应用安全测试指南蓝队安全测试1》 WEB应用安全测试指南2 一、文件 I/O 类1.1、任意文件上传1.2、任意文件下载1.3、文件包含 二、接口安全类2.1、短信炸弹2.2、邮件炸弹2.3、短信内容可控2.4、邮件内容可控 三、逻辑流程类3.1、越权3.2、未…

k8s部署jenkins集群,配置集群kubernetes plugin的pod模板

先安装jenkins插件,对应的源码地址是kubernetes-plugin,以供参考。 进入节点管理,开始配置。 点击 “ configure clouds” 一、配置集群 填写k8s地址:https://kubernetes.default.svc.cluster.local 命名空间:kuberne…

Redis高并发缓存设计问题与性能优化

1、缓存设计典型问题 1.1、缓存穿透 缓存穿透是指查询一个根本不存在的数据,缓存层和存储层都不会命中,通常出于容错的考虑,如果从存储层查不到数据则不写入缓存层。 缓存穿透将导致不存在的数据每次请求都要到存储层去查询,失…

【Python】从零到一,搭建高效Web服务器,轻松上手!Python开发者必备(文末附带源码分享)

CSDN Python源码分享:实现一个简单的Web服务器 在CSDN上,我们经常分享各种技术文章和源码,帮助开发者们不断提升自己的技能。今天,我将为大家分享一个使用Python实现的简单Web服务器源码。这个Web服务器能够处理基本的HTTP GET请…

打破常规,BD仓储物流的效能提升!

当前,随着国家战略的推进,JS与民用领域的融合不断加深,物流业也步入了军民融合的新时代。在智能仓储物流方面,JS物流的智能化进展受到了BD系统的高度关注和重视。 一、建设JS仓储物流RFID基础设施 JS物流领域引入RFID技术的基础工…

Jenkins 改成中文语言显示

Jenkins 改成中文语言显示 到系统管理 插件管理中下载如下插件接口 Localization: Chinese (Simplified) 搜索的时候用ctrlf 进行搜索,不要用Jenkins下面下的filter 只有,到系统管理Manage Jenkins下的Config System下,如下截图的位置去…

动态规划算法:14.简单多状态 dp 问题_粉刷房子_C++

题目链接:LCR 091. 粉刷房子 - 力扣(LeetCode) 一、题目解析 题目: 解析: 由题可知: 涂刷房子有三种颜色可以选,所给的二维数组中三列固定不变,分别是红、蓝、绿相邻两件房子不可…

C++基础面试题 | 什么是内存对齐?为什么需要内存对齐?

文章目录 回答重点扩展知识 回答重点 内存对齐是指计算机在访问内存时,会根据一定规则将数据存储在合适的起始地址上,通常是数据大小的整数倍。这样做可以提升CPU的访问效率,特别是在读取和写入数据时。 为什么要内存对齐?主要有…

无极低码课程【mysql windows下安装要点】

在Windows环境中安装MySQL 5.7教程 MySQL 是世界上最流行的开源关系型数据库管理系统之一。本教程将指导您在Windows操作系统上安装MySQL 5.7。 网上教程较多,这里不再详述,注意关键点即可 准备工作 下载MySQL 5.7安装包 访问 MySQL官方网站 下载MyS…

【Java面试——基础知识——Day2】

1.面向对象基础 1.1 面向对象和面向过程的区别 面向过程编程(POP):面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执行解决问题。面向对象编程(OOP):面向对象会先抽象出对象&#…

“链动2+1+消费增值:用户留存新策略“

大家好,我是吴军,目前在一家以创新为核心的软件开发公司担任产品经理。今天,我将深入探讨一个经受住了时间考验且依然充满活力的商业模式——“链动21”模式,并通过一个实例及相关数据展示它如何巧妙应对用户留存与复购的挑战。 首…