from T2I to T2V

news2024/9/24 23:30:32

生成图片

在Stable Diffusion推理过程中,其使用unet对一个初始化的向量不断去噪,并编入条件信息 c c c ,最后使用vae-decoder将其上采样为一张图片。

计算过程:
f l a t e n t = u n e t ( f l a t e n t ) , f l a t e n t ∈ R h × w × c I = d e c o d e r ( f l a t e n t ) , I ∈ R H × W × 3 f_{latent}=unet(f_{latent}),f_{latent} \in R^{h \times w \times c} \\ I=decoder(f_{latent}),I \in R^{H \times W \times 3} flatent=unet(flatent),flatentRh×w×cI=decoder(flatent),IRH×W×3
h , w h,w h,w是特征的空间维度, c c c是特征维度, H , W H,W H,W是图像高,宽

生成视频

视频由视频帧组成,即视频由一组图像组成。将stable diffusion中初始化的隐向量添加时间序列,并且将计算网络扩充为3D,即可完成视频的生成。

h , w h,w h,w是特征的空间维度, c c c是特征维度, f f f是帧数

VAE视频压缩

与SD一致,训练视频生成网络首先需要进行视频压缩,这主要通过VAE完成。压缩视频主要是通过3D卷积实现。给定一个视频 v ∈ R 16 × 512 × 512 × 3 v\in R^{16 \times 512 \times 512 \times 3} vR16×512×512×3,如果使用 N N N个形状为 R 2 × 2 × 2 × 3 R^{2\times2\times2\times3} R2×2×2×3的卷积核进行卷积,最终得到 v ∈ R 15 × 511 × 511 × N v\in R^{15 \times511\times511\times N} vR15×511×511×N的特征。

去噪网络

SD生图使用UNET逐步完成对隐向量的不断去噪。而在视频进行去噪时,为匹配隐向量的维度,会将UNET中的2D卷积扩充为3D卷积。即增加一维时间维度,也就是伪3D卷积。基本思想是利用一个1 × \times × 3 × \times × 3的二维空间卷积和3 × \times × 1 × \times × 1的一维时域卷积来模拟常用的3 × \times × 3 × \times × 3三维卷积,即利用2D+1D实现3D做的事。
所以最开始Stable Video Diffusion网络使用伪3D的网络直接对视频帧隐向量进行去噪,这也使视频帧之间联系不强,所以需要一个专属的模块来完成视频帧之间的信息交互,这通常通过空间-时间注意力实现。

空间-时间注意力

对于视频特征,空间注意力主要负责帧内特征的交流,时空注意力负责不同帧的相同位置之间的特征交流,主要通过Attention完成。

对于视频特征 f ∈ R f × h × w × c f\in R^{f\times h \times w \times c} fRf×h×w×c,其中 f f f是视频的帧数量。空间注意力首先会将其变换为 f ∈ R f × h w × c f\in R^{f\times hw \times c} fRf×hw×c,随后输入attention block中在 h w hw hw维度进行注意力计算,而对于时间注意力,会将特征变换为 f ∈ R h w × f × c f\in R^{hw \times f \times c} fRhw×f×c,随后同样输入attention block中,在 f f f维度计算注意力。这样针对视频的UNET网络就变成了下面这个样子。

3D Causal

左半部分是普通3D卷积网络,随着卷积的不断深入,1号的感受野不断扩大。右半部分是因果卷积,在第一帧前加入padding(黄色),那么即使卷积不断深入,后续帧的信息也不会泄漏到当前帧,即1号位的感受野永远是自己。这样就可实现图像与视频的联合训练,我们可以将一张图像当作视频帧直接使用3D因果卷积卷它。

最终网络结构

最后基于UNET的视频生成网络:

  1. 视频使用3D-VAE causal Encoder进行压缩
  2. UNET不断进行降噪
    1. 卷积计算
    2. 空间注意力
    3. 时间注意力
  3. VAE-Decoder解码为图像

sora

将unet换成Transformer
3D full attention,所有视频帧的特征并成一个序列,计算attention

cogvideox

将unet换成Transformer,解耦合text与video特征

EasyAnimate

将unet换为Transformer,并加入基于两种attention的Motion Module

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

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

相关文章

frida主动调用init_array中的函数

ida打开目标so,查看要主动调用的函数 前提是先过掉检测frida等等,然后控制台启动 输出so地址 Process.findModuleByName("libmod.so") New函数 var aa new NativeFunction(ptr(0x785e002000).add(0x134EC0),"void",[]) 主动调用 a…

三种方式可以将彩色图像转成灰度图对比

有三种方式可以将彩色图像转成灰度图 1、直接imread(“1.jpg” , 0);直接读取灰度图像 2、读取彩色图像然后 灰度 0.299 * 红色 0.587 * 绿色 0.114 * 蓝色进行转换 3、调用cvtColor函数cvtColor(srcImg, imgShow, COLOR_BGR2GRAY); 通过测试来对比三者的区别&…

秋招面经9.11

1. JWT的过程解析 JWT(JSON Web Token)是一种基于 JSON 的开放标准(RFC 7519)实现的用于在各方之间传递信息的紧凑且自包含的方式。JWT 是一种 token,可以对信息进行数字签名(例如使用 HMAC 算法或 RSA 加…

[leetcode-python]杨辉三角2

给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: rowIndex 3 输出: [1,3,3,1]示例 2: 输入: rowIndex 0 输出: [1]示例 3: 输入: rowIndex 1 输出: [1,1]提示…

Mycat2原理介绍

Mycat介绍 Mycat原理 Mycat 核心配置 Scheam.xml 逻辑数据库和节点对应关系配置Server.xml mycat的连接配置Rule.xml. 分片规则 自动分片auto-sharding-long,比如0-10000节点1 ,10001-20000节点2枚举分片sahrding-bt-intfile ,比如beijing节点1…

【828华为云征文|如何使用华为云Flexus X实例搭建私人博客:从配置到发布全指南】

文章目录 华为云Flexus X实例介绍搭建专属私人博客准备工作具体操作指南服务器环境确认宝塔软件商店操作一键部署WordPress私人博客域名解析WordPress安装初始页数据库信息配置运行安装程序配置博客信息博客管理后台(默认为wp-login.php页面)博客前台页面…

c语言位运算符速成

本篇文章对c语言速成系列的补充,其中的内容会涉及原反补以及& 、| 、 ~ 、^、位运算等等。那么,闲话少叙,我们直接进入正题 首先我们先来讲讲原反补 进制转换(前置知识) 在学原反补之前我们先来学几个机制转换的…

网络高级(学习)2024.9.10

目录 一、Modbus简介 1.起源 2.特点 3.应用场景 二、Modbus TCP协议 1.特点 2.协议格式 3.MBAP报文头 4.功能码 5.寄存器 (1)线圈寄存器,类比为开关量,每一个bit都对应一个信号的开关状态。 (2&#xff09…

C++——STL——栈(stack)

栈的定义 栈 ( stack )是限定仅在表的一端进行插入和删除操作的线性表,允许插入和删除的一端称 为栈顶,另一端称为栈底,不含任何数据元素的栈称为空栈。 栈的示意图 因为栈只能够在一端进行插入和删除,所以…

【Lua学习】Lua入门

上一篇帖子【Lua学习】Lua最最基础的 – 经云的清净小站 (skycreator.top)讲了Lua是什么,Lua如何安装在Linux和Windows上。那么安装好之后,我们就要使用Lua实现我们的各种功能了。 首先,我们要先了解Lua一些最基本的内容,比如怎么…

杀毒软件 | Malware Hunter v1.189.0.816 绿色版

软件简介 Malware Hunter是由Glarysoft开发的一款专业安全防护软件。该软件的主要目的是保护用户的计算机免受恶意软件、病毒和其他网络威胁的侵害。它通过采用高效的云引擎和小红伞引擎,能够快速且全面地扫描电脑中的恶意软件,并进行强力清除&#xff…

5--SpringBoot、Mybatis

目录 Mybatis Mybatis入门操作步骤 1.准备工作 创建springboot工程 创建数据库表和实体类 连接数据库 创建接口XxxMapper 2.数据库连接池 Lombok 使用 Mybatis 准备工作 删除 日志输入 参数占位符 新增 更新 查询 驼峰命名 条件查询 XML 创建XML文件 编…

关于前端知识中框架概念部分的详细介绍

1、为什么要学习流行框架? 企业:为了提高效率,因为时间就是金钱。开发人员:提高了开发效率发展进程: JS>JQuery>模板引擎>框架时代(Angular(2)、React、Vue)好处:不用直接…

2.安卓逆向-初识java语言

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于:图灵Python学院 上一个内容:1.安卓逆向-说明 关于java语言的介绍就不写了没啥用直接开始 首先java语言写的代码运行说明 …

kolors文生图框架安装

环境安装 根据Kolors【github】的指引,安装命令如下: apt-get install git-lfs git clone https://github.com/Kwai-Kolors/Kolors cd Kolors conda create --name kolors python3.8 conda activate kolors pip install -r requirements.txt python3 s…

Vue3+TS项目封装SVG图标显示组件vite-plugin-svg-icons插件使用

准备好svg文件 假设从iconfont-阿里巴巴矢量图标库下载了一个svg格式的图标,放在我们项目里,并重命名为ic_money.svg,相对路径为:src\assets\images\icons\ic_money.svg 安装vite-plugin-svg-icons插件 npm install vite-plugi…

常用电路及分析

前言 最近在研究一些简单的硬件知识,把在网上看到的一些常见电路分析总结了一下。 有纰漏请指出,转载请说明。 学习交流请发邮件 1280253714qq.com 串联稳压电路 三极管串联线性稳压电路原理详解及Multisim仿真_三极管稳压电路-CSDN博客 线性稳压电…

Java小白一文讲清Java中集合相关的知识点(八)

HashMap底层机制及源码剖析 HashMap底层维护了Node类型的数组table,默认为null 当创建对象时,将加载因子初始化为0.75; 当添加key-value时,通过key的哈希值得到在table的索引,然后判断该索引处是否有元素,如果没有元…

力扣 — — 2555. 两个线段获得的最多奖品

力扣 — — 2555. 两个线段获得的最多奖品 一、题目描述 题目大意:给定一个数组prizePositions,数组中的值表示的是奖品的位置,每一个位置可以有多个奖品,并且设定一个线段的长度 K K K,要求从所有奖品位置中选择两个…

修改Netty 中EventLoopGroup的线程名字前缀

此方案针对 netty 4 , 阅读Netty 源码的过程中涉及到多种线程跳转,2-1 3-1 4-1 类似的命名头晕眼花,直接改了成方便辨认的名字吧! 代码如下: public static EventLoopGroup getEventLoopGroup(String name, int nThread) {Defaul…