Sora 管中窥豹

Sora 管中窥豹
Photo by Roxy Aln / Unsplash

Sora 是什么

Sora 是 OpenAI 推出的一个人工智能模型,能根据文字说明创造出逼真而富有想象力的场景。官网链接

为什么这么火​​

Sora 火到什么程度就不用展开说了,毕竟国内都开始卖课了😓。前有 Pika、Runway 这些文生视频的模型,为什么 Sora 这么火🔥?

当然是因为它厉害,可以说是把视频生成内容拉到了一个全新的高度。主要有以下几方面能力吊打其他模型

1) 超长的生成视频时长

根据 OpenAI 官网展示的视频,Sora 生成的视频平均长度将近 16 秒,最长达到20秒,而相比之下,其他文生视频模型如 Pika、Runway、PixVerse 生成的视频长度均在 3~4 秒左右。官网目前说 Sora 最长可以生成长达一分钟的视频。

2)任意的视频尺寸

Sora 是一个通用的视觉数据模型,可以生成不同长度、长宽比和分辨率的视频和图像。

2)更强的视频连贯性

Sora生成的视频具有无缝过渡、自然的摄像机移动和流畅的角色动画,增强了整体观看体验。而相比之下,其他模型制作的视频经常会出现场景突变、画面不流畅等问题,影响观看体验。

3)更丰富的视觉细节

Sora生成的视频视觉细节丰富,物体纹理清晰,色彩逼真,整体视频质量更高。

提示:无人机拍摄大苏尔加雷点海滩上海浪拍打崎岖悬崖的景象。湛蓝的海水拍打出白色的浪花,夕阳的金光照亮了岩石海岸。远处有一座小岛,岛上有一座灯塔,绿色的灌木丛覆盖着悬崖边缘。从公路到海滩的陡峭落差非常壮观,悬崖的边缘突出海面。这里的景色捕捉到了海岸的原始之美和太平洋海岸公路的崎岖地貌。
提示:动画场景特写:一个矮小蓬松的怪物跪在一根融化的红蜡烛旁。艺术风格为三维写实,注重光影和质感。这幅画的基调是惊奇和好奇,怪物睁大眼睛、张开嘴巴注视着火焰。它的姿势和表情传达出一种天真和俏皮的感觉,仿佛是第一次探索周围的世界。暖色调和戏剧性灯光的使用进一步增强了画面的温馨氛围。
closeup-of-womans-eye
提示:一位 24 岁女性眨眼的特写镜头,站在马拉喀什,正值 "魔法时刻",电影胶片,70 毫米,景深,色彩鲜艳,电影风格

背后原理

它采用了两种技术:一是扩散模型(从随机噪声出发,逐步精细化至目标视频),二是 Transformer 架构(负责处理视频帧的连续序列)。

扩散模型(Diffusion Model)

图片生成模型,通过去噪产生图片。灵感来源于热力学原理:逆转墨水在水中扩散的过程。

对清晰图片逐步添加随机噪声,扩散模型利用这些逐步加噪的图片和提示词作为学习数据,学习如何从噪声图片 -> 稍微清晰一些的图片;学习大量数据后,

从文案生成新图片时,先给定一张完全由噪点构成的图像 + 提示词,逐步减少噪声,直至最终生成清晰的图片。

Transformer

Transformer 是一套编码器和解码器的架构,将文本编码成数字向量,然后解码的时候从数字向量还原出文本。文本模型像 GPT-4 是使用 Transformer 模型,

时空 Patch

以这样一个例子开始:提示词为“一朵花在郊区房屋的窗台上生长的定格动画”。生成视频时,Sora 并不是直接将文本转换成一个个视频帧,而是通过处理时空补丁(Patch)来实现。这些时空补丁能够同时捕捉到发生的事件(空间)以及事件发生的时间(时间),就像是微小的视频碎片组成的拼图。时空 Patch 之于 Sora 就像 token 之于 LLM。

什么是 Patch?想象一下,如果把视频比作一个巨大的长方体(包含空间和时间的维度),Sora 就是通过将这个长方体切割成许多小块(Patch),每一小块都代表了一段特定的空间和时间。

image.jpeg
花朵长大、影子随之变高变大的细节都非常逼真

以上面开花的定格视频为例:首先,Sora 分析描述,识别出关键元素:

  • 物体(即将绽放的花朵和沐浴在阳光下的窗台)
  • 行为(花朵随着时间的推移而展开)
  • 地点(位于郊区的场景)
  • 甚至是艺术风格(定格动画的特点)。

然后是时空补丁的处理。对于渴望绽放的花朵,阳光照耀的窗台,以及花朵随时间缓慢生长的过程,每一个场景都被转化成一个个补丁,这些补丁随着视频场景的展开而逐渐演变。这些补丁并非随意的片段。为了能够将它们有条不紊地组合起来,Sora 内置了知识图谱。这些数据库内含了物理世界的信息、物体间如何相互作用,乃至于艺术风格的各种数据。

Sora 能够洞察到:

  • 花朵是如何一瓣一瓣地自然生长的,
  • 它如何随着时间的推移与阳光发生互动,
  • 以及如何保持定格动画特有的逐帧变换效果。

这些独立的画面片段共同构成了一幅充满噪点的画布。

image.jpeg

随后,扩散模型技术将这些噪点密集、抽象的画面片段逐步精细化,直到展现出它们最终的样貌。花瓣逐渐形成,阳光变得更加清晰,而定格动画的风格也像是在逐帧绘制中一步步浮现。在处理这些独立片段的同时,变换器技术分析着不同画面之间随时间变化的相互关系。这样,花朵能够平滑地成长,阳光自然地转换,整个视频中定格动画的风格也得以始终如一地保持。

这种基于时空 Patch 的处理方式有几个显著优势。首先,它允许 Sora 以非常精细的层次操作视频内容,因为它可以独立处理视频中的每一小块信息。其次,这种方法极大地提高了处理视频的灵活性,使得Sora能够生成具有复杂动态的高质量视频,而这对于传统视频生成技术来说是一个巨大的挑战。此外,通过对这些补丁进行有效管理和转换,Sora能够在保证视频内容连贯性的同时,创造出丰富多样的视觉效果,满足用户的各种需求。

关于 Patch 的讲解可以参考文章,实际上 openai 并没有明确说明关于 patch 的技术细节,网上的分析都是各种基于 Sora 技术报告引用的讨论。

Sora 怎么训练的

可变的时长、分辨率和宽高比

以往的图像和视频生成方法通常会将视频调整大小、裁剪或修剪成标准尺寸,例如分辨率为 256x256 的 4 秒视频。我们发现,在原始尺寸的数据上进行训练有几个好处。
采样灵活性:Sora 可以采样宽屏 1920x1080p 视频、竖屏 1080x1920 视频以及介于两者之间的所有视频。这让 Sora 可以直接以原始长宽比为不同设备创建内容。它还能让我们在生成全分辨率内容之前,以较小的尺寸快速制作原型--所有这些都使用相同的模型。

image.jpeg

改进取景和构图:我们根据经验发现,在原始长宽比的视频上进行训练可以改善构图和取景。我们将 Sora 与将所有训练视频裁剪成正方形的模型版本进行了比较,后者是训练生成模型时的常见做法。在正方形裁剪下训练的模型(左图)有时生成的视频只能看到主体的一部分。相比之下,Sora(右)生成的视频取景更好。

image.jpeg

语言理解

训练文本到视频生成系统需要大量带有相应文字说明的视频。我们将 DALL-E 3 中引入的重新字幕(re-captioning)技术应用于视频。我们首先训练一个高描述性的字幕模型,然后用它为训练集中的所有视频制作文本字幕。我们发现,在高描述性的视频字幕上进行训练可提高文本的保真度以及视频的整体质量。与 DALL-E 3 类似,我们也利用 GPT 将简短的用户提示转化为较长的详细字幕,并发送给视频模型。这使得 Sora 能够准确地按照用户提示生成高质量的视频。

通过几个速问速达了解一下这段话:

Q:Sora 如何通过简单的用户提示词可以生成元素丰富的视频的?
A:用户简单提示词 -> GPT 扩展为较长的详细字幕 -> 发送给视频生成大模型 -> 生成内容丰富且逼真的视频

Q:那么【视频生成大模型】是如何训练的?
A:【大量的】视频数据 + 与之相关的说明字幕 => 视频生成大模型

Q:【说明字幕】越丰富越详尽训练效果越好,但是从哪里获取这些数据?
A:来源1:现存的说明字幕数据 (数据非常有限)
来源2:视频  + 字幕生成模型(re-captioning 技术)=> 丰富的说明字幕

Sora 能做什么:多种视频相关任务

除了使用文字作为输入,Sora 还可以使用其他输入,如已有的图像或视频。这种功能使 Sora 能够执行各种图像和视频编辑任务--创建完美的循环视频、静态图像动画、向前或向后延长视频时间等。

文生视频

👆🏻上面已经展示过

图片生视频

只要输入图像和提示,Sora 就能生成视频。下面展示根据 DALL-E 231 和 DALL-E 330 图像生成的视频示例。

扩展生成的视频

Sora 还能正序或者倒序扩展视频。下面是四段视频,它们都是从一段生成的视频开始倒序延伸的。因此,这几段视频的开头都不同,但结局都是一样的。

视频到视频的编辑

扩散模型为根据文本提示编辑图像和视频提供了大量方法。下面,我们将把其中一种方法 SDEdit 应用于 Sora。这项技术可使 Sora 在零样本的情况下转换输入视频的风格和环境。

原始视频
把设置调整为茂密的丛林

连接视频(超赞👍🏻)

还可以使用 Sora 在两个输入视频之间逐步插值,在主题和场景构成完全不同的视频之间创建无缝过渡。

输入视频1 - 无人机在遗迹中飞行
输入视频2 - 蝴蝶在海里飞(什么鬼?)
Sora 生成的过渡视频

生成的过渡视频第一帧和输入视频1一样,最后一帧和输入视频2一样,中间的帧都是 Sora 补的。这样实现两个视频的无缝切换。

图像生成功能

Sora 还能生成图像。我们通过在空间网格中排列高斯噪声斑块来生成图像,时间范围为一帧。该模型可生成不同大小的图像,分辨率可达 2048x2048。

涌现模拟能力

视频模型在进行大规模训练时,会表现出许多有趣的新兴能力。这些能力使 Sora 能够模拟物理世界中的人、动物和环境的某些方面。这些特性的出现并没有对三维、物体等产生任何明确的归纳偏差--它们纯粹是规模现象。

三维一致性:Sora 可以生成动态摄像机运动的视频。随着摄像机的移动和旋转,人物和场景元素会在三维空间中持续移动。

动态摄像机围绕山旋转视角的视频

长时间一致性和对象持久性:视频生成系统面临的一个重大挑战是在对长视频采样时保持时间一致性。我们发现,Sora 经常(但并非总是)能够有效地模拟短距离和长距离依赖关系。例如,即使人、动物和物体被遮挡或离开画面,我们的模型也能保持它们的存在。同样,它还能在单个样本中生成同一人物的多个镜头,并在整个视频中保持其外观。

短暂被人物遮挡的斑点狗,前后外观、斑点一致
生成的多个镜头中的机器人,外观都是一致的

与世界互动:Sora 有时可以模拟一些影响世界状态的简单动作。例如,当一个角色在视频中画画,Sora 不仅能生成动作本身,还能确保每一笔都在画布上留下痕迹,这些痕迹随着时间的推移而累积,展现了Sora在模拟真实世界互动方面的细腻处理。或者一个人可以吃汉堡并留下咬痕。

这些功能表明,继续扩大视频模型的规模,是开发物理和数字世界以及其中的物体、动物和人的高功能模拟器的一条大有可为的途径。

Sora 的弱点

难以准确模拟复杂场景中的物理现象,也可能无法理解具体的因果关系。例如,一个人可能会咬一口饼干,但咬过之后,饼干上可能就没有咬痕了。该模型还可能混淆提示的空间细节,例如混淆左和右,并可能难以精确描述随时间发生的事件,如跟随特定的摄像机轨迹。

Sora 有时会产生一些物理上牵强的动作
动物或人可能会自发出现,尤其是在包含许多实体的场景中
Sora 未能将椅子作为刚性物体建模,导致物理交互不准确
模拟物体和多个角色之间复杂的互动对模型来说往往具有挑战性,有时会产生搞笑的结果

讨论

视频生成之后下一个是什么?

文字 -> 图像(二维)-> 视频(二维+时间)-> 建模?(三维)-> 元宇宙?(三维+时间)


参考资料

OpenAI Sora
https://openai.com/sora​​

Sora 技术报告
https://openai.com/research/video-generation-models-as-world-simulators​​

Sora 原理解读
https://towardsdatascience.com/explaining-openai-soras-spacetime-patches-the-key-ingredient-e14e0703ec5b​​
https://mp.weixin.qq.com/s/KUnXlDlg-Rs_6D5RFpQbnQ​​
https://www.zhihu.com/question/644790078/answer/3400440439​​
https://baoyu.io/translations/sora/sora-and-the-future-of-filmmaking​​

扩散模型
https://www.youtube.com/watch?v=Lt9nvuU70dM​​

Transformer 架构入门简介
https://www.youtube.com/watch?v=n67w5tmHcAI​​