深入文本到视频模型
文本到视频生成是一项新兴的计算机视觉任务,它根据文本描述创建图像序列,同时保持空间和时间的一致性。虽然它遵循与文本到图像生成相似的演进路径,但由于需要跨帧的长期依赖,复杂度显著更高。
文本到视频生成的挑战
从文本生成视频比生成静态图像更困难,因为它需要在时间上保持一致性。主要障碍包括:
- 计算成本: 确保跨帧的时间和空间一致性会产生长期依赖,使得训练在计算上成本高昂,往往超出许多研究者的负担。
- 数据稀缺: 高质量的多模态数据集,包含配对的视频和文本,十分稀少且常常标注稀疏,这阻碍了模型学习复杂运动语义的能力。
- 字幕歧义: 描述视频比描述单张图像更为复杂。有效的视频生成通常需要一系列提示或叙事故事,而不是单一的简短文本提示。
模型架构的演进
文本到视频模型已经经历了三大主要的架构浪潮:
1. 基于 GAN 与 VAE 的方法
早期研究利用生成对抗网络(GAN)和变分自编码器(VAE)对帧进行自回归生成,依据字幕进行生成。示例包括 Text2Filter 和 TGANs-C。这些早期模型受限于低分辨率、短时长以及简单、孤立的运动。
2. 基于 Transformer 的框架
在 GPT-3 和 DALL-E 成功之后,研究者采用 Transformer 架构来处理更长的序列。值得注意的模型包括:
- Phenaki: 能够在一系列提示(情节)条件下生成任意长度的视频。
- NUWA-Infinity: 使用自回归之上再自回归的机制合成无限高清质量的视频。
- 其他框架: CogVideo、VideoGPT 和 Make-A-Video 也采用基于 Transformer 的方法,而 TATS 将 VQGAN 与时间敏感的 Transformer 模块相结合。
3. 基于扩散的架构
当前的研究浪潮聚焦于扩散模型,以实现超写实且语境丰富的结果。关键进展包括:
- Video Diffusion Models (VDM): 将扩散模型扩展到视频领域的先驱。
- MagicVideo: 在低维潜空间中生成视频片段,相比 VDM 提高了效率。
- Text2Video-Zero: 一个零-shot 框架,将可训练的运动动力学模块与预训练的 Stable Diffusion 模型相结合,无需配对的文本-视频数据。
- NUWA-XL: 采用“扩散之上再扩散”的方法,在 3,376 帧上进行训练,以缩小滑动窗口自回归生成中出现的上下文差距。
- Tune-a-Video: 使用单个文本-视频配对对预训练的文本到图像模型进行微调,以改变内容同时保留运动。
视频-文本数据集
模型性能在很大程度上取决于配对视频-文本数据集的质量。当前的策略包括使用大规模数据集或结合不同的数据类型:
- WebVid: 一个常用数据集,包含 1070 万文本-视频配对(52K 小时视频),但其中噪声和不相关描述较多。
- Howto100M: 专注于逐步教学视频(烹饪、园艺等),拥有 1.36 亿剪辑。
- QuerYD: 专注于事件定位,提供关于对象和动作相对位置的详细字幕。
- CelebV-Text: 大规模人脸数据集,拥有超过 7 万视频,用于生成逼真的面孔、情感和手势。
一些模型,如 Make-a-Video,尝试通过使用文本-图像配对学习视觉外观,并利用单模态视频数据无监督学习时空依赖,以绕过数据稀缺问题。
实现与开源资源
许多文本到视频模型现已通过 diffusers 库集成到 Hugging Face 生态系统中。用户可以运行和微调模型,如 Text2Video-Zero 和 ModelScope(来自阿里巴巴 / DAMO Vision Intelligence Lab)。
实际应用
用户可以使用以下实现模式部署 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)
社区生态系统
除了官方集成,社区还通过贡献者如 Phil Wang (lucidrains) 开发了多个关键论文(包括 Imagen、Phenaki 和 NUWA)的非官方实现,并提供了如 ExponentialML 提供的微调框架。
Sources
- OriginalA Dive into Text-to-Video Models