文本到视频:任务、挑战和现状

发布于 2023 年 5 月 8 日
在 GitHub 上更新

video-samples
视频样本由 ModelScope 生成。

在生成模型众多令人难以置信的进步中,文本到视频技术是下一个前沿。顾名思义,文本到视频是一个相当新的计算机视觉任务,它涉及根据文本描述生成一系列在时间和空间上都保持一致的图像。虽然这个任务看起来与文本到图像非常相似,但它的难度却臭名昭著地高。这些模型是如何工作的?它们与文本到图像模型有何不同?我们能期待它们达到什么样的性能?

在这篇博文中,我们将讨论文本到视频模型的过去、现在和未来。我们将首先回顾文本到视频和文本到图像任务之间的差异,并讨论无条件和文本条件视频生成的独特挑战。此外,我们还将涵盖文本到视频模型的最新进展,探索这些方法的工作原理及其能力。最后,我们将讨论我们在 Hugging Face 为促进这些模型的集成和使用所做的工作,并分享一些在 Hugging Face Hub 内外的酷炫演示和资源。

samples
根据各种文本描述输入生成的视频示例,图片取自 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 的方法,根据字幕自回归地生成帧(参见 Text2FilterTGANs-C)。虽然这些工作为一个新的计算机视觉任务奠定了基础,但它们仅限于低分辨率、短范围以及单一、孤立的动作。

tgans-c
最初的文本到视频模型在分辨率、上下文和长度上都极其有限,图片取自 TGANs-C

受大规模预训练 Transformer 模型在文本 (GPT-3) 和图像 (DALL-E) 领域成功案例的启发,下一波文本到视频生成研究采用了 Transformer 架构。PhenakiMake-A-VideoNUWAVideoGPTCogVideo 都提出了基于 Transformer 的框架,而像 TATS 这样的工作则提出了混合方法,结合 VQGAN 进行图像生成和时间敏感的 Transformer 模块来顺序生成帧。在第二波工作中,Phenaki 特别引人注目,因为它能够根据一系列提示(也就是一个故事情节)生成任意长度的视频。类似地,NUWA-Infinity 提出了一种“自回归上的自回归”生成机制,用于从文本输入进行无限的图像和视频合成,从而能够生成长篇、高清质量的视频。然而,Phenaki 和 NUWA 模型都尚未公开发布。

phenaki
Phenaki 采用基于 Transformer 的架构,图片取自 这里

第三波也是当前的文本到视频模型主要采用基于扩散的架构。扩散模型在生成多样、超现实且上下文丰富的图像方面取得了卓越成功,这引发了人们将扩散模型推广到其他领域(如音频、3D,以及最近的视频)的兴趣。这波模型由 视频扩散模型 (VDM) 开创,它将扩散模型扩展到视频领域;以及 MagicVideo,它提出了一个在低维潜在空间中生成视频剪辑的框架,并报告了相比 VDM 巨大的效率提升。另一个值得注意的提及是 Tune-a-Video,它用单个文本-视频对微调一个预训练的文本到图像模型,并能够在保留运动的同时改变视频内容。随后不断扩大的文本到视频扩散模型列表包括 Video LDMText2Video-ZeroRunway Gen1 和 Gen2,以及 NUWA-XL

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

数据集

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

这些大型数据集也面临着与文本到图像数据集中发现的类似问题。最常用的文本-视频数据集 WebVid 包含 1070 万对文本-视频对(5.2 万视频小时),并含有大量带有无关视频描述的噪声样本。其他数据集试图通过专注于特定任务或领域来克服这个问题。例如,Howto100M 数据集包含了 1.36 亿个视频片段,其字幕逐步描述了如何执行复杂任务,如烹饪、手工、园艺和健身。同样,QuerYD 数据集专注于事件定位任务,因此视频的字幕详细描述了物体和动作的相对位置。CelebV-Text 是一个大规模的面部文本-视频数据集,包含超过 7 万个视频,用于生成具有逼真面孔、情感和手势的视频。

Hugging Face 上的文本到视频

使用 Hugging Face Diffusers,您可以轻松下载、运行和微调各种预训练的文本到视频模型,包括来自阿里巴巴/达摩院视觉智能实验室的 Text2Video-Zero 和 ModelScope。我们目前正在努力将其他令人兴奋的工作集成到 Diffusers 和 🤗 Transformers 中。

Hugging Face 演示

在 Hugging Face,我们的目标是让使用和构建最先进的研究成果变得更加容易。请访问我们的 Hub,查看并体验由 🤗 团队、无数社区贡献者和研究作者贡献的 Spaces 演示。目前,我们托管了 VideoGPTCogVideoModelScope 文本到视频Text2Video-Zero 的演示,未来还会有更多。为了看看我们能用这些模型做什么,让我们来看看 Text2Video-Zero 演示。这个演示不仅展示了文本到视频的生成,还支持多种其他生成模式,用于文本引导的视频编辑和使用姿态、深度和边缘输入以及文本提示的联合条件视频生成。

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

🤗 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 = "Spiderman is surfing"
video_frames = pipe(prompt, num_inference_steps=25).frames
video_path = export_to_video(video_frames)

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

最后,还有各种不在 Hub 上的开源项目和模型。一些值得注意的提及包括 Phil Wang (又名 lucidrains) 对 ImagenPhenakiNUWAMake-a-Video视频扩散模型 的非官方实现。另一个由 ExponentialML 做的激动人心的项目是建立在 🤗 diffusers 之上,用于微调 ModelScope 文本到视频模型。

结论

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

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

社区

飞机上的一个男人

此评论已被隐藏

船在路上行驶

IMG-20250209-WA0367.jpg

跳舞

DOC-20250102-WA0013.jpg

这个男人站起来,开始随着80年代的歌曲《planet rock》跳机械舞

谢谢

注册登录 以发表评论