当前位置: 首页 > article >正文

from T2I to T2V

生成图片

在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.kler.cn/a/299977.html

相关文章:

  • Linux内存管理(Linux内存架构,malloc,slab的实现)
  • RabbitMQ 高级特性
  • 嵌入式硬件篇---ADC模拟-数字转换
  • NewStar CTF week1 web wp
  • 第二届国赛铁三wp
  • 【cuda学习日记】3.3 CUDA执行模型--展开循环
  • 构建响应式 Web 应用:Vue.js 基础指南
  • Kubernetes资源管理常用的标签分类有哪些?
  • IT前端好用的工具集
  • 【科研小白系列】使用screen创建虚拟终端,实现本地关机后服务器仍然跑模型
  • Elasticsearch 使用误区之五——单次请求获取大量数据
  • 实时系统资源监测:AutoPowerOptionsOK确保电脑性能与节能兼备
  • SpringBoot中利用EasyExcel+aop实现一个通用Excel导出功能
  • Mysql 数据库免费使用
  • windows七个消息队列
  • 基于springboot的校园志愿者管理系统的设计与实现 (含源码+sql+视频导入教程+论文+PPT)
  • 数学基础 -- 线性代数之格拉姆-施密特正交化
  • DNAT和SNAT实践
  • 软件测试之单元测试与unittest框架详解
  • Unity SRP 可编程渲染管线的基本用法
  • 虚幻引擎Gameplay探索 Actor 之间的高效通信与交互技巧二
  • 在springboot中如何使用Jetty替换Tomcat
  • LVGL 部件之滚轮(lv_roller)
  • MySQL的优化原则
  • 使用Selenium WebDriver来检测网页上的坏链接
  • PHP无缝对接预订无忧场馆预订系统小程序源码