用于视频生成的扩散模型

news2024/10/3 10:34:40

学习自https://lilianweng.github.io/posts/2024-04-12-diffusion-video/

文章目录

  • 3D UNet和DiT
    • VDM
    • Imagen Video
    • Sora
  • 调整图像模型生成视频
    • Make-A-Video(对视频数据微调)
    • Tune-A-Video
    • Gen-1
    • 视频 LDM
    • SVD稳定视频扩散
  • 免训练
    • Text2Video-Zero
    • ControlVideo
  • 参考文献

3D UNet和DiT

VDM

空间上

  1. 2D卷积扩展为3D卷积,具体操作 3 × 3 3\times3 3×3 替换成 1 × 3 × 3 1\times3\times3 1×3×3

     提高计算效率,增强网络非线性和表示能力,优化网络深度和结构
    
  2. 空间注意力块考虑像素之间的空间关系,第一个轴用来区分不同的批次或样本

     保持空间信息有效性,利用批次处理提高训练和推理的效率
    

时间上

在空间注意块之后添加时间注意块,在第一轴执行操作。相对位置嵌入用于跟踪帧的顺序,时间注意模块可以捕获良好的时间连贯性。

在这里插入图片描述

Imagen Video

  1. 冻结的文本编码器提供文本嵌入作为条件

  2. 交错空间和时间超分扩散模型的级联
    在这里插入图片描述

     - SSR(Scene Structure Representation): 指的是对视频中的场景结构进行建模和表示的方法。
     场景结构可以理解为视频中不同场景或镜头之间的关系和转换。
     SSR的目标是捕捉视频中的场景切换、场景内部的动作和对象交互等信息,以便后续的分析和处理。
     - TSR(Temporal Structure Representation): 指的是对视频中的时间结构进行建模和表示的方法。
     时间结构涉及到视频中不同时间点或时间段的关系和变化。
     TSR的目标是分析和描述视频中的时间序列信息,如动作的持续时间、速度的变化等。
     - SSR 通过双线性调整大小(基于双线性插值)进行上采样,而 TSR 通过重复帧或填充空白帧来上采样。
    
  3. 对具有共享参数的帧执行空间操作,时间层跨帧混合捕获时间连贯性。
    在这里插入图片描述

  4. 应用渐进式蒸馏来加快取样速度,每次蒸馏迭代都可以将所需的取样步骤减少一半。

     模型蒸馏:蒸馏技术能够将大型复杂模型的知识和性能转移到更小、更快速的模型中,从而节省计算资源和内存消耗。
     主要包括以下几个步骤:大模型准备、目标模型选择(小模型)、大模型软标签生成、目标模型训练、temperature参数控制模型泛化收敛和稳定性、性能评估。
    

Sora

Sora运用DiT结构,在视频和图像潜在编码时空token上运行,视觉输入为时间token充当transformer的输入标记。

在这里插入图片描述

调整图像模型生成视频

可以通过插入时间层“膨胀”预训练的文本到图像的扩散模型,只对视频数据微调新层,或者完全避免额外训练。新模型具有文本-图像对的先验,降低对文本-视频对数据的要求。

Make-A-Video(对视频数据微调)

在这里插入图片描述
最终推理目标: y ^ t = SR h ∘ SR l t ∘ ↑ F ∘ D t ∘ P ∘ ( x ^ , CLIP text ( x ) ) \hat{\mathbf{y}}_t = \text{SR}_h \circ \text{SR}^t_l \circ \uparrow_F \circ D^t \circ P \circ (\hat{\mathbf{x}}, \text{CLIP}_\text{text}(\mathbf{x})) y^t=SRhSRltFDtP(x^,CLIPtext(x))
在这里插入图片描述
时空SR层包括伪3D Convo层(左)和伪3D注意力层(右):
在这里插入图片描述
Conv P3D = Conv 1D ( Conv 2D ( h ) ∘ T ) ∘ T Attn P3D = flatten − 1 ( Attn 1D ( Attn 2D ( flatten ( h ) ) ∘ T ) ∘ T ) \begin{aligned} \text{Conv}_\text{P3D} &= \text{Conv}_\text{1D}(\text{Conv}_\text{2D}(\mathbf{h}) \circ T) \circ T \\ \text{Attn}_\text{P3D} &= \text{flatten}^{-1}(\text{Attn}_\text{1D}(\text{Attn}_\text{2D}(\text{flatten}(\mathbf{h})) \circ T) \circ T) \end{aligned} ConvP3DAttnP3D=Conv1D(Conv2D(h)T)T=flatten1(Attn1D(Attn2D(flatten(h))T)T)

输入张量 h \mathbf{h} h ∘ T \circ T T时间和空间维度之间的交换, flatten ( . ) \text{flatten}(.) flatten(.)是要转换的矩阵运算符 h \mathbf{h} h成为 h ’ ∈ R B × C × F × H × W \mathbf{h}’ \in \mathbb{R}^{B \times C \times F \times H \times W} hRB×C×F×H×W flatten − 1 ( . ) \text{flatten}^{-1}(.) flatten1(.)反转这一过程。

训练流程:首先仅对图像进行训练(文本对不参与),添加新时态层对未标记的视频数据微调。

Tune-A-Video

给定一个包含 m m m框架 V = { v i ∣ i = 1 , … , m } \mathcal{V} = \{v_i \mid i = 1, \dots, m\} V={vii=1,,m}和描述性提示 τ \tau τ,基于微编辑和相关的文本提示 τ ∗ \tau^* τ生成新视频 V ∗ \mathcal{V}^* V

Tune-A-Video的Unet集成了ST-Attention 时空注意力模块,查询前几帧的相关位置获得时间一致性。对于潜在特征 v i v_i vi,前一帧 v i − 1 v_{i-1} vi1和第一帧 v 1 v_1 v1得到
Q = W Q z v i , K = W K [ z v 1 , z v i − 1 ] , V = W V [ z v 1 , z v i − 1 ] O = softmax ( Q K ⊤ d ) ⋅ V \begin{aligned} &\mathbf{Q} = \mathbf{W}^Q \mathbf{z}_{v_i}, \quad \mathbf{K} = \mathbf{W}^K [\mathbf{z}_{v_1}, \mathbf{z}_{v_{i-1}}], \quad \mathbf{V} = \mathbf{W}^V [\mathbf{z}_{v_1}, \mathbf{z}_{v_{i-1}}] \\ &\mathbf{O} = \text{softmax}\Big(\frac{\mathbf{Q} \mathbf{K}^\top}{\sqrt{d}}\Big) \cdot \mathbf{V} \end{aligned} Q=WQzvi,K=WK[zv1,zvi1],V=WV[zv1,zvi1]O=softmax(d QK)V

微调体现在哪里?
微调期间只有ST-Attn和Cross-Attn中query的投影更新,保留先前的文本到图像知识。ST-Attn提高时空一致性,Cross-Attn优化文本-视频对齐。

在这里插入图片描述

Gen-1

分开考虑视频的结构和内容 p ( x ∣ s , c ) p(\mathbf{x} \mid s, c) p(xs,c)

  • 内容 c c c主要是外观语义信息,嵌入CLIP
  • 结构 s s s主要描述几何和动力学,使用深度估计或者其他特定任务的侧面信息。

残差块中的每个2D空间convo层之后添加1D时态convo,2D空间注意块之后添加1D时态注意力块。Training,结构变量s与潜在变量z连接,内容变量c在cross-attn中提供。Inference,
在这里插入图片描述

视频 LDM

训练LDM,对模型进行微调,然后生成添加时间维度的视频。时间层 { l ϕ i ∣ i =   1 , … , L } \{l^i_\phi \mid i = \ 1, \dots, L\} {lϕii= 1,,L}和空间层 l θ i l^i_\theta lθi交错,在微调时保持冻结。视频LDM以低fps生成关键帧,通过两个步骤的潜在插帧提高fps。
在这里插入图片描述

LDM预训练自编码看不到视频容易产生闪烁的伪影,因此,在解码器中添加了额外的时间层,使用3D卷积够早的时间判别器微调。在时间解码器微调期间,冻结的编码器独立处理视频中的每一帧,并使用视频感知鉴别器跨帧强制执行时间连贯的重建。
在这里插入图片描述

SVD稳定视频扩散

主要三个阶段:T2I预训练、视频预训练和视频微调
其他技术:三种不同的字幕模型。删除运动少的剪辑,过多的文本和较低美学价值的帧。
首先生成远距离关键帧,为了保证高质量的时间一致性,使用STUNet通过一次生成视频的持续时间消除对TSR的依赖。
STUNet 膨胀了预训练的文本到图像 U-net,以便能够在时间和空间维度上对视频进行下采样和上采样。基于 Convo 的模块由预先训练的文本到图像层组成,然后是因式分解的时空卷积。在最粗糙的 U-Net 级别,基于注意力的块包含预先训练的文本到图像,然后是时间注意力。只有新添加的层才会进行进一步的训练。
在这里插入图片描述

免训练

Text2Video-Zero

通过增强具有两个关键时间一致性的预训练图像扩线模型,实现zero-shot、免训练的视频生成:

  1. 使用运动动力学对潜在代码序列进行采样,以保持全局场景和背景时间的一致性
  2. 使用新跨帧注意机制重新编程帧级自注意,保留前景对象的上下文、外观和标识。

在这里插入图片描述
在这里插入图片描述
x T ′ 1 = DDIM-backward ( x T 1 , Δ t )  where  T ′ = T − Δ t W k ← a warping operation of  δ k = λ ( k − 1 ) δ x ~ T ′ k = W k ( x T ′ 1 ) x T k = DDIM-forward ( x ~ T ′ k , Δ t )  for  k = 2 , … , m \begin{aligned} \mathbf{x}^1_{T'} &= \text{DDIM-backward}(\mathbf{x}^1_T, \Delta t)\text{ where }T' = T - \Delta t \\ W_k &\gets \text{a warping operation of }\boldsymbol{\delta}^k = \lambda(k-1)\boldsymbol{\delta} \\ \tilde{\mathbf{x}}^k_{T'} &= W_k(\mathbf{x}^1_{T'})\\ \mathbf{x}^k_T &= \text{DDIM-forward}(\tilde{\mathbf{x}}^k_{T'}, \Delta t)\text{ for }k=2, \dots, m \end{aligned} xT1Wkx~TkxTk=DDIM-backward(xT1,Δt) where T=TΔta warping operation of δk=λ(k1)δ=Wk(xT1)=DDIM-forward(x~Tk,Δt) for k=2,,m

此外,Text2Video-Zero将预训练SD模型中的自注意力层替换为新的跨帧注意力机制,并参考第一帧。其动机是在整个生成的视频中保留有关前景对象的外观、形状和身份的信息。
Cross-Frame-Attn ( Q k , K 1 : m , V 1 : m ) = Softmax ( Q k ( K 1 ) ⊤ c ) V 1 \text{Cross-Frame-Attn}(\mathbf{Q}^k, \mathbf{K}^{1:m}, \mathbf{V}^{1:m}) = \text{Softmax}\Big( \frac{\mathbf{Q}^k (\mathbf{K}^1)^\top}{\sqrt{c}} \Big) \mathbf{V}^1 Cross-Frame-Attn(Qk,K1:m,V1:m)=Softmax(c Qk(K1))V1
平滑北京和扩散步骤中合并实际和扭曲的潜在代码t
x ˉ t k = M k ⊙ x t k + ( 1 − M k ) ⊙ ( α x ~ t k + ( 1 − α ) x t k ) for  k = 1 , … , m \bar{\mathbf{x}}^k_t = \mathbf{M}^k \odot \mathbf{x}^k_t + (1 − \mathbf{M}^k) \odot (\alpha\tilde{\mathbf{x}}^k_t +(1−\alpha)\mathbf{x}^k_t)\quad\text{for }k=1, \dots, m xˉtk=Mkxtk+(1Mk)(αx~tk+(1α)xtk)for k=1,,m
这里的 x t k \mathbf{x}^k_t xtk是实际的潜码, x ~ t k \tilde{\mathbf{x}}^k_t x~tk是背景上扭曲的潜码, α \alpha α是超参。

ControlVideo

在ControlNet基础上添加了三个新的机制

  1. 跨帧注意机制
  2. 交错帧平滑器
  3. 分层采样器

在这里插入图片描述

参考文献

[1] Cicek et al. 2016. “3D U-Net: Learning Dense Volumetric Segmentation from Sparse Annotation.”

[2] Ho & Salimans, et al. “Video Diffusion Models.” 2022 | webpage

[3] Bar-Tal et al. 2024 “Lumiere: A Space-Time Diffusion Model for Video Generation.”

[4] Brooks et al. “Video generation models as world simulators.” OpenAI Blog, 2024.

[5] Zhang et al. 2023 “ControlVideo: Training-free Controllable Text-to-Video Generation.”

[6] Khachatryan et al. 2023 “Text2Video-Zero: Text-to-image diffusion models are zero-shot video generators.”

[7] Ho, et al. 2022 “Imagen Video: High Definition Video Generation with Diffusion Models.”

[8] Singer et al. “Make-A-Video: Text-to-Video Generation without Text-Video Data.” 2022.

[9] Wu et al. “Tune-A-Video: One-Shot Tuning of Image Diffusion Models for Text-to-Video Generation.” ICCV 2023.

[10] Blattmann et al. 2023 “Align your Latents: High-Resolution Video Synthesis with Latent Diffusion Models.”

[11] Blattmann et al. 2023 “Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets.”

[12] Esser et al. 2023 “Structure and Content-Guided Video Synthesis with Diffusion Models.”

[13] Bar-Tal et al. 2024 “Lumiere: A Space-Time Diffusion Model for Video Generation.”

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

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

相关文章

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【密钥协商(ArkTS)】

密钥协商(ArkTS) 以协商密钥类型为X25519 256,并密钥仅在HUKS内使用为例,完成密钥协商。 开发步骤 生成密钥 设备A、设备B各自生成一个非对称密钥,具体请参考[密钥生成]或[密钥导入]。 密钥生成时,可指定参数HUKS_TAG_DERIVE…

STL--栈(stack)

stack 栈是一种只在一端(栈顶)进行数据插入(入栈)和删除(出栈)的数据结构,它满足后进先出(LIFO)的特性。 使用push(入栈)将数据放入stack,使用pop(出栈)将元素从容器中移除。 使用stack,必须包含头文件: #include<stack>在头文件中,class stack定义如下: namespace std…

前端面试题32(浅谈前端热部署)

前端热部署&#xff08;Hot Deployment&#xff09;是指在开发过程中&#xff0c;当开发者修改了前端代码后&#xff0c;这些修改能够立即反映到正在运行的前端应用上&#xff0c;而无需重新启动整个应用或服务器。这种能力极大地提高了开发效率&#xff0c;因为开发者可以即时…

算法学习笔记(8.2)-动态规划入门进阶

目录 问题判断: 问题求解步骤&#xff1a; 图例&#xff1a; 解析&#xff1a; 方法一&#xff1a;暴力搜索 实现代码如下所示&#xff1a; 解析&#xff1a; 方法二&#xff1a;记忆化搜索 代码示例&#xff1a; 解析&#xff1a; 方法三&#xff1a;动态规划 空间…

如何在JetBrains中写Codeforce?

目录 前言 正文 leetcode 个人喜好 参考资料 具体操作步骤 尾声 &#x1f52d; Hi,I’m Pleasure1234&#x1f331; I’m currently learning Vue.js,SpringBoot,Computer Security and so on.&#x1f46f; I’m studying in University of Nottingham Ningbo China&#x1f4…

硬件:CPU和GPU

一、CPU与GPU 二、提升CPU利用率&#xff1a;计组学过的 1、超线程一般是给不一样的任务的计算使用&#xff0c;而非在计算密集型工作中 2、Cpu一次可以计算一个线程&#xff0c;而gpu有多少个绿点一次就能计算多少个线程&#xff0c;Gpu比cpu快是因为gpu它的核多&#xff0c;…

如何在 PostgreSQL 中确保数据的异地备份安全性?

文章目录 一、备份策略1. 全量备份与增量备份相结合2. 定义合理的备份周期3. 选择合适的备份时间 二、加密备份数据1. 使用 PostgreSQL 的内置加密功能2. 使用第三方加密工具 三、安全的传输方式1. SSH 隧道2. SFTP3. VPN 连接 四、异地存储的安全性1. 云存储服务2. 内部存储设…

RK3568------Openharmony 4.0-Release WIFI/BT模组适配

RK3568------Openharmony 4.0-Release WIFI/BT模组(ap6236)适配 文章目录 RK3568------Openharmony 4.0-Release WIFI/BT模组(ap6236)适配前言一、驱动移植二、设备树配置三 、内核配置四、遇到的问题五、效果展示总结 前言 随着RK3568适配工作的推进&#xff0c;整体适配工作…

泛微E9开发 控制日期浏览按钮的可选日期范围

控制日期浏览按钮的可选日期范围 1、需求说明2、实现方法3、扩展知识点控制日期浏览按钮的可选日期范围格式参数说明演示 1、需求说明 控制日期浏览按钮的可选日期范围为2024/07/01~2024/07/31&#xff0c;如下图所示 2. 控制日期浏览按钮的可选日期范围在当前时间的前一周~当…

【基于R语言群体遗传学】-13-群体差异量化-Fst

在前几篇博客中&#xff0c;我们深度学习讨论了适应性进化的问题&#xff0c;从本篇博客开始&#xff0c;我们关注群体差异的问题&#xff0c;建议大家可以先看之前的博客&#xff1a;群体遗传学_tRNA做科研的博客-CSDN博客 一些新名词 Meta-population:An interconnected gro…

4:表单和通用视图

表单和通用视图 1、编写一个简单的表单&#xff08;1&#xff09;更新polls/detail.html文件 使其包含一个html < form > 元素&#xff08;2&#xff09;创建一个Django视图来处理提交的数据&#xff08;3&#xff09;当有人对 Question 进行投票后&#xff0c;vote()视图…

Proteus + Keil单片机仿真教程(五)多位LED数码管的静态显示

Proteus + Keil单片机仿真教程(五)多位LED数码管 上一章节讲解了单个数码管的静态和动态显示,这一章节将对多个数码管的静态显示进行学习,本章节主要难点: 1.锁存器的理解和使用; 2.多个数码管的接线封装方式; 3.Proteus 快速接头的使用。 第一个多位数码管示例 元件…

谷歌云 | Gemini 大模型赋能 BigQuery 情感分析:解码客户评论,洞悉市场风向

情感分析是企业洞察客户需求和改进产品服务的重要工具。近年来&#xff0c;随着自然语言处理 (NLP) 技术的飞速发展&#xff0c;情感分析变得更加精准高效。Google 推出的 Gemini 模型&#xff0c;作为大型语言模型 (LLM) 的代表&#xff0c;拥有强大的文本处理能力&#xff0c…

共生与变革:AI在开发者世界的角色深度剖析

在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;已不再是遥不可及的概念&#xff0c;而是逐步渗透到我们工作与生活的每一个角落。对于开发者这一群体而言&#xff0c;AI的崛起既带来了前所未有的机遇&#xff0c;也引发了关于其角色定位的深刻讨论——AI…

electron在VSCode和IDEA及webStrom等编辑器控制台打印日志乱码

window10环境下设置 1.打开Windows设置 2.打开时间和语言&#xff0c;选择语言菜单、如何点击管理语言设置 3.打开之后选择管理&#xff0c;选择更改系统区域设置&#xff0c;把Beta版&#xff1a;使用Unicode UTF-8提供全球语言支持 勾上&#xff0c;点击确定&#xff0c;…

氛围感视频素材高级感的去哪里找啊?带氛围感的素材网站库分享

亲爱的创作者们&#xff0c;大家好&#xff01;今天我们来聊聊视频创作中至关重要的一点——氛围感。一个好的视频&#xff0c;不仅要有视觉冲击力&#xff0c;还要能够触动观众的情感。那我们应该去哪里寻找这些充满氛围感且高级的视频素材呢&#xff1f;别急&#xff0c;我这…

isaac sim 与 WLS2 ros2实现通信

Omniverse以及isaac还是windows下使用顺手一点&#xff0c;但是做跟ros相关的开发时候&#xff0c;基本就得迁移到ubuntu下了&#xff0c;windows下ros安装还是过于复杂&#xff0c;那不想用双系统或者ubuntu或者虚拟机&#xff0c;有啥别的好方法呢&#xff1f;这里想到了wind…

希喂、鲜朗和牧野奇迹主食冻干怎么样?第一次喂冻干哪款更好

我是个宠物医生&#xff0c;每天很长时间都在跟猫猫狗狗打交道&#xff0c;送到店里来的猫猫状态几乎是一眼就能看出来&#xff0c;肥胖、肝损伤真是现在大部分家养猫正面临的&#xff0c;靠送医治疗只能减缓无法根治&#xff0c;根本在于铲屎官的喂养方式。 从业这几年&#…

打开ps提示dll文件丢失如何解决?教你几种靠谱的方法

在日常使用电脑过程中&#xff0c;由于不当操作&#xff0c;dll文件丢失是一种常见现象。当dll文件丢失时&#xff0c;程序将无法正常运行&#xff0c;比如ps&#xff0c;pr等待软件。此时&#xff0c;我们需要对其进行修复以恢复其功能&#xff0c;下面我们一起来了解一下出现…

EtherCAT总线冗余让制造更安全更可靠更智能

冗余定义 什么是总线冗余功能&#xff1f;我们都知道&#xff0c;EtherCAT现场总线具有灵活的拓扑结构&#xff0c;设备间支持线型、星型、树型的连接方式&#xff0c;其中线型结构简单、传输效率高&#xff0c;大多数的现场应用中也是使用这种连接方式&#xff0c;如下图所示…