前段时刻OpenAI发布的Sora引起了巨大的轰动,最长可达1分钟的高清连接视频生成才能秒杀了一众视频生成玩家。由于Sora没有揭露发布,网上对Sora的解读辗转反侧就那么多,我也不想像复读机一样再重复一遍了。

本文给咱们介绍一个相似Sora的视频生成项目:Latte。为什么说它相似Sora呢?这个项目的全称是:Latent Diffusion Transformer for Video Generation(用于视频生成的潜在分散转换器),对Sora生成技能有所了解的同学看到 Diffusion 和 Transformer 这两个单词应该就明白我在说什么了,Sora也同样运用了这两种技能。而且 Sora 和 Latte 都宣称参阅了DiT(Scalable Diffusion Models with Transformers)项目,它们的技能道路应该都是差不多的。最重要的是 Latte 是开源的,能够自己布置着玩,这篇文章就给咱们介绍下 Latte 的原理和运用办法。

对 Diffusion 和 Transformer 这两种技能完全没概念的同学能够看我之前写的一篇科普文章:AI视频生成的重大突破:OpenAI的梦幻制作机Sora

效果演示

下图是官网的文生视频效果展示。留意实践生成时也需求抽卡,有时候效果也是一言难尽。

Latte:一个相似Sora的开源视频生成项目

Latte介绍

Latte(Latent Diffusion Transformer)是一种用于视频生成的立异模型。它首要经过预练习的变分自编码器(VAE)将输入视频编码为潜在空间中的特征,并从中提取出时空令牌(Token)。然后运用一系列 Transformer 块对这些令牌进行建模,以捕捉视频数据散布。由于视频具有复杂的时空信息且高分辨率帧内包含很多细节,Latte规划了四种不同的高效Transformer变体,这四种变围绕如何有效地利用Transformer网络捕获视频数据中的时空散布信息打开,各自探究了不同的空间-时刻分化办法、信息交融策略以及核算效率优化计划。

Latte:一个相似Sora的开源视频生成项目

  • 变体1:该变体的Transformer骨干结构包含空间Transformer块和时刻Transformer块。空间Transformer块专心于在同一时刻索引下的视频令牌之间捕捉纯空间信息,经过关注相同时刻步内的像素或区域之间的关联性来提取空间特征。而时刻Transformer块则采用“交织交融”的办法处理跨时刻维度的信息,以捕捉不同时刻帧间的变化和动态内容。
  • 变体2:不同于变体1中的即时交融策略,变体2或许采用了“晚期交融”机制,即先独立处理空间和时刻维度上的信息,在后续阶段再将两者合并,以另一种办法整合时空上下文。
  • 变体3:此变体首要聚集于对Transformer内部多头留意力模块进行分化。它首要仅在空间维度上核算自留意力,随后再在时刻维度上履行自留意力核算。这样规划的目的是让每个Transformer块能够先后别离从空间和时刻视点了解输入序列,并终究归纳捕获并建模视频的时空信息。
  • 变体4:变体4将多头留意力(MHA)分化为两个组件,利用不同的组件别离处理空间和时刻维度上的令牌。在Transformer骨干结构之后,经过采用规范线性解码器以及重塑操作,对视频令牌序列进行解码,然后得出预测噪声和预测协方差。。

在实践运用时,Latte首要将视频帧序列转换为一系列令牌,并利用上述某种变体中对应的 Transformer 结构对这些令牌进行编码和解码。具体来说,在生成阶段,模型会依据学习到的反向分散进程,在潜在空间中逐渐还原出低噪声的视频帧表示,并终究重构为接连且传神的视频内容。

试验结果显现,Latte在FaceForensics、SkyTimelapse、UCF101和Taichi-HD这四个规范视频生成数据集上,Latte能够生成传神的、具有连接时序内容的视频,并在Frchet视频距离(FVD)、Frchet Inception Distance (FID)和Inception Score等目标上达到了最先进的功能水平。

此外,Latte还被扩展到文本到视频生成使命(T2V),其体现与当前的T2V模型适当。

运用Latte

这儿首要介绍运用Latte进行推理的办法,有两种办法,一是直接运用我制作的AutoDL镜像,二是手动一步步装置。留意Latte预练习的模型只能生成2秒的视频,更长的视频需求自己练习模型,练习视频模型比较耗费资源,需求的直接看Github上的说明就行了:github.com/Vchitect/La…

运用AutoDL镜像

AutoDL访问地址:www.autodl.com ,AutoDL的注册和运用办法能够看这篇文章: 手把手教你在云服务器布置Stable Diffusion WebUI – (juejin.cn)

1、创立服务器实例时镜像选择:Vchitect/Latte/yinghuoai-latte 的最新版别。 我已经在3090、4090、3080*2等显卡类型上测试经过。

Latte:一个相似Sora的开源视频生成项目

2、打开服务器实例的 JupyterLab,进入操作环境。

Latte:一个相似Sora的开源视频生成项目

操作环境如下图所示,左边是文件及目录,我编写了一个生成器的页面,能够在其中直接履行相关视频生成指令。

Latte:一个相似Sora的开源视频生成项目

3、点击选中下方的代码单元格后,再点击菜单栏中的“箭头按钮”即可履行对应的生成使命。

留意需求先履行“初始化”指令,后边的视频生成使命随意履行。

Latte:一个相似Sora的开源视频生成项目

使命履行进度如下,履行或许较慢,请耐心等候!

Latte:一个相似Sora的开源视频生成项目

日志中显现了生成的视频方位。

Latte:一个相似Sora的开源视频生成项目

可在左边目录中找到,然后在对应的文件上右键下载。

Latte:一个相似Sora的开源视频生成项目

手动装置

手动装置过程比较多,请咱们跟紧了。

装置conda

由于需求装置很多的python包,为了便利,咱们这儿运用conda包办理,没装置的同学先装置:docs.anaconda.com/free/minico…

假如已经装置过,能够经过指令升级到最新版别:

conda update -n base -c defaults conda

下载Latte

代码地址:github.com/maxin-cn/La…

经过git装置的办法:

git clone https://github.com/maxin-cn/Latte.git

修正依靠包的版别

Latte对python和相关包的版别依靠比较重,实测需求调整下官方提供的环境依靠文件。

在Latte根目录中找到 environment.yml 文件,完好修正如下:

name: latte
channels:
  - pytorch
  - nvidia
dependencies:
  - python = 3.10.8
  - pytorch = 2.0.0
  - torchvision
  - pytorch-cuda=11.7
  - pip
  - pip:
    - timm
    - diffusers[torch]==0.24.0
    - accelerate
    - tensorboard
    - einops
    - transformers
    - av
    - scikit-image
    - decord
    - pandas
    - imageio-ffmpeg

修正的便是下图中这三个:

Latte:一个相似Sora的开源视频生成项目

创立Python虚拟环境

运用下边的指令,实测还需求再补充装置一些python包。

# 进入Latte目录
cd Latte
# 整理latte虚拟环境
conda remove --name latte --all
# 创立latte虚拟环境
conda env create -f environment.yml
# 激活latte虚拟环境
source activate latte
# 在latte虚拟环境中补充装置一些python包
pip install omegaconf
pip install SentencePiece
pip install beautifulsoup4
pip install ftfy
pip install codewithgpu

下载预练习模型

预练习模型是Latte官方提早练习好的模型,咱们能够直接运用。

建议从huggingface下载:

huggingface.co/maxin-cn/La…

或许从这个国内镜像站:

hf-mirror.com/maxin-cn/La…

生成视频

Latte项目中内置了几个脚本,能够帮咱们快速生成视频。

sample 目录下这几个sh文件便是,能够在shell或许指令行程序中履行它们。

Latte:一个相似Sora的开源视频生成项目

咱们看一个 t2v.sh:

export CUDA_VISIBLE_DEVICES=5
python sample/sample_t2v.py --config configs/t2v/t2v_sample.yaml

这儿首要经过export设置运用哪个显卡,假如只要1个,请设置为0。

然后便是运行python程序生成视频的指令,留意后边的配置文件,官方也提供了示例,就在config目录下,需求依据实践情况进行修正。

  • ckpt:运用的模型文件途径,请修正“/path/to”为上一步下载模型的本地保存目录。
  • save_img_path:视频保存途径。
  • pretrained_model_path:文本生成视频专用的一些模型,请修正“/path/to”为上一步下载模型的本地保存目录。

Latte:一个相似Sora的开源视频生成项目

其它参数基本不需求调整了,当然能够改改试试。


以上便是本文的首要内容了,如有兴趣欢迎讨论交流,微/信:yinghuojun007。