Skip to content

文生视频:任务、挑战与现状

文生视频示例

示例视频由 ModelScope 生成。

最近生成模型方向的进展令人目不暇接,而文生视频(Text-to-Video)将是这一连串进展的下一波。尽管“文生视频”从字面上很容易理解,但它其实是一项相当新的计算机视觉任务,要求根据文本描述生成一系列在时间和空间上都一致的图像。虽然看上去这项任务与文生图(Text-to-Image)极其相似,但众所周知,它的难度要大得多。这些模型是如何工作的?它们与文生图模型有何不同?我们对其性能又有何期待?

1. 文本生成视频使用案例

1.1 基于脚本的视频生成

文生视频技术可以根据提供的文本脚本创建短视频内容,用于制作引人入胜、信息丰富的营销视频。例如,一家公司可以使用文生视频模型制作一段解释其产品工作原理的视频。

1.2 内容格式转换

文生视频模型可以从长文本中生成视频,包括博客文章、新闻报道和文本文件。它还可以用于创建更具吸引力和互动性的教育视频,例如将文章中的复杂概念可视化为视频。

1.3 配音与语音

文生视频模型可以用于创建 AI 新闻主播,每天播报新闻,或者供电影制片人制作短片、音乐视频。

2. 任务变体

文生视频模型根据输入和输出有多种变体。

2.1 文本到视频编辑

文本到视频编辑任务是生成基于文本的视频样式和局部属性编辑。相关模型可以使裁剪、稳定、色彩校正、调整大小和音频编辑等任务更容易一致地执行。

2.2 文本到视频搜索

文本到视频搜索是检索与给定文本查询相关的视频的任务。由于视频是复杂的媒介,可能包含大量信息,因此具有挑战性。通过语义分析提取文本查询的含义,通过视觉分析提取视频中的物体和动作特征,通过时间分析分类视频中物体和动作之间的关系,可以确定哪些视频最可能与查询相关。

2.3 文本驱动视频预测

文本驱动视频预测是从文本描述生成视频序列的任务。文本描述可以是从简单句子到详细故事的任何内容。该任务的目标是生成既视觉上逼真,又在语义上与文本描述一致的视频。

2.4 视频翻译

文本到视频翻译模型可以将视频从一种语言翻译为另一种语言,或者允许用非英语句子查询多语言文本视频模型。这对于想要观看不懂语言的视频的用户非常有用,特别是当存在多语言字幕可用于训练时。

在本文中,我们将讨论文生视频模型的过去、现在和未来。首先回顾文生视频与文生图任务之间的差异,并讨论无条件视频生成和文生视频两个任务各自的挑战。此外,我们将介绍文生视频模型的最新发展,探索这些方法的工作原理及其性能。最后,我们将介绍 Hugging Face 在该领域的工作,包括 Hub 上的应用演示与相关资源。

Make-a-Video 示例

根据各种文本描述输入生成的视频示例,图片来自论文 Make-a-Video

3. 文生视频与文生图

最近文生图领域的进展层出不穷,大家可能很难跟上。我们先快速回顾一下。

就在两年前,第一个支持开放词汇(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. 计算效率更高的生成更长、更高分辨率视频的方法。

4. 如何实现文生视频

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

与文生图任务一样,文生视频也是个年轻的方向,最早只能追溯到几年前。早期研究主要使用基于 GAN 和 VAE 的方法,在给定文本描述的情况下自回归地生成视频帧(参见 Text2FilterTGANs-C)。虽然这些工作为文生视频这一新的计算机视觉任务奠定了基础,但应用范围有限,仅限于低分辨率、短距离以及视频中目标运动单一、孤立的情况。

TGANs-C 示例

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

受文本(GPT-3)和图像(DALL-E)中大规模预训练 Transformer 模型成功的启发,文生视频研究的第二波浪潮采用了 Transformer 架构。PhenakiMake-A-VideoNUWAVideoGPTCogVideo 都提出了基于 Transformer 的框架,而 TATS 提出了一种混合方法,将用于生成图像的 VQGAN 与用于顺序生成帧的时间敏感 Transformer 模块结合起来。在第二波浪潮中,Phenaki 尤其有意思,因为它能够根据一系列提示(即一个故事情节)生成任意长视频。同样,NUWA-Infinity 提出了一种“双重自回归(autoregressive over autoregressive)”生成机制,可以基于文本输入合成无限长度的图像和视频,从而使生成高清长视频成为可能。不过,Phenaki 和 NUWA 模型均无法从公开渠道获取。

Phenaki 架构

Phenaki 的模型架构基于 Transformer,图片来自 论文

第三波也就是当前这一波文生视频模型浪潮主要以基于扩散的架构为特征。扩散模型在生成多样化、超现实和上下文丰富的图像方面取得了显著成功,这引起了人们将扩散模型推广到其他领域(如音频、3D,最近又拓展到视频)的兴趣。这一波模型由 Video Diffusion Models(VDM)开创,它首次将扩散模型推广至视频领域。随后,MagicVideo 提出了一个在低维隐空间中生成视频片段的框架,据其报告,新框架与 VDM 相比在效率上有巨大提升。另一个值得一提的是 Tune-a-Video,它使用单个“文本-视频对”微调预训练的文生图模型,并允许在保留运动的同时改变视频内容。随后涌现出了越来越多的文生视频扩散模型,包括 Video LDMText2Video-ZeroRunway Gen-1 / Runway Gen-2 以及 NUWA-XL

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

5. 数据集

与其他视觉语言模型一样,文生视频模型通常在大型“文本-视频对”数据集上进行训练。这些数据集中的视频通常被分成短的、固定长度的片段,并且通常仅限于少数几个目标的孤立动作。出现这种情况的一部分原因是计算限制,另一部分原因是以有意义的方式描述视频内容本身就很难。

多模态视频文本数据集和文生视频模型的发展往往是交织在一起的,因此有不少工作侧重于开发更易于训练的更好、更通用的数据集。同时也有一些工作另辟蹊径,探索替代方案,例如 Phenaki 将“文本-图像对”与“文本-视频对”相结合用于文生视频任务;Make-a-Video 则更进一步,提议仅使用“文本-图像对”来学习世界表象信息,并使用单模态视频数据以无监督的方式学习时空依赖性。

这些大型数据集面临与文本-图像数据集类似的问题。最常用的文生视频数据集 WebVid 由 1070 万个“文本-视频对”(视频时长 5.2 万小时)组成,并包含一定量的噪声样本,这些样本中的视频文本描述与视频内容不相关。其他数据集试图通过聚焦特定任务或领域来解决这个问题。例如,Howto100M 数据集包含 1.36 亿个视频片段,其中文本部分描述了如何一步一步执行复杂任务,例如烹饪、手工制作、园艺和健身;QuerYD 数据集聚焦于事件定位任务,视频字幕详细描述了目标和动作的相对位置;CelebV-Text 是一个包含超过 7 万个视频的大规模人脸文本-视频数据集,用于生成具有逼真的人脸、情绪和手势的视频。

6. 文生视频模型

7. Hugging Face 上的文生视频

使用 Hugging Face Diffusers,你可以轻松下载、运行和微调各种预训练的文生视频模型,包括 Text2Video-Zero 和 阿里巴巴达摩院 的 ModelScope。Hugging Face 正在努力将更多优秀工作集成到 Diffusers 和 Transformers 中。

7.1 Hugging Face 应用演示

在 Hugging Face,目标是让相关库更易于使用并包含最先进的研究。你可以前往 Hub 查看和体验由 Hugging Face 团队、社区贡献者和研究者贡献的 Spaces 演示。目前,Hub 上有 VideoGPTCogVideoModelScope 文生视频 以及 Text2Video-Zero 的应用演示,后续还会越来越多。

要了解这些模型能用来做什么,可以看一下 Text2Video-Zero 的应用演示。该演示不仅展示了文生视频应用,还包含多种其他生成模式,如文本引导的视频编辑,以及基于姿势、深度、边缘输入结合文本提示进行联合条件下的视频生成。

除了使用应用演示尝试预训练文生视频模型外,你还可以使用 Tune-a-Video 训练演示,使用自己的“文本-视频对”微调现有的文生图模型。仅需上传视频并输入描述该视频的文本提示即可。训练完成后,可以将模型上传到公开的 Tune-a-Video 社区 Hub 或私人用户名下的 Hub,然后转到演示的 Run 选项卡,根据任意文本提示生成视频。

Hub 上的所有 Space 其实都是 Git 仓库,你可以在本地或部署环境中克隆和运行它们。下面演示如何克隆 ModelScope 演示,安装环境,并在本地运行:

shell
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 文生视频模型,你只需几行代码即可直接加载并使用该模型生成新视频。

python
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)
print(video_path)

7.2 其他社区开源文生视频项目

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

总结

文生视频的研究正在呈指数级发展,但现有工作在上下文一致性上仍有限制,同时还面临数据集稀缺、计算成本高等诸多挑战。在这篇博文中,我们介绍了文生视频模型的限制、独特挑战和当前状态。我们看到了最初为其他任务设计的架构范例如何赋能文生视频任务的巨大飞跃,以及这对未来研究意味着什么。虽然进展令人印象深刻,但与文生图模型相比,文生视频模型还有很长的路要走。最后,我们还展示了如何通过 Hub 上的应用演示使用这些模型,以及如何将其作为 Diffusers 流水线的一部分完成各种任务。

参考文献

Maintained by Robin