Press "Enter" to skip to content

深入研究文本到视频模型

深入研究文本到视频模型 四海 第1张 使用ModelScope生成的视频样本。

文本到视频是生成模型中令人难以置信的新进展之一。正如其名字所示,文本到视频是一个相对较新的计算机视觉任务,涉及从文本描述生成一系列时间和空间上连续一致的图像序列。虽然这个任务看起来与文本到图像非常相似,但实际上更加困难。这些模型如何工作?它们与文本到图像模型有何不同?我们可以期望它们有什么样的性能?

在本博文中,我们将讨论文本到视频模型的过去、现在和未来。我们将首先回顾文本到视频和文本到图像任务之间的区别,并讨论无条件和文本条件视频生成的独特挑战。此外,我们还将介绍文本到视频模型的最新发展,探讨这些方法的工作原理和能力。最后,我们将谈谈Hugging Face正在做的工作,以促进这些模型的集成和使用,并分享一些有趣的演示和资源,无论是在Hugging Face Hub内还是外部。

深入研究文本到视频模型 四海 第2张 从各种文本描述输入生成的视频示例,图片来源于Make-a-Video。

文本到视频 vs. 文本到图像

近年来,文本到图像生成模型的发展进展如此之快,以至于很难跟上最新状态。让我们先进行一个简单回顾。

仅仅两年前,首批开放词汇、高质量的文本到图像生成模型问世。这第一波文本到图像模型包括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。

尽管扩散模型在文本到图像生成方面具有令人印象深刻的能力,但扩散和非扩散的文本到视频模型在生成能力方面受到了极大的限制。文本到视频通常在非常短的片段上进行训练,这意味着它们需要一种计算昂贵且缓慢的滑动窗口方法来生成长视频。因此,这些模型在部署和扩展方面非常困难,并且在上下文和长度方面仍然受限。

文本到视频任务在多个方面面临着独特的挑战。其中一些主要挑战包括:

  • 计算挑战:确保帧之间的空间和时间一致性会产生长期依赖,这带来了高计算成本,使得训练这样的模型对于大多数研究人员来说不可承受。
  • 缺乏高质量的数据集:用于文本到视频生成的多模态数据集稀缺,并且往往标注不完整,这使得学习复杂的运动语义变得困难。
  • 关于视频字幕的模糊性:以便让模型更容易学习,描述视频的方式是一个未解之谜。单一的短文本提示不足以提供完整的视频描述。生成的视频必须基于一系列提示或叙述随时间发生的情节的故事。

在下一节中,我们将讨论文本到视频领域的发展时间线以及分别提出的各种方法来解决这些挑战。从更高层面上看,文本到视频的工作提出了以下一种或多种方法:

  1. 新的、更高质量的数据集,更容易学习。
  2. 在没有配对的文本-视频数据的情况下训练这样的模型的方法。
  3. 更高效的方法生成更长、更高分辨率的视频。

如何从文本生成视频?

让我们看看文本到视频生成的工作原理以及这一领域的最新发展。我们将探讨文本到视频模型的演变,沿着与文本到图像研究类似的路径,并介绍到目前为止如何解决文本到视频生成的特定挑战。

与文本到图像任务类似,早期的文本到视频生成研究仅有几年的历史。早期的研究主要使用GAN和VAE-based方法,根据标题自动逐步生成帧(参见Text2Filter和TGANs-C)。虽然这些工作为这个新的计算机视觉任务奠定了基础,但它们局限于低分辨率、短距离和单一、孤立的动作。

深入研究文本到视频模型 四海 第3张 初始的文本到视频模型在分辨率、上下文和长度方面非常有限,图片来自TGANs-C。

受到大规模预训练的文本(GPT-3)和图像(DALL-E)转换器模型成功的启发,下一波文本到视频生成研究采用了转换器架构。Phenaki、Make-A-Video、NUWA、VideoGPT和CogVideo都提出了基于转换器的框架,而TATS等作品则提出了将VQGAN用于图像生成并将时间敏感的转换器模块用于帧的顺序生成的混合方法。在这第二波作品中,Phenaki尤为有趣,因为它可以根据一系列提示生成任意长的视频,换句话说,一个故事情节。类似地,NUWA-Infinity提出了一种基于自回归的自回归生成机制,用于从文本输入中无限生成图像和视频,实现了生成长且高清画质的视频。然而,Phenaki和NUWA模型都没有公开可用。

深入研究文本到视频模型 四海 第4张 Phenaki采用了基于转换器的架构,图片来自此处。

第三波和当前的文本到视频模型主要采用扩散(diffusion)为基础的架构。扩散模型在多样化、超逼真和上下文丰富的图像生成方面取得了显著的成功,这导致人们对将扩散模型推广到其他领域,如音频、3D和最近的视频产生了兴趣。这一波模型的先驱是Video Diffusion Models(VDM),它将扩散模型扩展到视频领域,并且MagicVideo提出了一个在低维潜在空间中生成视频剪辑的框架,并报告了与VDM相比的巨大效率提升。另一个值得一提的是Tune-a-Video,它使用单个文本-视频对对预训练的文本到图像模型进行微调,并在保留运动的同时改变视频内容。随后出现的文本到视频扩散模型包括Video LDM、Text2Video-Zero、Runway Gen1和Gen2以及NUWA-XL。

Text2Video-Zero是一种以类似于ControlNet的方式工作的文本引导视频生成和操作框架。它可以根据文本输入直接生成(或编辑)视频,以及结合文本-姿势或文本-边缘数据输入。正如其名称所暗示的,Text2Video-Zero是一个零样本模型,它将可训练的运动动力学模块与预训练的文本到图像稳定扩散模型结合起来,而不使用任何配对的文本-视频数据。类似于Text2Video-Zero,Runway的Gen-1和Gen-2模型使得通过文本或图像描述来引导合成视频成为可能。这些工作大多数是在短视频剪辑上进行训练,并依靠滑动窗口的自回归生成来生成更长的视频,不可避免地导致了上下文间断。NUWA-XL解决了这个问题,并提出了一种“扩散在扩散之上”的方法,以在3376帧上训练模型。最后,还有一些开源的文本到视频模型和框架,如阿里巴巴/达摩视觉智能实验室的ModelScope和Tencel的VideoCrafter,并未在同行评审的会议或期刊上发表。

数据集

与其他视觉语言模型一样,文本到视频模型通常在大型配对数据集视频和文本描述上进行训练。这些数据集中的视频通常被分割为短的固定长度块,并且通常限于具有少量对象的孤立动作。虽然这部分是由于计算限制,部分是由于以有意义的方式描述视频内容的困难,但我们可以看到多模态视频文本数据集和文本到视频模型的发展经常交织在一起。一些工作专注于开发更好、更具泛化性的数据集,更容易进行学习,而Phenaki等作品则通过将文本-图像对与文本-视频对结合起来,探索了替代解决方案,以用于文本到视频任务。Make-a-Video进一步提出仅使用文本-图像对来学习世界的外观,并以无监督的方式学习时空依赖关系。

这些大型数据集存在与文本到图像数据集相似的问题。最常用的文本-视频数据集WebVid由1070万个文本-视频对(52K小时视频)组成,并包含大量具有无关视频描述的噪声样本。其他数据集试图通过专注于特定任务或领域来克服这个问题。例如,Howto100M数据集由136M个视频剪辑和描述组成,描述了如何逐步执行复杂任务,如烹饪、手工制作、园艺和健身。类似地,QuerYD数据集专注于事件定位任务,视频的标题详细描述了对象和动作的相对位置。CelebV-Text是一个大规模面部文本-视频数据集,包含超过70K个视频,用于生成具有逼真面部、情感和手势的视频。

Hugging Face的文本到视频

使用Hugging Face的Diffusers,您可以轻松下载、运行和微调各种预训练的文本到视频模型,包括阿里巴巴/ DAMO Vision Intelligence Lab的Text2Video-Zero和ModelScope。我们目前正在将其他令人兴奋的作品整合到Diffusers和🤗 Transformers中。

Hugging Face演示

在Hugging Face,我们的目标是让使用和构建最先进研究更加容易。请前往我们的中心以查看由🤗团队、无数社区贡献者和研究作者贡献的Spaces演示,并进行玩耍。目前,我们为VideoGPT、CogVideo、ModelScope文本到视频和Text2Video-Zero托管演示,还有更多演示即将推出。为了了解我们可以用这些模型做什么,让我们来看看Text2Video-Zero演示。这个演示不仅展示了文本到视频生成,还可以使用文本提示进行多种其他生成模式,用于文本引导的视频编辑和使用姿态、深度和边缘输入进行联合条件视频生成。

除了使用演示来尝试预训练的文本到视频模型,您还可以使用Tune-a-Video训练演示来微调现有的文本到图像模型,使用您自己的文本-视频对。要试用它,请上传一个视频并输入描述视频的文本提示。训练完成后,您可以将其上传到Tune-a-Video社区或您自己的用户名下的Hub,公开或私密。训练完成后,只需转到演示的运行选项卡,即可根据任何文本提示生成视频。

🤗 Hub上的所有Spaces都是您可以在本地或部署环境上克隆和运行的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演示现在正在您的计算机上本地运行。请注意,ModelScope文本到视频模型在Diffusers中受支持,您可以直接加载和使用模型,只需几行代码即可生成新的视频。

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 = "蜘蛛侠在冲浪"
video_frames = pipe(prompt, num_inference_steps=25).frames
video_path = export_to_video(video_frames)

社区贡献和开源文本到视频项目

最后,有许多开源项目和模型未在中心上。一些值得一提的是Phil Wang(又名lucidrains)的Imagen、Phenaki、NUWA、Make-a-Video和Video Diffusion Models的非官方实现。ExponentialML的另一个令人兴奋的项目建立在🤗 diffusers的基础上,用于微调ModelScope文本到视频模型。

结论

文本到视频研究正在指数级增长,但现有的工作在上下文和面临许多挑战方面仍然有限。在本博客文章中,我们介绍了文本到视频生成模型的约束、独特挑战和当前状态。我们还看到了最初设计用于其他任务的架构范例如何为文本到视频生成任务带来巨大飞跃,以及这对未来研究意味着什么。虽然这些发展令人印象深刻,但与文本到图像模型相比,文本到视频模型仍有很长的路要走。最后,我们还展示了您可以如何使用Hub上可用的演示或作为🤗 Diffusers流水线的一部分来执行各种任务。

就是这样!我们将继续整合最有影响力的计算机视觉和多模态模型,并期待您的反馈。要了解计算机视觉和多模态研究的最新动态,您可以在Twitter上关注我们:@adirik,@a_e_roberts,@osanseviero,@risingsayak和@huggingface。

Leave a Reply

Your email address will not be published. Required fields are marked *