前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅析SORA视频生成原理

浅析SORA视频生成原理

原创
作者头像
Luoyger
修改2024-03-14 15:50:35
6540
修改2024-03-14 15:50:35
举报
文章被收录于专栏:AI技术探索和应用

介绍

官网:https://openai.com/sora

OpenAI发布了视频生成模型Sora,最大的Sora模型能够生成一分钟的高保真视频。同时OpenAI称,可扩展的视频生成模型,是构建物理世界通用模拟器的一条可能的路径。

Sora能够生成横屏1920*1080视频,竖屏1080*1920视频,以及之间的所有内容。这使得Sora可以兼容不同的视频播放设备,根据特定的纵横比来生成视频内容,这也会大大影响视频创作领域,包括电影制作,电视内容,自媒体等。

除了文生视频,也可以用其他输入提示 Sora,例如预先存在的图像或视频。此功能使 Sora 能够执行各种图像和视频编辑任务——创建完美循环的视频、为静态图像制作动画、在时间上向前或向后扩展视频等。

具体案例参考官方技术报告:https://openai.com/research/video-generation-models-as-world-simulators

Sora的核心作者是Bill Peebles(https://www.wpeebles.com/)和Tim brooks(https://www.timothybrooks.com/about/)。

Sora团队的Leader是Aditya Ramesh(http://adityaramesh.com/), 他是DALLE、DALLE2、DALLE3的主要作者。

最新能力突破

(1)画质突破:视频非常高清,细节极其丰富;

(2)帧率和连续性突破:视频帧率高、连续性好(无闪烁或明显的时序不一致);

(3)时长突破:相比之前t2v模型仅能生成几秒的时长,Sora可以生成长达1分钟的视频,这是之前t2v模型不敢想象的;

(4)物理规则理解突破:视频中物体的运动、光影等似乎都非常符合自然世界的物理规则,整个视频看上去都非常自然和逼真。

申请(红队网络),邀请外部专家在多个阶段评估我们的模型和系统。

https://openai.com/form/red-teaming-network

原理

Runway、Stable Diffusion 是基于扩散模型(Diffusion Model),扩散模型(Diffusion Model)的训练过程是通过多个步骤逐渐向图片增加噪点,直到图片变成完全无结构的噪点图片,然后在生成图片的时候,基于一张完全噪点的图片,逐步减少噪点,直到还原出一张清晰的图片。

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

Sora 则是一个融合了两者的 Diffusion Transformer 模型。通过 Transformer 的编码器 - 解码器架构处理含噪点的输入图像,并在每一步预测出更清晰的图像版本。编码器负责对含噪点的输入进行编码,而解码器则负责生成更清晰图像的预测。

GPT-4 被训练以处理一串 Token,并预测出下一个 Token。Sora 不是预测序列中的下一个文本,而是预测序列中的下一个“Patch”。

在文本预测生成中,基本单位是 Token,Token 很好理解,就是一个单词或者单词的一部分。

将原始视频通过一个视觉编码器(visual encoder)编码到隐空间(latent space)形成隐时空块(spacetime latent patches),这些隐时空块(结合text信息)通过transformer做diffusion 的训练和生成,将生成的隐时空块再通过视觉解码器(visual decoder)解码到像素空间(pixel space)。

所以整个过程就是:visual encoding -> latent diffusion with diffusion transformer (DiT)-> visual decoding。

(1)Visual Encoding

通过一个变分自编码器(VAE)的encoder将高维的原始视频映射(压缩)到较为低维的隐空间(注意:不仅仅是空间上压缩了,时间上也进行了压缩),即得到该视频的低维隐空间特征(可以看成一个大的3D tensor),为了后续transformer计算方便,将这个特征切成不重叠的3D patches,再将这些patches拉平成一个token序列,这个token序列其实就是原始视频的表征了(即visual token序列)。

(2)Latent Diffusion with DiT

在得到视觉表征(上述visual token序列)后,Sora借鉴了DiT,使用transformer来做diffusion model的训练,使用transformer的好处在于可以输入任意长度的token序列,这样就不再限制输入视频的尺寸和时长,并且模型很容易scale up(OpenAI表示这个我熟)。同时,因为Sora想解决text2video的问题,所以Sora会将text的表征以某种形式condition到visual tokens上(Sora技术报告中未披露)来约束生成。

在diffusion transformer的训练中,给定噪声输入(e.g., 噪声patches)并conditioned on text特征,模型被训练去预测原始视频的patches(预测过程又叫denoising过程,具体可以参考DDPM中的训练算法),示意图如下,如今生成扩散模型的大火,则是始于 2020 年所提出的 DDPM(Denoising Diffusion Probabilistic Model)。

(3)Visual Decoding

第(2)步中,diffusion transformer可以生成的其实不是像素空间的视频,而是隐空间的视频表征(denoised patches),这些patches reshape成视频3D特征再经过第(1)步中的VAE的decoder,就可以映射回像素空间,得到最后生成的视频。

关键技术

(1)Sora可以灵活地采用不同时长、分辨率和长宽比的视频

OpenAI发现之前的方法大多采用固定尺寸的视频(比如4s的256x256视频)去训练模型,和现实中任意长度、长宽比有较大gap,而采用原始尺寸的视频训练模型效果更好。得益于Sora采用的transformer结构,Sora可以输入任意多个visual patches(初始为noise patches),即可生成任意尺寸的视频。

不同的分辨率输入在训练时候带来的是大量的计算负载不均衡,一个最简单的做法就是直接padding到固定大小这种做大会引入大量不必要的计算量, 我们从openai的reference中推测他可能使用了google的NaVit里的技术降低了计算量,支持动态输入。

(2)Sora有很强的语言理解能力

训练t2v模型需要大量带有文本标注的视频,OpenAI采用DALL·E 3中的re-captioning技术来解决。首先训练一个高质量的视频标注模型(captioner model),然后它为训练集中的所有视频生成文本字幕。

另外,进一步利用GPT将视频标注模型生成的简短文本扩展成更长的文本有利于还利用Sora准确遵循用户文本提示生成高质量视频。

(3)如何保证长视频的质量

首先训练数据一定是下了很多功夫,从report中我们也看到openai使用了类似DALLE3的cationining技术,训练了自己的video captioner,用以给视频生成详尽的文本描述,进行模型训练。

其次为了保证视频的一致性,模型层应该不是通过多个stage方式来进行视频预测,而是整体预测了整个视频的latent,同时在训练过程中应该引入了auto regressive的task来去帮助模型更好的进行视频特征和帧间关系的学习。具体可以参考谷歌的W.A.L.T ( https://arxiv.org/abs/2312.06662 ) 工作。

局限性

它不能准确地模拟许多基本相互作用的物理过程,例如玻璃破碎。其他交互过程(例如吃食物)也不总是能正确预测。我们在登陆页面中列举了模型的其他常见故障模式,例如长时间样本中出现的不连贯性或对象的凭空出现。”

总结一下主要是:

(1)对世界的物理规则的理解还不完美;

(2)长视频生成时容易出现不连贯或者物体凭空出现的现象。

应用

  • 视频创作:用户可以根据文本生成高质量视频;
  • 扩展视频:可以在给定的视频或图片基础上,继续向前或向后延伸视频;
  • Video-to-video editing:例如将SDEdit [7]应用于Sora,可以很容易改变原视频的风格;
  • 视频连结/过渡/转场:可以将两个视频巧妙地融合到一起,使用Sora在两个输入视频之间逐渐进行插值,从而在具有完全不同主题和场景构成的视频之间创建无缝过渡;
  • 文生图:图像可以视为单帧的视频,故Sora也能实现文生图。

训练

Jax:https://github.com/google/jax

一文带你掌握深度学习框架Jax

参考

Diffusion原理

https://yinglinzheng.netlify.app/diffusion-model-tutorial/

大世界模型

OpenAI官方信息从未表示Sora是world model,而是强调它是world simulator,我也觉得world simulator描述比较贴切。

https://github.com/LargeWorldModel/LWM

文章

复刻Sora有多难?一张图带你读懂Sora的技术路径

一文看Sora技术推演

一文带你了解OpenAI Sora

Sora 和之前 Runway 那些在架构上有啥区别呢?

Sora 的工作原理(及其意义) [译]

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 原理
    • 关键技术
      • 局限性
      • 应用
      • 训练
      • 参考
        • Diffusion原理
          • 大世界模型
            • 文章
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档