【AIGC-文本/图片生成视频系列-8】Align your Latents: 基于潜在扩散模型的高分辨率视频合成

目录

一. 项目概述与贡献

二. 方法详解

三. 应用总览

四. 个性化视频生成

五. 实时卷积合成

六. 更多结果

七. 论文

八. 个人思考


AI生成高分辨率视频一直是一个挑战。

今天讲解一篇潜在扩散模型(LDM)用于高分辨率、时间一致且多样化的视频生成的工作——来自英伟达的《Align your Latents: High-Resolution Video Synthesis with Latent Diffusion Models》。

一. 项目概述与贡献

回顾LDM的优势:

潜在扩散模型 (LDM) 可实现高质量图像合成,同时通过在压缩的低维潜在空间中训练扩散模型来避免过多的计算需求。

本文将 LDM 范式应用于高分辨率视频生成,这是一项特别资源密集型的任务。具体步骤如下:

1. 首先仅在图像上预训练 LDM;

2. 然后,通过向潜在空间扩散模型引入时间维度并对编码图像序列(即视频)进行微调,将图像生成器变成视频生成器。类似地,我们在时间上对齐扩散模型上采样器,将它们转变为时间一致的视频超分辨率模型。

具体贡献:

1. 提出了一种有效的方法来训练基于LDM的高分辨率、长期一致的视频生成模型。关键思路是利用预先训练的图像DM,并通过插入学习以时间一致的方式对齐图像的时间层将它们转换为视频生成器。

2. 进一步对文献中普遍存在的超分辨率 DM 进行了时间微调

3. 将公开可用的稳定扩散文本到图像LDM转换为强大且富有表现力的文本到视频LDM。

4.具备可迁移性。学习到的时间层可以与不同的图像模型权重(例如,DreamBooth)相结合。

图片

上面动图是本文中视频潜在扩散模型(视频 LDM)中的时间视频微调动画。将预先训练的图像扩散模型转变为时间一致的视频生成器。最初,模型合成的同一批次的不同样本是独立的。经过时间视频微调后,样本在时间上对齐并形成连贯的视频。对于一维分布的扩散模型,微调前后的随机生成过程可视化。 为了清楚起见,该图对应于像素空间中的对齐。在实践中,我们在LDM的潜在空间中进行对齐,并在应用LDM的解码器后获得视频。

二. 方法详解

  1. 本文提出了用于高效计算的高分辨率视频生成的视频潜在扩散模型(Video LDMs)。

  2. 为了缓解高分辨率视频合成对计算和内存的密集需求,利用 LDM 范例并将其扩展到视频生成。

  3. 本文的视频 LDM 将视频映射到压缩潜空间,并建立与视频帧相对应的潜变量序列模型(见上图动画)。

  4. 从图像 LDM 中初始化模型,并在 LDM 的去噪神经网络中插入时间层,对编码视频帧序列进行时间建模。

    图片

  5. 时间层基于时间注意力和三维卷积。

  6. 本文还对模型的解码器进行了微调,以生成视频(见下图)。

图片

潜在扩散模型框架和视频解码器微调。

上图:在时间解码器微调过程中,使用冻结的每帧编码器处理视频序列,并在各帧之间执行时间一致性重建。此外,我们还采用了视频感知鉴别器。

下图:在 LDM 中,扩散模型是在潜在空间中训练的。它可以合成潜在特征,然后通过解码器将其转换为图像。实践中,对整个视频进行建模,并通过视频微调潜在扩散模型,以生成时间上一致的帧序列。

  1. 视频 LDM 模型最初以低帧率生成稀疏关键帧,然后通过另一个插值潜扩散模型对其进行两次时间上采样。

  2. 此外,通过对起始帧进行有条件的视频 LDM 视频预测训练,我们还能以自回归的方式生成长视频。

  3. 为了实现高分辨率生成,我们进一步利用空间扩散模型上采样器,并对它们进行时间对齐,以进行视频上采样。

整个生成堆栈如下所示:

图片

视频 LDM 堆栈。首先生成稀疏的关键帧。然后,我们使用相同的插值模型分两步进行时间插值,以实现高帧率。这些操作使用共享相同图像骨干的潜像扩散模型(LDM)。最后,将潜在视频解码到像素空间,并选择性地应用视频上采样器扩散模型。

三. 应用总览

  1. 视频 LDM 能够生成分辨率为 512 x 1024 的时间连贯、多分钟长的视频,从而实现最先进的性能。

  2. 对于文本到视频,我们演示了几秒长度的短视频的合成,分辨率高达 1280 x 2048,利用稳定扩散作为主干图像 LDM 以及稳定扩散放大器。

  3. 我们还探索了模型的实时卷积应用,作为延长视频长度的替代方法。

  4. 我们的主要关键帧模型仅训练新插入的时间层,但不接触主干图像LDM的层。因此,学习到的时间层可以转移到其他图像 LDM 主干,例如已使用 DreamBooth 进行微调的主干。利用这一特性,我们还展示了个性化文本到视频生成的初步结果。

四. 个性化视频生成

我们将为视频 LDM 训练的用于文本到视频合成的时间层插入到图像 LDM 主干中,我们之前在DreamBooth之后的一组图像上微调过这些主干。时间层推广到 DreamBooth 权重,从而实现个性化的文本到视频的生成。

图片

五. 实时卷积合成

文中还探索通过及时卷积应用我们学习的时间层来“免费”合成稍长的视频。以下视频由175 帧组成,以 24 fps 渲染,产生 7.3 秒长的剪辑。可以观察到轻微的质量下降。

图片

六. 更多结果

图片

七. 论文

https://arxiv.org/pdf/2304.08818.pdf

八. 个人思考

英伟达的工作还是一如既往的“硬核”。不仅实现高分辨率的视频生成,同时还实现了长时间的视频生成。并且训练的时间层可以作用于其他文生图模型,从而实现“免费”长时间文生视频的生成,这点很值得借鉴和学习尝试。


欢迎加入AI杰克王的免费知识星球,海量干货等着你,一起探讨学习AIGC!

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

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

相关文章

【清华社机器之心】视频生成前沿研究与应用特别活动

在视频生成即将迎来技术和应用大爆发之际,为了帮助企业和广大从业者掌握技术前沿,把握时代机遇,机器之心AI论坛就将国内的视频生成技术力量齐聚一堂,共同分享国内顶尖力量的技术突破和应用实践。 论坛将于2024.01.20在北京举办&am…

RT-Thread 线程间通信

线程间通信 在裸机编程中,经常会使用全局变量进行功能间的通信,如某些功能可能由于一些操作而改变全局变量的值,另一个功能对此全局变量进行读取,根据读取到的全局变量值执行相应的动作,达到通信协作的目的。 邮箱 …

Unity中向量的点乘、叉乘区别和作用以及经典案例

文章目录 点乘(Dot Product)叉乘(Cross Product)向量归一化(Normalize)其他作用 unity开发中我们要计算角度,判断位置,常用点乘、叉乘、归一化等等,我们看看他们的使用案…

Flashduty 案例分享 - 途游游戏

Flashduty 作为功能完备的事件OnCall中心,可以接入云上、云下不同监控系统,统一做告警降噪分派、认领升级、排班协同,已经得到众多先进企业的认可。我们采访了一些典型客户代表,了解他们的痛点、选型考虑和未来展望,集…

JavaScript复习小案例

JavaScript实现简易留言板 效果图 完整代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>留言板</title><style>body {background-color: #f4f4f4;}/* 外部容器样式设置 */.wrapper {width: 400px;heigh…

建造者模式深入理解:演示建造单个和多个产品的实践,结合模板模式;支持并行构建,通俗易懂

首先呢看下建造者的定义是什么样的&#xff0c;先读一遍 建造者模式 建造者模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;它主要用于将一个复杂对象的构建过程与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表现形式。这种模式…

微软Office 2019 批量授权版

软件介绍 微软办公软件套件Microsoft Office 2019 专业增强版2024年1月批量许可版更新推送&#xff01;Office2019正式版2018年10月份推出&#xff0c;主要为多人跨平台办公与团队协作打造。Office2019整合对过去三年在Office365里所有功能&#xff0c;包括对Word、Excel、Pow…

【PyQt小知识 - 7】:QLineEdit设置输入的文本以圆点或星号等方式显示

文章目录 setEchoMode setEchoMode 在PyQt中&#xff0c;QLineEdit是一种用于接收用户输入的小部件&#xff08;widget&#xff09;。setEchoMode是QLineEdit类中的一个方法&#xff0c;可以用于设置文本输入框中的文本显示模式。它接受一个参数来指定要使用的模式。 setEcho…

GEE查看MODIS的NDVI、EVI产品并生成逐日/逐月NDVI曲线

目录 MOD13Q1MOD09GA计算逐日/逐月NDVI生成曲线参考博文 MOD13Q1 MOD13Q1有两个产品&#xff1a;NDVI和EVI&#xff0c;每16天为全球提供&#xff0c;分辨率为250M 通过查看时间&#xff0c;该NDVI产品是16天一景 MOD09GA 提供逐日的表面反射率产品&#xff0c;分辨率为500m…

09Bean的生命周期/作用域不同管理方式不同/自己new的对象纳入Spring容器管理

Spring其实就是一个管理Bean对象的工厂。它负责对象的创建&#xff0c;对象的销毁等。 所谓的生命周期就是&#xff1a;对象从创建开始到最终销毁的整个过程。 Bean的生命周期之5步 ● 第一步&#xff1a;实例化Bean(无参构造方法执行) ● 第二步&#xff1a;Bean属性赋值(注…

一文搞懂MongoDB

简介 什么是MongoDB MongoDB是一个基于分布式文件存储的NoSQL数据库&#xff0c;基于C语言开发而成的。它以文档存储格式&#xff08;BSON&#xff09;为基础&#xff0c;是由字段和值对组成的数据结构。 扩展&#xff1a; BSON&#xff08;Binary JSON&#xff09;是一种二进…

力扣日记1.11-【二叉树篇】450. 删除二叉搜索树中的节点

力扣日记&#xff1a;【二叉树篇】450. 删除二叉搜索树中的节点 日期&#xff1a;2024.1.11 参考&#xff1a;代码随想录、力扣 450. 删除二叉搜索树中的节点 题目描述 难度&#xff1a;中等 给定一个二叉搜索树的根节点 root 和一个值 key&#xff0c;删除二叉搜索树中的 key…

区间预测 | Matlab实现CNN-BiLSTM-KDE的卷积双向长短期神经网络结合核密度估计多变量时序区间预测

区间预测 | Matlab实现CNN-BiLSTM-KDE的卷积双向长短期神经网络结合核密度估计多变量时序区间预测 目录 区间预测 | Matlab实现CNN-BiLSTM-KDE的卷积双向长短期神经网络结合核密度估计多变量时序区间预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.CNN-BiLSTM-KDE多…

【python】python新年烟花代码【附源码】

欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 新年的钟声即将敲响&#xff0c;为了庆祝这个喜庆的时刻&#xff0c;我们可以用 Python 编写一个炫彩夺目的烟花盛典。本文将详细介绍如何使用 Pygame 库创建一个令人惊叹的烟花效果。 一、效果图&#xff1a; 二…

安防视频监控系统EasyCVR设备分组中在线/离线数量统计的开发与实现

安防视频监控EasyCVR系统具备较强的兼容性&#xff0c;它可以支持国标GB28181、RTSP/Onvif、RTMP&#xff0c;以及厂家的私有协议与SDK&#xff0c;如&#xff1a;海康ehome、海康sdk、大华sdk、宇视sdk、华为sdk、萤石云sdk、乐橙sdk等。EasyCVR平台可覆盖多类型的设备接入&am…

R语言下载安装及VScode配置

文章目录 1. R 下载和安装1.1 下载1.2 安装 2. VSCODE 配置2.1 安装R拓展2.2 安装R语言辅助功能包2.3 DEBUG 1. R 下载和安装 1.1 下载 网址&#xff1a;https://www.r-project.org/ 选择一个镜像地址下载 选择对应的版本 一般选择base即可 1.2 安装 下载安装包后按提示安装…

jupyter notebook 配置conda 虚拟环境python

conda创建python环境 conda create -n openvoice python3.9 激活环境 source activate openvoice 在虚拟环境中安装ipykernel pip install ipykernel 添加虚拟环境进到 jupyter notebook python -m ipykernel install --user --name openvoice --display-name openvoice …

Springboot+vue的毕业论文管理系统(有报告)。Javaee项目,springboot vue前后端分离项目

演示视频&#xff1a; Springbootvue的毕业论文管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的毕业论文管理系统&#xff0c;采用M&#xff08;model&…

QT延时五种实现方法

QT中没有提供专用延时函数&#xff0c;但有多种实现方法&#xff0c;各有特点&#xff0c;如下所示&#xff1a; 一.阻塞方式 1.多线程程序使用QThread::sleep()或者QThread::msleep()或QThread::usleep()或QThread::wait()进行延时处理。 Sleep不会释放对象锁&#xff0c;其…

第3章:python的判断语句

学一门语言&#xff0c;无外乎多敲&#xff0c;多用&#xff0c;记得回顾昨天写过的代码呀 布尔类型和比较运算符 布尔类型的定义 使用比较运算符进行比较运算得到布尔类型的结果 比较运算符 """ 演示布尔类型的定义 以及比较运算符的应用 ​ """…