本文将深入探讨OpenAI最新发布的Sora模型。Sora可以通过文本生成长达一分钟的长视频,而Sora模型不仅仅是一个视频生成器,它还代表了一种全新的数据驱动物理引擎,能够在虚拟世界中模拟现实世界的复杂现象。
Sora模型的出现,标志着AI在视频生成领域的一次重大飞跃。它不仅能够生成逼真的视频内容,还能够模拟物理世界中的物体运动和交互,这对于电影制作、游戏开发、虚拟现实以及未来可能的通用人工智能(AGI)研究都有着深远的影响。
该技术报告聚焦于两点:
1️⃣Sora这个模型,把所有类型的视频数据转换成统一的表示,然后去实现一个大规模的大模型训练。
2️⃣对Sora能力的局限性评估
该篇没有提到训练的细节以及源码
一、Turning visual data into patches
第一部分主要讲的是将输入视频数据转换成patches。将输入的视频数据(可以看成是\(\textcolor{blue}{x \in R^{D \times H \times W}}\)的若干帧图像)到编码器当中,通过编码器将视频的原素材压缩到低维的向量空间,然后将低维的潜在表示分解为时空(spacetime) patches,这些patches最终会被flatten成一维向量,送入diffusion model。
这里的把潜在表示分解为时空 patches的方式可能是依据ViViT。
第一种,从输入数据中均匀采样n个帧,使用与ViT相同的方法独立地嵌入每个2D帧,并将所有这些token连接在一起
第二种,把输入的视频划分成若干个tuplet,每个tuplet会当作成一个token,经过spatial temperal attention进行空间和时间建模获得有效的视频表征token,即上面灰色block部分。
这样做的一个好处是可以允许不同分辨率的输入。
二、Video compression network
上面提到的编码器部分,也就是图中的(Visual encoder)是一个预训练好的自动编码器,它是由视频数据输入单独训练的一个模型。该模型的输入是原始的视频,而输出则是低维的向量空间。同样地,在输出之前会有个解码器部分,将低维的向量空间映射回像素空间。
三、Spacetime latent patches
在LLM大语言模型当中输入是一个个token(单词),然后根据当前的token或者是句子去预测它下个token。而在视频当中没有token这个概念,于是Sora就是将时空 pathces类比成LLM当中的token。
四、Scaling transformers for video generation
Sora 其实是一个扩散模型与transform的结合(DiT) 。它通过给定输入的noisy patches(以及文本提示等条件信息),去训练来预测原始的“干净”Patches。
由于Transformer的引入,我们可以增大视频生成模型。报告中还展示了随着训练的进行,具有固定种子和输入的视频样本的比较。随着训练计算的增加,训练的时间足够长的时候,样本质量显著提高。
Sora 的模型架构
SORA = [VAE encoder + DiT(DDPM)+ VAE decoder +CLIP]
SORA模型训练流程:
Step1:使用DALLE 3(CLIP)把文本和视频对<text, video>联系起来;
Step2:视频数据 通过VAE 编码器压缩成低维空间表示,再切分为Patches
Step3:基于Diffusion Transformer从图像语义生成,完成从文本语义到图像语义进行映射;
🟠DiT 首先将每个patch空间表示Noised Latent输入到第一层网络,以此将空间输入转换为tokens序列。再结合当前的时间步\(\textcolor{blue}{t}\),label\(\textcolor{blue}{y}\)进行嵌入之后,一起送到DiT Block模块
🟢将标准基于ViT的patch和Position Embedding 应用于所有输入token,最后将输入token由Transformer进行处理
🟡DiT还会处理额外信息,例如时间步长、类别标签,文本语义等
Step4:DiT生成的低维空间表示,通过VAE解码器恢复成像素级的视频数据
五、Variable durations resolution, aspect ratios
过去的图像和视频生成方法通常是将视频调整其大小、裁剪或修剪为标准大小,例如,分辨率为 256x256 的 4 秒视频。但作者发现,相反,以原始视频大小对数据进行训练有几个好处:
1️⃣采样灵活性:Sora 可以对宽屏 1920x1080p 视频、垂直 1080x1920 视频以及介于两者之间的所有视频进行采样。这使 Sora 可以直接以原始纵横比为不同设备创建内容。它还使我们能够在以全分辨率生成之前以较小的尺寸快速制作内容原型 - 所有这些都使用相同的模型。
2️⃣改进的取景和构图:作者根据经验发现,以原始纵横比对视频进行训练可以改善构图和取景。将 Sora 与另一个版本的模型进行了比较,该模型将所有训练视频裁剪为正方形,这是训练生成模型时的常见做法。在方形裁剪上训练的模型(左)有时会生成视频,其中主体仅部分可见。相比之下,Sora(右)的视频改善了取景。简单的来说就是如果你将截断的视频丢到模型当中进行训练,那么生成的视频也会是截断的。
由此,我们可以知道Sora支持不同长度、不同分辨率的输入支持,并且会使用这些数据进行训练,从而保证推理时在不同长度和分辨率上的效果。
但是不同的分辨率输入在训练时可能会带来大量的计算负载不均衡,从而导致训练缓慢。有人从openai的reference中推测出,它可能使用了google的NaVit的技术降低了计算量,支持动态输入。
六、语言理解能力
训练文本到视频生成系统需要大量带有相应文本标题的视频(Text-Video Pairs)。这里是应用了DALL·E 3到视频。首先训练一个高度描述性的字幕器模型,然后使用它为训练集中的所有视频生成文本字幕。对高度描述性视频字幕的培训可以提高文本保真度以及视频的整体质量。
与DALL·E 3相似,利用 LLM优化Prompt,例如使用GPT 将简短的用户提示转换为更长的详细字幕,然后发送到视频模型。这使 Sora 能够准确遵循用户提示生成高质量的视频。
七、Prompting with images and videos
除了文本,还可以用图像或视频使 Sora 能够执行各种图像和视频编辑任务——创建完美循环的视频、为静态图像制作动画、在时间上向前或向后扩展视频等。
八、新兴的仿真功能
视频模型在大规模训练时表现出许多有趣的涌现能力。这些功能使 Sora 能够模拟物理世界中人、动物和环境的某些方面。这些属性的出现对3D、物体等没有任何明确的归纳偏差——它们纯粹是尺度现象。
3D 一致性。Sora 可以生成具有动态相机运动的视频。随着摄像机的移动和旋转,人物和场景元素在三维空间中始终如一地移动。
远距离相干性和物体持久性。 视频生成系统面临的一个重大挑战是在对长视频进行采样时保持时间一致性。我们发现,Sora通常(尽管并非总是)能够有效地对短期和长期依赖关系进行建模。例如,我们的模型可以保留人、动物和物体,即使它们被遮挡或离开框架。同样,它可以在单个样本中生成同一角色的多个镜头,从而在整个视频中保持它们的外观。
与世界互动。Sora 有时可以以简单的方式模拟影响世界状态的动作。例如,画家可以在画布上留下新的笔触,这些笔触会随着时间的推移而持续存在,或者一个人可以吃汉堡并留下咬痕。
模拟数字世界。Sora还能够模拟人工过程,例如视频游戏。Sora 可以同时通过基本策略控制 Minecraft 中的玩家,同时还可以高保真地渲染世界及其动态。这些功能可以通过提示 Sora 提及“Minecraft”来零触发
九、局限性
Sora 目前作为模拟器表现出许多局限性。例如,它不能准确地模拟许多基本相互作用的物理特性,比如玻璃破碎。
十、总结
1️⃣内容上:
最大支持60秒高保真视频生成,支持短视频前后扩展,即可保持视频连续,并扩展时长
支持基于视频+文本视频编辑,一句话改变原视频,彻底改变视频创作方式
2️⃣技术上:
- 将视频压缩为空间时间块(Spacetime patches),使用Diffusion Transformer作为主干网络建模;
- 由于将视频信息压缩为lower-dimensional latent space, 可支持不同尺寸、时间、分辨率的直接生成
3️⃣数据工程:
- 使用DALL·E 3 进行视频文本标注
- 利用GPT4将用户输入的简短提示词,填充为复杂细节文本
4️⃣其他:
- 物理交互的细节仍有缺陷,如玻璃破碎与水流,雪地脚印无法生成等;
OpenAI做Sora这个工作不是为了纯粹的抓人眼球,更多是偏向于学习视觉,理解世界的一个目标
Sora能力的总结:
Text-to-video:文生视频
Image-to-video:图生视频
Video-to-video:改变源视频风格or场景
Extending video in time:视频拓展(前后双向)
Image generation:图片生成(size 最高达到 2048x2048)
Generate video in any format:From 1920 x 1920 to 1080 x 1920 视频输出比例定义
Simulate virtual worlds:链接虚拟世界,游戏视频场景生成
Create a video:长达60s的视频并保持人物,场景一致性