StreamingT2V

下面首先是参考的一些博客 https://blog.csdn.net/qq_44681809/article/details/137081515

qustion

  • SDEdit:就是给图片加一点噪声然后再用模型去噪,来获得一个更好的帧,比如去掉伪影和污点

  • 这里的分割为m个24帧的块,块与块之间已经有8帧重叠了吗?,就是在分割的时候按重叠分d perservation的吗?

  • 由代码可以看出,它是按照每24帧中间重叠8帧的方式,做好分配规划后,提前取原视频的前trim_length帧,然后再喂给模型去做生成

  • 按照这里的采样的新噪声是采了F-O个帧的来看,是在切分为24帧块的时候就已经把重叠做好了,,,,,不一定,噪声是共享的,但不能说明在切分为24帧块的时候是怎么切的,前好的前一块和后一块公共部分一模一样?还是独立的?还是?
    • 猜测从低分辨率视频的切分应该是前一个块和后一个块不关联的切分,没有太大关系,由于生成也是一块一块生的(生成的时候是每次生成都一样的帧数吗?是24吗?),所以在块和块之间会不一致,所以要解决这个问题
  • 所以这做到了共享噪声

  • 这是什么意思

  • 这里的更新整个长视频的重叠帧是什么意思,是从前一个块的重叠区域取一些帧,从后一个块的重叠区域取一些帧,然后凑成8帧,然后用这个新8帧再替换掉前一个块和后一个块的重叠的8帧是吗?还是把两块儿连在一起,只用一个,相当于去掉8帧?如果是前面一种情况,那初始分块的时候是怎么分的呢,按照这个取的规则,如果刚开始随机一个F_thr为1或者8,那就相当于用一个块的部分替换另一个一个块的部分了,所以初始分块的时候是完全切割分的吗,当然这和生成是怎么生成有关
    • 在每一个t的去噪过程中,同一个块内还要做时间时间层面的注意力什么的,这种应该也会让重叠帧和块内其它帧做内容上的对齐

https://blog.csdn.net/v_JULY_v/article/details/136845242

https://blog.csdn.net/qq_29788741/article/details/137077902

  • 这段长达 1200 帧的 2 分钟视频来自一个文生视频(text-to-video)模型,尽管 AI 生成的痕迹依然浓重,但我们必须承认,其中的人物和场景具有相当不错的一致性。这是如何办到的呢?要知道,虽然近些年文生视频技术的生成质量和文本对齐质量都已经相当出色,但大多数现有方法都聚焦于生成短视频(通常是 16 或 24 帧长度)。然而,适用于短视频的现有方法通常无法用于长视频(≥ 64 帧)。即使是生成短序列,通常也需要成本高昂的训练,比如训练步数超过 260K,批大小超过 4500。如果不在更长的视频上进行训练,通过短视频生成器来制作长视频,得到的长视频通常质量不佳。而现有的自回归方法(通过使用短视频后几帧生成新的短视频,进而合成长视频)也存在场景切换不一致等一些问题。
    为了克服现有方法的缺点和局限,Picsart AI Resarch 等多个机构联合提出了一种新的文生视频方法:StreamingT2V。这也是一种自回归方法,并配备了长短期记忆模块,进而可以生成具有时间一致性的长视频。

summary

  • 该团队提出了条件注意力模块(CAM)。得益于其注意力性质,它可以有效地借用之前帧的内容信息来生成新的帧,同时还不会让之前帧的结构 / 形状限制新帧中的运动情况。
  • 而为了解决生成的视频中人与物外观变化的问题,该团队又提出了外观保留模块(APM):其可从一张初始图像(锚帧)提取对象或全局场景的外观信息,并使用该信息调节所有视频块的视频生成过程。
  • 为了进一步提升长视频生成的质量和分辨率,该团队针对自回归生成任务对一个视频增强模型进行了改进。为此,该团队选择了一个高分辨率文生视频模型并使用了 SDEdit 方法来提升连续 24 帧(其中有 8 帧重叠帧)视频块的质量。
  • 为了使视频块增强过渡变得平滑,他们还设计了一种随机混合方法,能以无缝方式混合重叠的增强过的视频块

  • 这两个T2V是同一个模型吗?
    • 根据代码中来看是的
    • 上面的是初始阶段
    • 上面是自回归阶段

StreamingT2V: Consistent, Dynamic, and Extendable Long Video Generation from Text

摘要

  • 现有方法大多集中在生成高质量的短视频(通常为 16 或 24 帧),当简单地扩展到长视频合成时,会出现硬切换(hardcuts)

  • StreamingT2V,是一种用于生成 80、240、600、1200 帧或更多帧具有平滑过渡的长视频的自回归方法

  • 关键组件包括:

    • 一种短期记忆块,称为条件注意力模块(conditional attention module,CAM),它通过注意机制将当前生成与从先前块(chunk)提取的特征相关联,从而实现一致的块过渡
    • 一种长期记忆块,称为外观保持模块(Appearance Preservation Module,APM),它从第一个视频块中提取高级场景和对象特征,以防止模型忘记初始场景
    • 一种随机混合(randomized blending)方法,使得将视频增强器自回归地应用于无限长视频时,不会出现块之间的不一致性
  • StreamingT2V,这是一种高质量的无缝文本到长视频生成器,其在一致性和运动方面优于竞争对手

  • 问题:如果将长期记忆模块的锚帧换为自己的图片,不知道能不能做T+I to V的生成?或者将T2V换的模型换位I2V的模型,不知道能不变成T to V的生成?

相关工作

  • 以前的长视频生成工作
  • DynamiCrafter-XL [43],在每个文本交叉注意力中增加一个图像交叉注意力,这导致更好的质量,但仍然导致块之间频繁的不一致性

Preliminary

  • StreamingT2V,是一个在VQ-GAN自动编码器D(E(·))的潜在空间上操作的扩散模型,其中E和D分别是对应的编码器和解码器
  • 给定一个视频V ∈ R_F×H×W×3,它的潜在代码x0 ∈ R_F×h×w×c是通过逐帧应用编码器获得的

方法

  • 我们首先生成了 256 × 256 分辨率的长视频,时长为 5 秒(16fps),然后将它们提升到更高分辨率(720 × 720),整个流程的概述如下图所示

  • 长视频生成部分包括:

    • (初始化阶段)通过预先训练的文本到视频模型(例如可以使用 Modelscope [39])合成第一个 16 帧块(chunk),
    • 以及(Streaming T2V 阶段)通过自回归方式为后续帧生成新内容。对于自回归(见图 3),我们提出了条件注意力模块(CAM),利用前一块的最后 F_cond = 8 帧的短期信息,实现块之间的无缝过渡。此外,我们利用外观保持模块(APM),从一个固定的锚定帧中提取长期信息,使自回归过程在生成过程中能够稳健地保留对象外观或场景细节
    • 在生成了长视频(80、240、600、1200 帧或更多)之后,我们应用流式细化阶段(Streaming Refinement Stage),通过自回归方式应用高分辨率文本到短视频模型(例如可以使用 MS-Vid2Vid-XL [48]),并配备我们的随机混合方法进行无缝的块处理。后一步骤无需额外训练,因此使我们的方法在较低的计算成本下实现。
  • 问题:先生成80帧,然后进行第三阶段,然后再生成剩下的帧?

  • 每次生成16帧,以及输入生成多少次,自回归完后,再去第三阶段

  • 上面是附录里给的详细参数

条件注意力模块

  • 我们利用了文本到视频模型的预训练能力(例如 Modelscope [39]),作为长视频生成的先验,以自回归的方式进行,在接下来的写作中,我们将这个预训练的文本到(短)视频模型称为 Video-LDM。

  • 为了通过前一块的一些短期信息(见图 2,中)自回归地调节 Video-LDM,受 ControlNet [46] 的启发,我们提出了条件注意力模块(CAM),它由特征提取器和一个注入到 Video-LDM UNet 中的特征注入器组成

    • 特征提取器利用逐帧图像编码器 E_cond,这个用的VQ-GAN的编码器
    • 后跟与 Video-LDM UNet 到其中间层相同编码器层(并使用 UNet 的权重进行初始化),这里CAM的特征注入器应该是直接把Video-LDM的前一半拿过来,然后再可训练
  • 对于特征注入,我们让 UNet 中的每个长距离跳连接通过交叉注意力来关注由 CAM 生成的相应特征。

  • 令 x 表示在零卷积后的 E_cond 的输出

    • 为什么要有零卷积
  • 我们使用加法,将 x 与 CAM 的第一个时间 transformer 块的输出融合

    • 为什么要有个这部分?
      • 时间特征的捕捉:时间变换器模块(temporal transformer block)设计用来处理时间序列数据,它可以捕捉视频帧序列之间的时间动态和关联性
      • 噪声的作用:向数据添加噪声并通过模型去除这些噪声的过程能够帮助模型学习如何在帧之间填充正确的时间动态
      • 数据增强:通过噪声添加和去除的过程也可以被看作是一种数据增强技术,它可以帮助模型变得更加鲁棒,能够处理更多的不确定性
    • 这里的直接相交操作是通道数变多了,还是逐元素值相加
  • 对于将 CAM 的特征注入到 Video-LDM Unet 中,我们考虑 UNet 的跳跃连接特征x_SC ∈ R^(b×F×h×w×c)。

    • 我们对 x_SC 应用时空分组归一化(spatio-temporal group norm),并在 x_SC 上应用线性投影 P_in
      • 空间-时间组归一化会考虑一个视频块(或帧序列)的所有帧,并在整个块中同时对空间和时间维度进行归一化。这有助于网络捕捉到视频中的运动模式和其他时间动态,同时减少内部协变量偏移(internal covariate shift)
      • 在神经网络中使用的空间-时间组归一化(spatio-temporal group norm)通常指的是对数据进行规范化处理,以使得数据的分布具有固定的均值和标准差(例如均值为0,标准差为1),这样的处理有利于模型的训练和泛化
      • 线性投影通常是一个全连接层或者线性层,没有激活函数,作用是将输入数据(这里是归一化后的特征)映射到另一个空间,作用可能是特征转换、降维/升维、数据预处理
    • 让 x′_SC ∈ R^((b·w·h)×F×c) 表示重塑后的张量,我们通过时间多头注意力(T-MHA),即对每个空间位置(和 batch)独立地
      • 对每个batch下的像素都做
    • 令 x′_SC 以相应的 CAM 特征 x_CAM ∈ R^((b·w·h)×F_cond×c) 为条件,其中 F_cond 是条件帧的数量,对于查询、键和值,使用可学习的线性映射 P_Q、P_K、P_V,我们应用 TMHA,其中键和值来自 x_CAM,而查询来自 x′_SC,即
    • 最后,我们使用线性投影 P_out。通过使用适当的重塑操作 R,将 CAM 的输出添加到跳跃连接中(与 ControlNet [46] 中的方式相同)
  • 因此,x′′′ 在 UNet 的解码器层中使用。投影 P_out 是零初始化的,因此在训练开始时,CAM 不会影响基础模型的输出,这有助于提高训练的收敛性。

外观保持模块

  • 自回归视频生成器通常会忘记初始对象和场景特征,导致外观变化严重
  • 为了解决这个问题,我们利用提出的外观保持模块(APM)来结合长期记忆,利用第一个块的固定锚定帧中包含的信息
    • 我们将锚定帧的 CLIP [25] 图像 token 与文本指令中的 CLIP 文本 token 混合,通过使用线性层将 clip 图像 token 扩展为 k = 8 个 token,并在 token 维度上连接文本和图像编码,然后使用投影块,得到 x_mixed ∈ R^(b×77×1024)
    • 对于每个交叉注意力层 l,我们引入一个权重 α_l ∈ R(初始化为 0),通过对 x_mixed 和文本指令的常规 CLIP 文本编码的加权和来执行交叉注意力
    • 第 5.3 节的实验表明,轻量级的 APM 模块有助于在自回归过程中保持场景和身份特征(见图 6)
  • 1D卷积可以沿着时间轴扫描并提取特征,识别序列中的局部模式,例如视频帧之间的运动变化或连续性

自回归视频增强

  • 为了进一步提高我们文本到视频结果的质量和分辨率,我们利用一个高分辨率(1280x720)的文本到(短)视频模型(Refiner Video-LDM,见图 3),自回归地增强生成视频的 24 帧块

  • 使用文本到视频模型作为 24 帧块的精化器/增强器是通过将大量噪声添加到输入视频块中,并使用文本到视频扩散模型(SDEdit [22] 方法)进行去噪来实现的

    • SDEdit:就是给图片加一点噪声然后再用模型去噪,来获得一个更好的帧,比如去掉伪影和污点
  • 更具体地说,

    • 我们采用高分辨率文本到视频模型(例如 MS-Vid2Vid-XL [40, 48]),
      • MS-Vid2Vid-XL是什么分辨率的
    • 以及首先通过双线性上采样 [2] 将 24 帧的低分辨率视频块上采样到目标高分辨率,
    • 然后我们使用图像编码器 E 对帧进行编码,以获得潜在代码 x0
    • 然后,我们应用 T′ < T 个前向扩散步骤,以便 x_T′ 仍包含信号信息(主要是关于视频结构)
    • 并使用高分辨率视频扩散模型进行去噪。
  • 然而,独立增强每个块的简单方法会导致不一致的过渡(见图 4 (a))

  • 我们通过在连续块之间使用共享噪声并利用我们的随机混合方法来解决这个问题

  • 给定我们的低分辨率长视频,我们将其分割成 m 个长度为 F = 24 帧的块 V1,…,Vm,以便每两个连续的块具有 O = 8 帧的重叠

    • 切分的时候就让它重叠8帧切的吗?
      • 是的,上面有代码
  • 从 T′ 开始,我们必须采样噪声来执行一个去噪步骤,我们从第一个块 V1 开始,并采样噪声 ϵ_1 ∼ N(0, I),其中 ϵ_1 ∈ R^(F×h×w×c)。对于每个后续块 V_i,i > 1,我们采样噪声 ˆϵi ∼ N(0, I),其中 ˆϵi ∈ R^((F−O)×h×w×c),并沿帧维度将其与前一个块的 O 个重叠帧的噪声链接


  • 如果直接用 ϵ \epsilon ϵi进行Vi块的加噪去噪,得到X_t-1(i) ,这种方法并不足以消除过渡不一致(见图 4 (b))。

  • 为了显著提高一致性,我们提出了随机混合方法。考虑到连续两个块 V_(i−1)、Vi 在去噪步骤 t−1 时的潜在编码

  • 块 V_(i−1) 的潜在编码 x_(t−1) (i−1) 在其前几帧到重叠帧之间具有平滑过渡,而块 Vi 的潜在编码 x_(t−1) (i) 在重叠帧到其后续帧之间具有平滑过渡。因此,我们通过串联两个潜在编码来组合它们:随机从 {0, . . . ,O} 中采样一个帧索引 f_thr,然后从中取前 f_thr 帧的潜在编码,从中取从 fthr + 1 开始的帧的潜在编码

  • 然后,我们更新整个长视频的潜在编码 x_(t−1) 上的重叠帧,并执行下一个去噪步骤

  • 通过在重叠区域中使用潜在编码的概率混合,我们成功地减少了块之间的不一致性(见图 4©)。

  • 问题:这里的更新重叠帧是指怎么更新?

    • 整个视频序列是连着的,然后把重叠部分替换掉
  • MS-Vid2Vid由达摩院研发和训练,主要用于提升文生视频、图生视频的分辨率和时空连续性,其训练数据包含了精选的海量的高清视频、图像数据(最短边>720),可以将低分辨率的(16:9)的视频提升到更高分辨率(1280 * 720),可以用于任意低分辨率的的超分

  • 最终生成的视频大小是多少?

  • unet的网络最后一维是512,但为什么初始生成的视频是256?
    -可能在unet后面又做了其它处理,这得仔细看代码

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

抖音 通用交易系统 下单 密钥生成

已PHP为例 前提提条件 必须在 linux 系统中 生成 准备工作 接下来打开命令 执行命令即可 openssl genrsa -out private_key.pem 2048 rsa -in private_key.pem -pubout -out public_key.pem exit 会生成 公匙和 私匙 在小程序中 将 生成应用公匙 复制到小程序后台 在执行…

C++ 概览并发

并发 资源管理 资源 程序中符合先获取后释放&#xff08;显式或隐式&#xff09;规律的东西&#xff0c;比如内存、锁、套接字、线程句柄和文件句柄等。RAII&#xff1a; (Resource Acquisition Is Initialization),也称为“资源获取就是初始化”&#xff0c;是C语言的一种管…

C语言-设置控制台信息

Win_API Win_API是Windows应用程序接口&#xff08;Windows Application Programming Interface&#xff09;的缩写&#xff0c;它是一组函数、系统服务和程序接口&#xff0c;允许开发者在微软Windows操作系统上创建应用程序。Win32 API 是Windows API的一个主要部分&#xff…

测试用例执行的结果pass_fail_block_skip

pass fail block skip 测试用例的执行结果通常包括以下几个方面&#xff1a; 1. **测试结果状态**&#xff1a;通常分为“通过”、“失败”、“阻塞”和“跳过”等状态。 - **通过**&#xff1a;测试用例执行完毕&#xff0c;预期结果与实际结果一致。 - **失败**&am…

C++ 多态(一)

一、多态定义 同一种操作作用于不同的对象时&#xff0c;可以产生不同的行为。在面向对象编程中&#xff0c;多态性是指通过继承和重写实现的&#xff0c;同一个方法在不同的子类中可以表现出不同的行为。多态性可以提高代码的灵活性和可扩展性&#xff0c;使得程序更易于维护…

Golang中实现调用Windows API向指定目标发送ARP请求

简介 Go库中很多实现的arp都是支持osx/linux/bsd之类的&#xff0c; 但几乎没有支持windows的&#xff0c; 也试了一些方式&#xff0c; 目前还是选用调用windows的API&#xff0c; 记录一下这一次windows的API的调用经验。 实现 代码 package main/* #cgo CFLAGS: -I. #cgo …

Altium Designer——检查原理图库正确性并生成报告

一、方法&#xff1a; 1.打开原理图库&#xff1a; 2.点击菜单栏的报告选项&#xff1a; 3.选择器件规则检查&#xff1a; 根据需求勾选&#xff0c;一般都是全部勾选&#xff1a; 二、问题&#xff1a; 1.缺少封装会导致什么问题&#xff1a; 1.首先&#xff1a; 封装是…

网络相关笔记

IPv4地址 IPv4地址通常以“点分十进制”形式书写&#xff0c;即四个0-255之间的十进制数&#xff0c;各数之间用英文句点&#xff08;.&#xff09;分隔&#xff0c;例如&#xff1a;192.0.2.1。总共32位的地址空间可以表示大约42亿个不同的地址。 IPv4地址结构包括&#xff…

Django开发实战之登录用户鉴权登录界面实现

Django自带的鉴权系统非常的安全&#xff0c;大家可以放心使用&#xff0c;那么如何使用呢&#xff1f; 1、首先需要检查settings文件种的INSTALLED_APPS&#xff0c;有没有这两部分内容&#xff1a; 2、检查中间件&#xff0c;比如这两个中间件&#xff0c;一个是用于登录&a…

io (fscanf fprintf)

20 #include <sys/un.h>21 typedef struct stu22 {23 char name[16];24 int age;25 double score;26 }stu;27 int main(int argc, const char *argv[])28 {29 /* 有如下结构体30 31 申请该结构体数组&#xff0c;容量为5&#xff0c;初始化5个学生的信息32 …

【高校科研前沿】中国科学院地理资源所钟帅副研究员研究组博士生朱屹东为一作在Top期刊发文:从潜力到利用:探索西藏风能资源开发的技术路径优化布局

01 文章简介 论文名称&#xff1a;From potential to utilization: Exploring the optimal layout with the technical path of wind resource development in Tibet&#xff08;从潜力到利用:探索西藏风能资源开发的技术路径优化布局&#xff09; 文章发表期刊&#xff1a;《…

Wireshark明文抓取

目录 原理 配置 1、配置环境变量 2、Wireshark配置 原理 SSLKEYLOGFILE是一个用于记录SSL/TLS会话中使用的密钥的文件。它主要用于调试和分析SSL/TLS协议。当启用了SSLKEYLOGFILE配置&#xff0c;系统会将所有SSL/TLS会话中使用的密钥记录到指定的文件中。这些密钥可以用来…

景源畅信数字:抖音怎么挂橱窗商品?

抖音作为一款短视频分享平台&#xff0c;近年来逐渐融入了电商功能&#xff0c;其中“橱窗”就是商家或个人展示和销售商品的一个重要工具。如何在抖音上挂橱窗商品&#xff0c;成为了众多商家关注的焦点。 一、确保账号资质&#xff1a;在抖音上挂橱窗商品前&#xff0c;需要确…

重写muduo之EPollPoller

1、EPollPoller.h EPollPoller的主要实现&#xff1a;作为poller的派生类&#xff0c;把基类给派生类保留的这些纯虚函数的接口实现出来。 override表示在派生类里面&#xff0c;这些方法是覆盖方法。必须由编译器来保证在基类里面一定有这些函数的接口的声明。在派生类要重写…

标准IO学习

思维导图&#xff1a; 有如下结构体 struct Student{ char name[16]; int age; double math_score; double chinese_score; double english_score; double physics_score; double chemistry_score; double bio_score; }; 申请该结构体数组&#xff0c;容量为5&#xff0c;初始…

(数据分析方法)长期趋势分析

目录 一、定义 二、目的 三、方法 1、移动平均法 (1)、简单移动平均法 (2)、加权移动平均法 (3)、指数平滑法 2、最小二乘法 3、线性回归 1、数据预处理 2、观察数据分布建立假设模型 3、定义损失函数 4、批量梯度下降 5、优化 4、LSTM 时序分析 5、特征工程 一…

智能家居1 -- 实现语音模块

项目整体框架: 监听线程4&#xff1a; 1. 语音监听线程:用于监听语音指令&#xff0c; 当有语音指令过来后&#xff0c; 通过消息队列的方式给消息处理线程发送指令 2. 网络监听线程&#xff1a;用于监听网络指令&#xff0c;当有网络指令过来后&#xff0c; 通过消息队列的方…

X 推出 Stories 功能,由 Grok AI 生成新闻摘要

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

OCC笔记:图形可视化的实现方式

注&#xff1a;文中参看的occ的源码版本为7.4.0 1、实现思路概览 整体架构 主要有3大块&#xff1a;AIS&#xff08;Application Interactive Services &#xff0c;直译为&#xff1a;应用程序交互服务&#xff09;、Graphics&#xff08;图形&#xff09;、Geometry & T…

磐石云最版本使用教程

磐石云外呼系统是一款集成了呼叫平台、电话线路和话术系统的软件&#xff0c;旨在提高企业的电话营销效率。以下是磐石云外呼系统的基本操作步骤&#xff1a; 安装和配置&#xff1a; 首先需要在Linux操作系统上安装磐石云外呼系统&#xff0c;通常需要至少4核CPU、8GB内存以及…