StableVideo:使用Stable Diffusion生成连续无闪烁的视频

news2024/11/17 9:37:22

使用Stable Diffusion生成视频一直是人们的研究目标,但是我们遇到的最大问题是视频帧和帧之间的闪烁,但是最新的论文则着力解决这个问题。

本文总结了Chai等人的论文《StableVideo: Text-driven consistency -aware Diffusion Video Editing》,该论文提出了一种新的方法,使扩散模型能够编辑具有高时间一致性的视频。关键思想是:

1、帧间传播,获得一致的目标外观

2、图集聚合,获得连贯的运动和几何

论文的实验表明,与最先进的方法相比,视频编辑效果更好。

论文提出的StableVideo是一个文本驱动的视频编辑框架,通过对自然视频的大量实验表明,与其他基于扩散的方法相比,StableVideo在保持几何形状和时间连续性的情况下产生优越的编辑结果。

图像编辑与扩散模型

扩散模型已经成为最先进的深度生成模型,用于根据文本提示或条件生成和编辑高保真图像。dall - e2和Stable Diffusion等模型可以合成符合所需文本描述的逼真图像。对于图像编辑也可以基于文本在语义上修改图像。

但是目前为止直接将扩散模型应用于视频编辑仍然是一个挑战。这里的一个最主要的关键的原因是缺乏时间一致性:SD模型是直接独立编辑每一帧,所以往往会导致闪烁效果和不连续的运动。

基于图集表示的视频编辑

为了在视频帧之间平滑地传播编辑,许多研究已经提出将视频分解为图集表示。视频帧被映射到统一的二维坐标空间,称为atlases,它随时间汇总像素。编辑该集合可以在映射过程中对整个视频进行连贯的更改。

以前的研究omnimates和神经分层图集(NLA),将前景和背景分离到不同的图集中。而Text2LIVE在NLA图集上增加了一个额外的图层,用于文本驱动的外观编辑。但是直接使用扩散模型的研究还没有成功

StableVideo框架

StableVideo框架通过结合两者的优点实现了高质量的基于扩散的视频编辑,并具有时间一致性。他的想法是与其直接编辑图集,不如先编辑关键帧,然后将它们聚合到编辑过的图集中,这样可以获得更好的结果。

也就是说具体来说,管道首先使用NLA将输入视频分解为前景和背景图集。然后根据文本提示分别应用扩散模型编辑背景和关键帧前景。为了确保连贯的外观,使用帧间传播编辑前景关键帧。编辑的关键帧被聚合成一个新的前景图集,它与编辑的背景一起重建最终的输出视频。

方法简介

1、基于神经分层图集的视频分解

作为先决条件,使用预训练的NLA模型将输入视频分解为前景和背景图集。这为前景和背景提供了像素坐标和标准化图集坐标之间的映射:

UVb(.) = Mb(I)

UVf(.) = Mf(I)

这里I是输入帧,而UVb和UVf分别给出了背景和前景图集中相应的位置。

2、基于扩散的编辑

实际的编辑过程使用扩散模型Gb和Gf作为背景和前景。Gb直接编辑背景图集,Gf编辑前景关键帧:

Ab_edit = Gb(Ab, text_prompt) //编辑背景图集

Ei = Gf(Fi, text_prompt) //编辑关键帧

与严重扭曲的图集相比,在关键帧上工作提供了更可靠的编辑。

3、帧间传播前景编辑

为了保证关键帧编辑的时间一致性,提出了一种帧间传播机制。对于第一帧F0,扩散模型Gf正常编辑:

E0 = Gf(F0, text_prompt, structure_guidance)

对于随后的帧Fi,编辑的条件是文本提示和前一帧Ei-1的外观:

  • Ei-1到ai - 1f的部分图谱映射
  • 将Ai-1_f反向映射为当前帧E^i
  • 在文本提示和结构指导下对E^i进行降噪,得到Ei

这种传播允许在关键帧之间依次生成具有一致外观的新前景对象。

4、Atlas聚合

编辑后的关键帧使用简单的3D CNN聚合成统一的前景图集。该网络被训练到最小化关键帧和它们从聚合图谱的反向映射之间的重建误差。这种紧密耦合确保编辑被合并到一个暂时一致的图集中。

最后,将编辑后的前景和背景图集进行映射和合成,得到最终编辑后的视频帧。使用原始的前景分割蒙版来混合图层。

优势

论文对包含复杂动作的自然视频进行了合成、风格转移、背景替换等多种视频编辑场景的演示。定性和定量实验均表明StableVideo优于现有的基于扩散的方法:

  • 与Tune-A-Video相比,文本提示的可信度更高
  • 与Tune-A-Video相比,闪烁和偏差明显减少
  • 通过避免图集扭曲,比Text2LIVE更全面的编辑
  • 比Text2LIVE/Tune-A-Video中的完整视频/编辑再培训更快的推理

消融试验也验证了所提出的传播和聚合模块的贡献——与独立编辑相比,关键帧传播大大提高了外观一致性。对于一个GPU上的70帧768x432视频来说,只需要30秒的运行时间。

安装和使用

 git clone https://github.com/rese1f/StableVideo.git
 conda create -n stablevideo python=3.11
 pip install -r requirements.txt

所有的模型和检测器都可以从ControlNet的页面下载。

然后工作目录是这样的

 StableVideo
 ├── ...
 ├── ckpt
 │   ├── cldm_v15.yaml
 |   ├── dpt_hybrid-midas-501f0c75.pt
 │   ├── control_sd15_canny.pth
 │   └── control_sd15_depth.pth
 ├── data
 │   └── car-turn
 │       ├── checkpoint # NLA models are stored here
 │       ├── car-turn # contains video frames
 │       ├── ...
 │   ├── blackswan
 │   ├── ...
 └── ...

运行

 python app.py

点击渲染按钮后,生成的mp4视频和关键帧将存储在/log目录中。

总结

StableVideo是一种具有扩散模型的高质量和时间一致的文本驱动视频编辑的新方法。其核心思想是编辑关键帧并在它们之间传播外观,并将编辑聚合到统一的图集空间中。大量的实验表明,该方法在编辑广泛的自然视频方面具有优越的连贯性。该技术提供了一种高效的解决方案,以适应强大的扩散模型,实现平滑的视频编辑。

看看我们的演示视频:

https://weixin.qq.com/sph/AkqDCb

最后就是论文地址:

https://avoid.overfit.cn/post/bc9b051949ea48078de19b3d5622e326

作者:TutorMaster

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

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

相关文章

高性能网络模式-Reactor

事实上,Reactor 模式也叫Dispatcher模式,即I/O 多路复⽤监听事件,收到事件后,根据事件类型分配(Dispatch)给某个进程/线程。Reactor 模式也是一种非阻塞同步网络模式。 Reactor 模式主要由 Reactor部分和处…

Django基础3——视图函数

文章目录 一、基本了解1.1 Django内置函数1.2 http请求流程 二、HttpRequest对象(接受客户端请求)2.1 常用属性2.2 常用方法2.3 服务端接收URL参数2.4 QueryDict对象2.5 案例2.5.1 表单GET提交2.5.2 表单POST提交2.5.3 上传文件 三、HttpResponse对象&am…

NV PTX ISA 文档的增量说明

无它,维截图尔,汇总一下,找找规律; cuda 12.0 PTX 8.0 关键字: 从cuda 8.0开始: 显然,每次增量的主要因素是对应着对新的硬件功能的提炼;

构建 NodeJS cinema API 网关并部署到 Docker(04/4)

一、说明 构建一个微服务的电影网站,需要Docker、NodeJS、MongoDB,这样的案例您见过吗?如果对此有兴趣,您就继续往下看吧。 我们前几章的快速回顾 第一篇文章介绍了微服务架构模式,并讨论了使用微服务的优缺点。第二篇…

Unity报错DllNotFoundException:sqlite3

Unity项目中要使用轻型数据库sqlite,除了导入sqlite3.dll外,还需要导入Mono.Data.Sqlite.dll和System.Data.dll(工程里或者编辑器里面有System.Data.dll时就不需要)两个文件。 如果在编辑器中运行出现 “DllNotFoundException:sql…

pyside6最小化的核心调用代码

pyside6最小化的核心调用代码: 一、格式代码 你认为是 制式代码,下面图中的就是核心代码,以后就是这样记住以及使用即可 二、图形代码【生成代码】 2.1designer设计界面 2.2设计的界面转换为代码 注意图纸划线的地方,后续导入…

卓码软件测评简析:软件压力测试工具和流程有哪些?

在软件开发过程中,压力测试是非常重要的一项工作,它可以帮助客户评估软件系统在正常或异常负载下的性能表现。在这个领域,有很多不同的工具可供选择,每个工具具有其独特的特点和优势。那么常见的压力测试工具有哪些以及进行压力测…

外网访问家里虚拟机的两种方法

从外网访问家里虚拟机的两种方法 起因 在公司,当我不想干的时候就想着跑路,但是自己又太菜了(饭碗要紧),所以想通过ssh登录到自己的家里一台linux上,去敲一敲 linux命令,sql命令,do…

Mobx在非react组件中修改数据,在ts/js中修改数据实现响应式更新

我们都之前在封装mobx作为数据存储的时候,使用到了useContext作为包裹,将store变成了一个hooks使用,封装代码: import React from react import UserInfo from ./user import Setting from ./seting import NoteStore from ./noteclass Stor…

WSL(centos7.0.1907.3)安装lxc

安装 1.centos的epel源提供了lxc的安装包,在使用epel源时首先安装epel-release包: yum -y install epel-release2.安装lxc软件包和依赖包 yum -y install lxc lxc-templates bridge-utils lxc-libs libcgroup libvirt 安装完成后,通过 lx…

centos安装redis教程

1.下载安装包 redis官网 下载最新版本redis安装包 2.上传到服务器 然后解压 解压命令 tar xzvf redis-7.2.0.tar.gz 进入文件夹 cd redis-7.2.0 执行安装编译命令 make 如果要安装到别的目录则执行 make install PREFIX/目录地址 看到如下内容则说明安装成功 如有遇到报错…

骨传导蓝牙耳机能打电话吗,骨传导蓝牙耳机别人听得到吗

时光荏苒,社会不断发展,年轻人的生活离不开一样必备神器——耳机。而在众多耳机中,骨传导耳机备受青睐。这种耳机的佩戴方式不仅方便,还更安全,能有效降低中耳炎的风险。此外,经过精心设计的耳机还能有效减…

再升级!PP-OCRv4多场景平均精度提升5%!

OCR方向的工程师,一定有在关注PaddleOCR这个项目,其主要推荐的PP-OCR算法更是被国内外企业开发者广泛应用。短短几年时间,PP-OCR累计Star数量已超过32.2k,频频登上GitHub Trending和Paperswithcode日榜月榜第一,称它为…

Navicat for Mysql 显示 emoji 表情符号乱码问题 — 其它乱码情况都可参考

系统环境: 操作系统:MAC OS 10.11.6 MySQL:Server version: 5.6.21 MySQL Community Server (GPL) Navicat for MySQL: version 9.3.1 - standard 1、问题发现 在客户端执行用户注册,用户名包括 emoji 表情符号,注册完…

SpringBoot基于AOP注解方式实现Redis缓存

一、前言 Spring中的AOP(Aspect Oriented Programming)是基于代理的AOP实现,通过使用基于代理的技术,可以在不修改原有代码的情况下,对原有代码进行增强和改进。Spring AOP实现了面向切面编程的功能,将横切…

电工-捡测电动机绕组首尾端的电路接线图

电工捡测电动机绕组首尾端的电路接线图 若三相电动机绕组首尾端接错,电动机起动时,会引起振动、噪声、三相电流严重不平衡、电动机过热、转速降低,甚至电动机不转等故障。 可用交流电源和灯泡来检查电动机三相绕组的首尾端用以检测电动机首尾…

Vue3项目实战

目录 一、项目准备 二、基础语法应用 2.1、mixin应用 2.2、网络请求 2.3、显示与隐藏 2.4、编程式路由跳转 2.5、下载资料 2.6、调用方法 2.7、监听路由变化 2.8、pinia应用 (1)存储token(user.js) (2)全选全不选案例(car.js) 一、项目准备 下载: cnp…

Google Play上线问题及解决方案

将应用上线到Google Play商店也可能会面临一些问题,在上线应用到Google Play商店之前,确保你充分测试应用,遵循Google Play的开发者政策和要求,以及关注用户的反馈,这些都能帮助你尽可能地解决问题并提供优秀的用户体验…

opencv 案例实战02-停车场车牌识别SVM模型训练及验证

1. 整个识别的流程图: 2. 车牌定位中分割流程图: 三、车牌识别中字符分割流程图: 1.准备数据集 下载车牌相关字符样本用于训练和测试,本文使用14个汉字样本和34个数字跟字母样本,每个字符样本数为40,样本尺…

无涯教程-PHP - preg_replace()函数

preg_replace() - 语法 mixed preg_replace (mixed pattern, mixed replacement, mixed string [, int limit [, int &$count]] ); preg_replace()函数的操作与POSIX函数ereg_replace()相同,不同之处在于可以在模式和替换输入参数中使用正则表达式。 可选的输…