前段时间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介绍
Latte(Latent Diffusion Transformer)是一种用于视频生成的创新模型。它首先通过预训练的变分自编码器(VAE)将输入视频编码为潜在空间中的特征,并从中提取出时空令牌(Token)。然后应用一系列 Transformer 块对这些令牌进行建模,以捕捉视频数据分布。由于视频具有复杂的时空信息且高分辨率帧内包含大量细节,Latte设计了四种不同的高效Transformer变体,这四种变围绕如何有效地利用Transformer网络捕获视频数据中的时空分布信息展开,各自探索了不同的空间-时间分解方法、信息融合策略以及计算效率优化方案。
- 变体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能够生成逼真的、具有连贯时序内容的视频,并在Fréchet视频距离(FVD)、Fréchet 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等显卡型号上测试通过。
2、打开服务器实例的 JupyterLab,进入操作环境。
操作环境如下图所示,左侧是文件及目录,我编写了一个生成器的页面,可以在其中直接执行相关视频生成命令。
3、点击选中下方的代码单元格后,再点击菜单栏中的“箭头按钮”即可执行对应的生成任务。
注意需要先执行“初始化”命令,后边的视频生成任务随便执行。
任务执行进度如下,执行可能较慢,请耐心等待!
日志中显示了生成的视频位置。
可在左侧目录中找到,然后在对应的文件上右键下载。
手动安装
手动安装步骤比较多,请大家跟紧了。
安装conda
因为需要安装大量的python包,为了方便,我们这里使用conda包管理,没安装的同学先安装:docs.anaconda.com/free/minico…
如果已经安装过,可以通过命令升级到最新版本:
csharp
复制代码
conda update -n base -c defaults conda
下载Latte
代码地址:github.com/maxin-cn/La…
通过git安装的方法:
bash
复制代码
git clone https://github.com/maxin-cn/Latte.git
修改依赖包的版本
Latte对python和相关包的版本依赖比较重,实测需要调整下官方提供的环境依赖文件。
在Latte根目录中找到 environment.yml 文件,完整修改如下:
markdown
复制代码
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
修改的就是下图中这三个:
创建Python虚拟环境
使用下边的命令,实测还需要再补充安装一些python包。
bash
复制代码
# 进入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或者命令行程序中执行它们。
我们看一个 t2v.sh:
bash
复制代码
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”为上一步下载模型的本地保存目录。
其它参数基本不需要调整了,当然可以改改试试。
最后
为了帮助大家更好的学习人工智能,这里给大家准备了一份人工智能入门/进阶学习资料,里面的内容都是适合学习的笔记和资料,不懂编程也能听懂、看懂,所有资料朋友们如果有需要全套人工智能入门+进阶学习资源包,可以在评论区或扫.码领取哦)~
在线教程
- 麻省理工学院人工智能视频教程 – 麻省理工人工智能课程
- 人工智能入门 – 人工智能基础学习。Peter Norvig举办的课程
- EdX 人工智能 – 此课程讲授人工智能计算机系统设计的基本概念和技术。
- 人工智能中的计划 – 计划是人工智能系统的基础部分之一。在这个课程中,你将会学习到让机器人执行一系列动作所需要的基本算法。
- 机器人人工智能 – 这个课程将会教授你实现人工智能的基本方法,包括:概率推算,计划和搜索,本地化,跟踪和控制,全部都是围绕有关机器人设计。
- 机器学习 – 有指导和无指导情况下的基本机器学习算法
- 机器学习中的神经网络 – 智能神经网络上的算法和实践经验
- 斯坦福统计学习
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
人工智能书籍
- OpenCV(中文版).(布拉德斯基等)
- OpenCV+3计算机视觉++Python语言实现+第二版
- OpenCV3编程入门 毛星云编著
- 数字图像处理_第三版
- 人工智能:一种现代的方法
- 深度学习面试宝典
- 深度学习之PyTorch物体检测实战
- 吴恩达DeepLearning.ai中文版笔记
- 计算机视觉中的多视图几何
- PyTorch-官方推荐教程-英文版
- 《神经网络与深度学习》(邱锡鹏-20191121)
- …
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
第一阶段:零基础入门(3-6个月)
新手应首先通过少而精的学习,看到全景图,建立大局观。 通过完成小实验,建立信心,才能避免“从入门到放弃”的尴尬。因此,第一阶段只推荐4本最必要的书(而且这些书到了第二、三阶段也能继续用),入门以后,在后续学习中再“哪里不会补哪里”即可。
第二阶段:基础进阶(3-6个月)
熟读《机器学习算法的数学解析与Python实现》并动手实践后,你已经对机器学习有了基本的了解,不再是小白了。这时可以开始触类旁通,学习热门技术,加强实践水平。在深入学习的同时,也可以探索自己感兴趣的方向,为求职面试打好基础。
第三阶段:工作应用
这一阶段你已经不再需要引导,只需要一些推荐书目。如果你从入门时就确认了未来的工作方向,可以在第二阶段就提前阅读相关入门书籍(对应“商业落地五大方向”中的前两本),然后再“哪里不会补哪里”。
文章来源:https://www.toymoban.com/news/detail-838363.html
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
文章来源地址https://www.toymoban.com/news/detail-838363.html
到了这里,关于Latte:一个类似Sora的开源视频生成项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!