零样本视频生成无压力,基于飞桨框架实现 Text2Video-Zero 核心代码及依赖库
项目背景
继 AI 绘画之后,短视频行业正迎来 AI 智能创作的新浪潮。AI 智能创作正在各个方面为创作者和用户带来新的体验和价值。AI 动漫视频、AI 瞬息宇宙、AI 视频风格化等诸多创作功能不仅为视频内容创作提供了全新灵感,而且大大降低了用户创作的门槛,提高了视频生产效率。
然而,现有的文本-视频生成方法需要极其高昂的计算资源和超大规模的文本-视频数据集(如:CogVideo、Gen-1),对大多数用户来说,成本较高。此外,很多时候单纯使用文本提示生成视频,生成的内容较为抽象,不一定符合用户的需求。因此,在某些情况下,用户需要提供参考视频,并通过文本提示来引导模型进行文本视频生成。与之对应,Text2Video-Zero 可以通过运动动力学(motion dynamics)、帧间注意力机制(frame-level self-attention)等技术手段对原始的文本-图像模型进行修改,使其可以完成文本-视频任务,且不需任何训练,是一种十分理想的文本-视频生成方法。本项目基于飞桨框架实现了 Text2Video-Zero 的核心代码及依赖库,并通过 PPDiffusers 的文本-图像生成模型实现了文本-视频生成、文本-视频编辑、姿态引导的文本-视频生成、边缘引导的文本-视频生成、深度图引导的文本-视频生成、边缘引导和 Dreambooth 定制的文本-视频生成在内的全部视频生成模块,并将该成果开源在 AI Studio 上。该实现对丰富飞桨 AIGC 生态具有极大的意义。
大模型专区 Text2Video-Zero-零样本文本到视频生成(上)
https://aistudio.baidu.com/aistudio/projectdetail/6212799
大模型专区 Text2Video-Zero-零样本文本到视频生成(下)
https://aistudio.baidu.com/aistudio/projectdetail/6389526
*模型原理
Text2Video-Zero 以随机采样潜在编码为起点,使用预训练的 Stable Diffusion 模型(SD),通过 DDIM 反向传播步来获得。对于每一帧 k,作者使用变形函数将变换为,从而获得特定的运动场结果。通过使用运动动力学对潜在编码进行增强,模型可以确定全局场景和相机运动,从而实现背景和全局场景的时间一致性。之后,作者使用 DDPM 前向传播对潜在编码 , k=1,…,m 进行传递。这里,概率 DDPM 方法可以实现更大自由度的物体运动。然后将潜在编码传递到使用帧间注意力机制修改后的 SD 模型中,帧间注意力机制使用第一帧的 key 和 value 来生成整个视频序列的图像。通过帧间注意力机制,前景物体的身份和外观可以在视频序列中保留。不仅如此,作者还对生成的视频序列使用了背景平滑技术。具体来说,作者使用显著目标检测来获得每一帧 k 中暗示了前景像素的掩码 ,并使用第一帧变换到第 k 帧的潜在编码 和潜在编码 来进一步提高掩码 中背景部分的时间一致性。该方法的整体架构图如下:
图 1 Text2Video-Zero 模型的整体架构图
由于 Text2Video-Zero 是一种通过对文本-图像模型进行零样本微调来生成视频的 AIGC 模型。因此,本项目会涉及到很多预训练的文本-图像生成模型,包括 Stable Diffusion V1.5、Instruct-Pix2Pix 、ControlNet 和张一乔老师(AI Studio 昵称为笠雨聆月)的诺艾尔 Dreambooth 模型。其中,Stable Diffusion V1.5 模型用于文本-视频生成,Instruct-Pix2Pix 模型用于文本-视频编辑,ControlNet 模型用于姿态引导的文本-视频生成,边缘引导的文本-视频生成和深度图引导的文本-视频生成,诺艾尔 Dreambooth 模型用于边缘引导和 Dreambooth 定制的文本视频生成。所有开源模型附在文章最后,在此也对所有开源贡献者表示衷心感谢。
运动动力学核心代码
帧间注意力机制核心代码
开发环境与实现过程
PPDiffusers 介绍
PPDiffusers 是一款支持多种模态(如文本图像跨模态、图像、语音)扩散模型(Diffusion Model)训练和推理的国产化工具箱。依托于飞桨框架和 PaddleNLP 自然语言处理开发库,PPDiffusers 提供了超过 50 种 SOTA 扩散模型 Pipelines 集合,支持文图生成(Text-to-Image Generation)、文本引导的图像编辑(Text-Guided Image Inpainting)、文本引导的图像变换(Image-to-Image Text-Guided Generation)、文本条件视频生成(Text-to-Video Generation)、超分(Super Resolution)在内的 10 余项任务,覆盖文本、图像、视频、音频等多种模态。2023 年 06 月 20 日,飞桨正式发布 PPDiffusers 0.16.1 版本,新增 T2I-Adapter,支持训练与推理;ControlNet 升级,支持 reference only 推理;新增 WebUI Stable Diffusion Pipeline,支持通过 prompt 的方式动态加载 lora、textual_inversion 权重;新增 Stable Diffusion HiresFix Pipeline,支持高分辨率修复;新增关键点控制生成任务评价指标 COCO eval;新增多种模态扩散模型 Pipelines,包括视频生成(Text-to-Video-Synth、Text-to-Video-Zero)、音频生成(AudioLDM、Spectrogram Diffusion);新增文图生成模型 IF。
GitHub 链接
https://github.com/PaddlePaddle/PaddleNLP/tree/develop/ppdiffusers
安装指令
PPDiffusers 的安装指令如下:
在此基础上,也可选择其他环境安装:
实现效果
文本-视频生成效果
根据用户输入的文本提示词生成相应视频。
推理代码:
最终呈现的效果如图 2 所示:
图 2 文本视频生成效果
文本-视频编辑效果
根据用户输入的文本提示词对视频进行编辑。
推理代码:
最终呈现的效果如图 3 所示:
图 3 文本视频编辑效果
文本-视频编辑效果
根据用户输入的文本提示和运动姿态生成相应视频。
推理代码如下:
最终呈现的效果如图 4 所示:
图 4 姿态引导的文本-视频生成效果
边缘引导的文本-视频生成
推理代码如下:
最终呈现的效果如图 5 所示:
图 5 边缘引导的文本-视频生成效果
深度图引导的文本-视频生成
根据用户输入的文本提示和深度图生成相应视频。
推理代码如下:
最终呈现的效果如图 6 所示:
图 6 深度图引导的文本-视频生成效果
边缘引导和 Dreambooth 定制的文本-视频生成
根据用户输入的文本提示、图像边缘和 Dreambooth 定制化模型生成相应视频。
推理代码如下所示:
最终呈现的效果如图 7 所示:
图 7 边缘引导和 Dreambooth specialization 定制的文本-视频生成
结语
以上是本项目对 Text2Video-Zero 官方项目的全部实现。现有的文本-视频生成方法大多用于为用户提供灵感,很难为用户提供定制化视频生成服务。通过运动动力学、帧间注意力机制等技术手段对原始的文本-图像模型进行修改,Text2Video-Zero 很好地解决了上述问题,可以基于用户提供的文本提示、待编辑视频、运动姿态、边缘图像、深度图像和 Dreambooth 模型进行文本视频生成。该方法在无需训练的情况下,对主流的文本-图像生成模型进行微调,这意味着用户只需要训练出相应的文本-图像生成模型,就可以进行定制化的文本-视频生成,展现了 Text2Video-Zero 在文本-视频生成领域巨大的潜力。欢迎更多感兴趣的开发者参与到飞桨文本-视频生成生态的建设中,并依托百度飞桨 AI 技术开发出更多有趣的应用。
参考文献
[1] https://github.com/Picsart-AI-Research/Text2Video-Zero
[2] https://github.com/showlab/Tune-A-Video
[3] https://github.com/PaddlePaddle/PaddleNLP/tree/develop/ppdiffusers
[4] https://aistudio.baidu.com/aistudio/projectdetail/5972296
[5] https://aistudio.baidu.com/aistudio/projectdetail/5912535
往期推荐
评论