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.合并两个有序数组 给你两个…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...

GAN模式奔溃的探讨论文综述(一)
简介 简介:今天带来一篇关于GAN的,对于模式奔溃的一个探讨的一个问题,帮助大家更好的解决训练中遇到的一个难题。 论文题目:An in-depth review and analysis of mode collapse in GAN 期刊:Machine Learning 链接:...

docker容器互联
1.docker可以通过网路访问 2.docker允许映射容器内应用的服务端口到本地宿主主机 3.互联机制实现多个容器间通过容器名来快速访问 一 、端口映射实现容器访问 1.从外部访问容器应用 我们先把之前的删掉吧(如果不删的话,容器就提不起来,因…...