StableVideo:使用Stable Diffusion生成连续无闪烁的视频
使用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.gitconda create -n stablevideo python=3.11pip 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
相关文章:
StableVideo:使用Stable Diffusion生成连续无闪烁的视频
使用Stable Diffusion生成视频一直是人们的研究目标,但是我们遇到的最大问题是视频帧和帧之间的闪烁,但是最新的论文则着力解决这个问题。 本文总结了Chai等人的论文《StableVideo: Text-driven consistency -aware Diffusion Video Editing》ÿ…...
「快学Docker」Docker容器安全性探析
「快学Docker」Docker容器安全性探析 引言容器安全性威胁Docker容器安全性目录容器镜像安全性主机与容器隔离访问控制运行时监控与防御网络安全性Docker容器安全性最佳实践 总结 引言 在当今快速发展的软件开发和部署领域,容器化技术已经成为一种不可或缺的工具。然…...
鲍威尔“放鹰”,美联储或将再加息?
KlipC报道:美联储主席鲍威尔8月25日举行的杰克逊霍尔全球央行年会上表示,尽管过去一年通胀总体持续下行,但住房和服务通胀仍处于高位,鲍威尔也表达了通胀上行风险的担忧,多次表示可能会在适当的情形进一步加息。演讲结…...
docker go安装库失败
在 Docker 容器中使用 Go 获取包时超时,可能是由于网络问题或者是由于特定的网络限制。以下是一些建议和解决方法: 更改下载源: Go 默认使用 proxy.golang.org 作为模块代理。在某些地区或网络环境中,这可能会导致超时。你可以尝试更改 Go 的…...
利用python进行键盘模拟输入
记一次利用python模拟键盘输入,由于键盘中英文切换较为麻烦,所以写了两个小程序分别进行英文字符模拟或中文字符模拟。 #用于键盘英文字符输入模拟 import pyautogui import timedef simulate_typing(text):# Give some time to switch to the desired …...
2024年java面试(二)--spring篇
文章目录 1.spring事务传播机制2.spring事务失效原因3.Bean的生命周期4.Bean作用域5.依赖注入三种方式(Ioc的三种实现方式)6.实例化bean的三种方式7.IOC容器初始化加载Bean流程 1.spring事务传播机制 声明式事务虽然优于编程式事务,但也有不…...
cyclictest stress 工具 使用
工具介绍 1. Cyclictest 准确且重复地测量线程的预期唤醒时间与它实际唤醒的时间之间的差异,以提供有关系统延迟的统计数据。 它可以测量由硬件、固件和操作系统引起的实时系统延迟 2.stress是Linux的一个压力测试工具,可以对CPU、Memory、IO、磁盘进行…...
天合翔宇荣获 HICOOL 2023 全球创业者大赛决赛二等奖
8 月 25 日晚,主题为“聚势创新 向光而行”的 HICOOL2023 全球创业者峰会开幕式,在中国国际展览中心(顺义馆)举行。北京市委书记尹力宣布开幕,市委副书记、市长殷勇致辞,市委副书记刘伟出席。 开幕式之后&…...
【LeetCode75】第三十五题 统计二叉树中好节点的数目
目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 给我们一棵二叉树,让我们统计这棵二叉树中好节点的数目。 那么什么是好节点,题目中给出定义,从根节点…...
探究排序算法:比较与非比较排序算法及性能分析
探究排序算法:比较与非比较排序算法及性能分析 排序算法是计算机科学中的基本问题,它涉及将一组元素按照特定的顺序排列。本文将深入介绍比较排序算法和非比较排序算法,包括每个算法的原理、Java代码示例以及它们的性能分析和比较。 比较排…...
如何输出高质量软文,媒介盒子教你4大技巧
作为一名软文作者,只有知道软文写作的要求,才能打造一篇成功的软文,以便为企业或产品带来较高的关注度和曝光率,提高企业的知名度和品牌形象。下面就随小编一起来看看吧! 1、吸引眼球的标题 标题是软文写作的灵魂&am…...
用centos7镜像做yum仓库
用centos7镜像做yum仓库,公司全部服务器使用。 小白教程,一看就会,一做就成。 1.先下载对应版本的centos7的DVD版或Everything版 我用的是DVD的,比Everything版小,功能也挺全,这里里centos7.5的镜像做实验…...
【无法联网】电脑wifi列表为空的解决方案
打开电脑, 发现wifi列表为空, 点击设置显示未连接 首先检查是不是网卡驱动有问题, cmd, devmgmt.msc 找到网络适配器, 看看网卡前面是否有感叹号, 如果没有则说明网卡没问题, 有问题则重装驱动 看看网络协议是否设置正确 找到"控制面板\所有控制面板项\网络和共享中心&…...
Ajax-Axios的快速入门
Ajax 概念:Asynchronous Javascript Anderson XML,异步的JavaScript和XML 作用:数据交换:通过Ajax可以给服务器发送请求,并获取服务器相应数据 异步交互:可以在不重新加载整个页面的情况下,与…...
mysql insert出现主键冲突错误的解决方法
mysql insert出现主键冲突错误的解决方法 insert 时防止出现主键冲突错误的方法 在mysql中插入数据的时候常常因为主键存在而冲突报错,下面有两个解决方法: 1 在insert 语句中添加ignore 关键字 insert ignore into table (id,name) values (1,username)…...
Visual Studio2022史诗级更新,增加多个提高生产力的功能
Visual Studio 2022发布了17.7x版,这次更新中,增加多个提高生产力的功能以及性能进一步改进。 如果要体验新功能,需要将Visual Studio 2022的版本升级到17.7及以上 下面我们看看新增的功能以及改进的功能! 目录 文件比较自动修复代…...
理解HTTPS/TLS/SSL(一)基础概念+配置本地自签名证书
文章目录 没有HTTPS时的样子场景模拟WireShark的Capture Filter和Display Filter设置Capture Filter启动程序设置Display Filter过滤抓到的包 结论 关于为什么加密更简洁有力的回答对称加密和非对称加密和CA证书密钥交换对称加密非对称加密CA机构和证书如何解决客户端和CA机构之…...
前端需要理解的Vue知识
1 模板语法 Vue使用基于 HTML 的模板语法,能声明式地将其组件实例的数据绑定到DOM。所有Vue 模板可以被符合规范的浏览器和 HTML 解析器解析。Vue 会将模板编译成高度优化的 JavaScript 代码。结合响应式系统,当应用状态变更时,Vue 能够智能…...
【Go 基础篇】Go语言中的自定义错误处理
错误是程序开发过程中不可避免的一部分,而Go语言以其简洁和高效的特性闻名。在Go中,自定义错误(Custom Errors)是一种强大的方式,可以为特定应用场景创建清晰的错误类型,以便更好地处理和调试问题。本文将详…...
LeetCode面试经典150题(day 1)
LeetCode是一个免费刷题的一个网站,想要通过笔试的小伙伴可以每天坚持刷两道算法题。 接下来,每天我将更新LeetCode面试经典150题的其中两道算法题,一边巩固自己,一遍希望能帮助到有需要的小伙伴。 88.合并两个有序数组 给你两个…...
嵌入式linux之QT交叉编译环境搭建(最简单实测通用版)
这里总结下用于嵌入式linux下的QT交叉编译环境搭建,留作备忘,分享给有需要的小伙伴。不管你的是什么嵌入式linux环境,实测过的通用方法总结。 环境准备 需要准备的环境要求如下: 1.虚拟机(vmvare15.5) 2.ubuntu18.04-x64的linu…...
线性代数的学习和整理14: 线性方程组求解
目录 1 线性方程组 2 有解,无解 3 解的个数 1 线性方程组 A*xy 3根直线的交点,就是解 无解的情况 无解: 三线平行无解:三线不相交 有解 有唯一解:三线相交于一点有无数解:三条线重叠 2 齐次线性方程组…...
Web Components详解-Custom Elements
目录 引言 演变过程 概述 使用方式 创建标签 定义标签 使用标签 获取标签 异步定义标签 升级标签 完整案例 结语 相关代码 参考文章 引言 随着项目体量的增大,组件化和模块化的优势也愈发明显了,构建可重复使用、独立、可互操作的组件变得…...
批量将excel文件按照分类生成多个excel文件
要批量将Excel文件按照分类生成多个Excel文件,文件名为分类名,可以使用Python中的pandas库来实现。下面是示例代码: import pandas as pd import os def split_excel_by_category(file_path, category_column, output_folder): # 读取Ex…...
PCL 点云组件聚类
文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 该算法与欧式聚类、DBSCAN聚类很是类似,聚类过程如下所述: 1. 首先,我们需要提供一个种子点集合,对种子点集合进行初始的聚类操作,聚类的评估器(即聚类条件),可以指定为法向评估,也可以是距离评估,以此我…...
学习Linux的注意事项(使用经验;目录作用;服务器注意事项)
本篇分享学习Linux过程中的一些经验 文章目录 1. Linux系统的使用经验2. Linux各目录的作用3. 服务器注意事项 1. Linux系统的使用经验 Linux严格区分大小写Linux中所有内容以文件形式保存,包括硬件,Linux是以管理文件的方式操作硬件 硬盘文件是/dev/s…...
Java字符串
文章目录 String类String的特性String对象的创建String常用方法 StringBuilder类StringBuffer类StringBuffer对象的创建StringBuffer类的常用方法 String、StringBuffer、StringBuilder区别 存放的位置 java.lang.*; 继承的父类 java.lang.Object 实现的接口 java.io.Serializa…...
windows下安装go环境 和vscode中go扩展
1. 首先安装GO Go下载地址:go.dev 选择相对应的版本,下载,运行安装程序,并打开命令提示符,运行 go env ,确认已经安装go 注意关注其中GOPATH和GOROOT,这两个地址可以在系统环境变量中进行设置…...
C++ 面试题(一)--C++基础,面向对象,内存管理
目录 1.part1 C基础 1 C特点 2 说说C语言和C的区别 3 说说 C中 struct 和 class 的区别 4 include头文件的顺序以及双引号""和尖括号<>的区别 5 说说C结构体和C结构体的区别 6 导入C函数的关键字是什么,C编译时和C有什么不同? 7…...
曲靖程序网站建设/色盲测试图第六版
给定一个十进制数M,以及需要转换的进制数N,将十进制数M,转换成N进制数 输入为一行,M是(32)位整数,N(2<N<16),用空格隔开 eg:输入 7 2输出 111输出描述:为了每个测…...
怎么搭建网站后台/网络营销logo
一、查询yum版本: yum info yum 二、查询打算下载软件的信息,如: yum search redis 或者 yum list |grep redis...
专业网站设计建站/西安做网站的网络公司
不管是我们为自己的网站做SEO优化,还是做公司网站的SEO优化,都建议大家能在SEO工作开始之前做好一份详细的SEO方案,不要怕费时间,只有有计划地去工作,才能让效率大大地提高不管是我们为自己的网站做SEO优化,…...
福州快速网站建设/深圳优化公司排名
方法一:父元素使用display:table和子元素使用display:table-cell属性来模拟表格,子元素设置vertical-align:middle和text-align:center即可垂直居中。 .div1{height:300px;width: 300px;background-color: cadetblue;display: table; } .span1{display: …...
wordpress首页自定义小工具/推广关键词排名方法
昨天晚上看了一部录像,具体名字我忘了,不过其中有句话记得非常清楚,“Who is the lion!”。故事讲述的是一个胆子很小的警察,无意中被要求付5000美金去学习一本课程,当然教授是一个比较坏的家伙,不过我也确…...
用jsp做网站默认显示this is my jsp page/互联网项目推广是什么
最近在部署一个shopex商店,安装时,需要支持zend optimizer。由于服务器是linux,很陌生,所以捣鼓了一下。一、下载对应服务器版本的zend optimizer(我下载的版本为ZendOptimizer-3.3.9-linux-glibc23-i386.tar),下载地址࿱…...