乐趣区

关于人工智能:文生视频-任务挑战及现状

示例视频由 ModelScope 生成。

最近生成模型方向的停顿如翻江倒海,令人应接不暇,而文生视频将是这一连串停顿的下一波。只管大家很容易从字面上了解文生视频的意思,但它其实是一项相当新的计算机视觉工作,其要求是依据文本形容生成一系列工夫和空间上都统一的图像。尽管看上去这项工作与文生图极其类似,但家喻户晓,它的难度要大得多。这些模型是如何工作的,它们与文生图模型有何不同,咱们对其性能又有何期待?

在本文中,咱们将探讨文生视频模型的过来、当初和将来。咱们将从回顾文生视频和文生图工作之间的差别开始,并探讨无条件视频生成和文生视频两个工作各自的挑战。此外,咱们将介绍文生视频模型的最新倒退,摸索这些办法的工作原理及其性能。最初,咱们将探讨咱们在 Hugging Face 所做的工作,这些工作的指标就是促成这些模型的集成和应用,咱们还会分享一些在 Hugging Face Hub 上以及其余一些中央的很酷的演示利用及资源。

依据各种文本形容输出生成的视频示例,图片来自论文 Make-a-Video。

文生视频与文生图

最近文生图畛域的停顿多如牛毛,大家可能很难跟上最新的停顿。因而,咱们先疾速回顾一下。

就在两年前,第一个反对凋谢词汇 (open-vocabulary) 的高质量文生图模型呈现了。第一波文生图模型,包含 VQGAN-CLIP、XMC-GAN 和 GauGAN2,都采纳了 GAN 架构。紧随其后的是 OpenAI 在 2021 年初公布的广受欢迎的基于 transformer 的 DALL-E、2022 年 4 月的 DALL-E 2,以及由 Stable Diffusion 和 Imagen 创始的新一波扩散模型。Stable Diffusion 的巨大成功催生了许多产品化的扩散模型,例如 DreamStudio 和 RunwayML GEN-1; 同时也催生了一批集成了扩散模型的产品,例如 Midjourney。

只管扩散模型在文生图方面的能力令人印象粗浅,但雷同的故事并没有扩大到文生视频,不论是扩散文生视频模型还是非扩散文生视频模型的生成能力依然十分受限。文生视频模型通常在十分短的视频片段上进行训练,这意味着它们须要应用计算量大且速度慢的滑动窗口办法来生成长视频。因而,家喻户晓,训得的模型难以部署和扩大,并且在保障上下文一致性和视频长度方面很受限。

文生视频的工作面临着多方面的独特挑战。次要有:

  • 计算挑战: 确保帧间空间和工夫一致性会产生长期依赖性,从而带来高计算成本,使得大多数钻研人员无奈累赘训练此类模型的费用。
  • 不足高质量的数据集: 用于文生视频的多模态数据集很少,而且通常数据集的标注很少,这使得学习简单的静止语义很艰难。
  • 视频字幕的模糊性:“如何形容视频从而让模型的学习更容易”这一问题至今悬而未决。为了残缺形容视频,仅一个简短的文本提醒必定是不够的。一系列的提醒或一个随时间推移的故事能力用于生成视频。

在下一节中,咱们将别离探讨文生视频畛域的倒退工夫线以及为应答这些挑战而提出的各种办法。概括来讲,文生视频的工作次要能够分为以下 3 类:

  1. 提出新的、更高质量的数据集,使得训练更容易。
  2. 在没有 文本 - 视频对 的状况下训练模型的办法。
  3. 计算效率更高的生成更长和更高分辨率视频的办法。

如何实现文生视频?

让咱们来看看文生视频的工作原理以及该畛域的最新进展。咱们将沿着与文生图相似的钻研门路,摸索文生视频模型的流变,并探讨迄今为止咱们是如何解决文生视频畛域的具体挑战的。

与文生图工作一样,文生视频也是个年老的方向,最早只能追溯到几年前。晚期钻研次要应用基于 GAN 和 VAE 的办法在给定文本形容的状况下自回归地生成视频帧 (参见 Text2Filter 及 TGANs-C)。尽管这些工作为文生视频这一新计算机视觉工作奠定了根底,但它们的利用范畴无限,仅限于低分辨率、短距以及视频中指标的静止比拟繁多、孤立的状况。

最后的文生视频模型在分辨率、上下文和长度方面极为无限,图像取自 TGANs-C。

受文本 (GPT-3) 和图像 (DALL-E) 中大规模预训练 Transformer 模型的胜利启发,文生视频钻研的第二波浪潮采纳了 Transformer 架构。Phenaki、Make-A-Vide、NUWA、VideoGPT 和 CogVideo 都提出了基于 transformer 的框架,而 TATS 提出了一种混合办法,从而将用于生成图像的 VQGAN 和用于程序地生成帧的工夫敏感 transformer 模块联合起来。在第二波浪潮的诸多框架中,Phenaki 尤其有意思,因为它可能依据一系列提醒 (即一个故事情节) 生成任意长视频。同样,NUWA-Infinity 提出了一种双重自回归 (autoregressive over autoregressive) 生成机制,能够基于文本输出合成有限长度的图像和视频,从而使得生成高清的长视频成为可能。然而,Phenaki 或 NUWA 模型均无奈从公开渠道获取。

Phenaki 的模型架构基于 transformer,图片来自 此处。

第三波也就是以后这一波文生视频模型浪潮次要以基于扩散的架构为特色。扩散模型在生成多样化、超现实和上下文丰盛的图像方面获得了显著胜利,这引起了人们对将扩散模型推广到其余畛域 (如音频、3D,最近又拓展到了视频) 的趣味。这一波模型是由 Video Diffusion Models (VDM) 创始的,它首次将扩散模型推广至视频畛域。而后是 MagicVideo 提出了一个在低维隐空间中生成视频剪辑的框架,据其报告,新框架与 VDM 相比在效率上有微小的晋升。另一个值得一提的是 Tune-a-Video,它应用 单文本 - 视频对 微调预训练的文生图模型,并容许在保留静止的同时扭转视频内容。随后涌现出了越来越多的文生视频扩散模型,包含 Video LDM、Text2Video-Zero、Runway Gen1、Runway Gen2 以及 NUWA-XL。

Text2Video-Zero 是一个文本疏导的视频生成和解决框架,其工作形式相似于 ControlNet。它能够基于输出的 文本数据 文本 + 姿态混合数据 文本 + 边缘混合数据 间接生成 (或编辑) 视频。顾名思义,Text2Video-Zero 是一种零样本模型,它将可训练的静止动力学模块与预训练的文生图稳固扩散模型相结合,而无需应用任何 文本 - 视频对 数据。与 Text2Video-Zero 相似,Runway Gen-1 和 Runway Gen-2 模型能够合成由文本或图像形容的内容疏导的视频。这些工作大多数都是在短视频片段上训练的,并且依附带有滑动窗口的自回归机制来生成更长的视频,这不可避免地导致了上下文差别 (context gap)。NUWA-XL 解决了这个问题,并提出了一种“双重扩散 (diffusion over diffusion)”办法,并在 3376 帧视频数据上训练模型。最初,还有一些尚未在同行评审的会议或期刊上发表的开源文本到视频模型和框架,例如阿里巴巴达摩院视觉智能实验室的 ModelScope 和 Tencel 的 VideoCrafter。

数据集

与其余视觉语言模型一样,文生视频模型通常在大型 文本 - 视频对 数据集上进行训练。这些数据集中的视频通常被分成短的、固定长度的块,并且通常仅限于少数几个指标的孤立动作。呈现这种状况的一部分起因是计算限度,另一部分起因是以有意义的形式形容视频内容这件事自身就很难。而咱们看到多模态视频文本数据集和文生视频模型的倒退往往是交错在一起的,因而有不少工作侧重于开发更易于训练的更好、更通用的数据集。同时也有一些工作另辟蹊径,对代替解决方案进行了摸索,例如 Phenaki 将 文本 - 图像对 文本 - 视频对 相结合用于文生视频工作; Make-a-Video 则更进一步,提议仅应用 文本 - 图像对 来学习世界表象信息,并应用单模态视频数据以无监督的形式学习时空依赖性。

这些大型数据集面临与文本图像数据集相似的问题。最罕用的文本 – 视频数据集 WebVid 由 1070 万个 文本 - 视频对 (视频时长 5.2 万小时) 组成,并蕴含一定量的噪声样本,这些样本中的视频文本形容与视频内容是非相干的。其余数据集试图通过聚焦特定工作或畛域来解决这个问题。例如,Howto100M 数据集蕴含 13600 万个视频剪辑,其中文本局部形容了如何一步一步地执行简单的工作,例如烹饪、手工制作、园艺、和健身。而 QuerYD 数据集则聚焦于事件定位工作,视频的字幕详细描述了指标和动作的绝对地位。CelebV-Text 是一个蕴含超过 7 万个视频的大规模人脸文本 – 视频数据集,用于生成具备真切的人脸、情绪和手势的视频。

Hugging Face 上的文生视频

应用 Hugging Face Diffusers,你能够轻松下载、运行和微调各种预训练的文生视频模型,包含 Text2Video-Zero 和 阿里巴巴达摩院 的 ModelScope。咱们目前正在致力将更多优良的工作集成到 Diffusers 和 🤗 Transformers 中。

Hugging Face 利用演示

在 Hugging Face,咱们的指标是使 Hugging Face 库更易于应用并蕴含最先进的钻研。你能够返回 Hub 查看和体验由 🤗 团队、有数社区贡献者和研究者奉献的 Spaces 演示。目前,下面有 VideoGPT、CogVideo、ModelScope 文生视频 以及 Text2Video-Zero 的利用演示,前面还会越来越多,敬请期待。要理解这些模型能用来做什么,咱们能够看一下 Text2Video-Zero 的利用演示。该演示不仅展现了文生视频利用,而且还蕴含多种其余生成模式,如文本疏导的视频编辑,以及基于姿态、深度、边缘输出联合文本提醒进行联结条件下的视频生成。

除了应用利用演示来尝试预训练文生视频模型外,你还能够应用 Tune-a-Video 训练演示 应用你本人的 文本 - 视频对 微调现有的文生图模型。仅需上传视频并输出形容该视频的文本提醒即就能够了。你能够将训得的模型上传到公开的 Tune-a-Video 社区的 Hub 或你私人用户名下的 Hub。训练实现后,只需转到演示的 Run 选项卡即可依据任何文本提醒生成视频。

🤗 Hub 上的所有 Space 其实都是 Git 存储库,你能够在本地或部署环境中克隆和运行它们。上面克隆一下 ModelScope 演示,装置环境,并在本地运行它。

git clone https://huggingface.co/spaces/damo-vilab/modelscope-text-to-video-synthesis
cd modelscope-text-to-video-synthesis
pip install -r requirements.txt
python app.py

这就好了!Modelscope 演示当初曾经在你的本地计算机上运行起来了。请留神,Diffusers 反对 ModelScope 文生视频模型,你只需几行代码即可间接加载并应用该模型生成新视频。

import torch
from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler
from diffusers.utils import export_to_video

pipe = DiffusionPipeline.from_pretrained("damo-vilab/text-to-video-ms-1.7b", torch_dtype=torch.float16, variant="fp16")
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
pipe.enable_model_cpu_offload()

prompt = "Spiderman is surfing"
video_frames = pipe(prompt, num_inference_steps=25).frames
video_path = export_to_video(video_frames)

其余的社区开源文生视频我的项目

最初,还有各种不在 Hub 上的开源我的项目和模型。一些值得关注的有 Phil Wang (即 lucidrains) 的 Imagen 非官方实现、Phenaki、NUWA, Make-a-Video 以及 Video Diffusion 模型。还有一个有意思的我的项目 ExponentialML,它是基于 🤗 Diffusers 的,用于微调 ModelScope 文生视频模型。

总结

文生视频的钻研正在呈指数级倒退,但现有工作在上下文一致性上仍有限度,同时还面临其余诸多挑战。在这篇博文中,咱们介绍了文生视频模型的限度、独特挑战和以后状态。咱们还看到了最后为其余工作设计的架构范例如何赋能文生视频工作的微小飞跃,以及这对将来钻研意味着什么。尽管停顿令人印象粗浅,但与文生图模型相比,文生视频模型还有很长的路要走。最初,咱们还展现了如何通过 Hub 上的利用演示来应用这些模型,以及如何将这些模型作为 🤗 Diffusers 流水线的一部分来实现各种工作。

本文就到此为止了!咱们将持续整合最具影响力的计算机视觉和多模态模型,并心愿收到你的反馈。要理解计算机视觉和多模态钻研的最新消息,你能够在 Twitter 上关注咱们: @adirik、@a_e_roberts、@osanviero、@risingsayak 以及 @huggingface。


英文原文: <url>https://hf.co/blog/text-to-video</url>

原文作者: Alara Dirik

译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的利用及大规模模型的训练推理。

排版 / 审校: zhongdongy (阿东)

退出移动版