以下是一些常见的视频生成方案:
Pika 方案: 生成视频需要进入 generate 频道,目前有 10 个 generate 频道,可任选一个进入。 工作流程包括:直接生成视频,在输入“/create”,然后输入 prompt,得到视频;图片生成视频,使用 MJ/SD 生成图像(可选)+在 PIKA 平台添加 prompt 得到视频。 Phenaki 方案(来自 GoogleBrain): 可以通过文字描述生成可变长度的视频。 主要依赖视频像素生成能力和隐空间 token 预测能力。 视频像素生成能力依赖 VQ-VAE,主要借鉴了 C-ViViT 方法。隐空间 token 预测能力依赖 encoder-only 的双向 transformer 的完形填空能力,主要借鉴了 MaskGIT 方法。 C-ViViT 训练第一个阶段参考了 ViViT 的做法,主要用 VQ-VAE 方法训练得到 encoder、码本和 decoder 三个部件。attention 的方式是先做 spatial 的 attention,然后做 temporal 的 attention。C-ViViT 做 patch partition 的时候,先把帧堆叠在一起形成的输入,做没有 overlap 的时间和空间切分。每个 patch 在时间维度上,除了第一帧只有一帧,其余每个 stride 是包含连续的帧。因此第一帧的 patch 小方块大小为,其余 patch 的小方块大小为。经过线性映射层后统一变成了长度为的 feature。一共可以得到的 token 数为个,注意 video 视觉任务比 LLM 的 sequence 要长,因为每一帧都包含大量 patch(例如 256,512)。C-ViViT 把 spatial 和 temporal 的 CLS token 都去掉了,并且增加了 causal transform 的 decoder-only 的 mask,这样可以在计算复杂度不爆表的情况下产生任意长度的。C-ViViT decoder 设计跟 encoder 反过来,先过 temporal 的 attention,然后再是 spatial 的 attention。训练使用 VQ-VAE 方式重建训练,训练结束得到离散的 codebook,这样输入的 video 经过 encoder 转化为离散的 codebook 向量,然后再经过 decoder 得到 pixel 视频。 Sora 方案: 数据准备:使用包括内部数据集和公开数据集在内的多种数据源,对图像和视频进行尺寸调整,包括空间上的抗锯齿双线性缩放和时间上的跳帧处理。 模型训练:基础训练阶段使用正方形图像比例进行训练。在特定数据子集上对基础模型进行微调,以生成 9:16 比例的视频。采用了位置嵌入的插值和窗口尺寸的缩放。 视频生成:首先使用图像 LDM 生成单帧图像。然后运行预测模型,以生成的单帧为条件,生成关键帧序列。在视频扩展时,再次调用预测模型,但以两帧(捕捉方向信息)为条件来生成连贯的运动。 微调与优化:对于长时间视频生成,模型在帧预测任务上进行联合训练。在推断阶段,优化目标是加快小批量图像生成的速度。 模型初始化:由于视频数据集规模相对较小,从预训练的图像模型(如 ViT)初始化视频模型,以促进更有效的训练。