当前位置: 首页 > news >正文

Sora-OpenAI 的 Text-to-Video 模型:制作逼真的 60s 视频片段

OpenAI 推出的人工智能功能曾经只存在于科幻小说中。

2022年,Openai 发布了 ChatGPT,展示了先进的语言模型如何实现自然对话。

随后,DALL-E 问世,它利用文字提示生成令人惊叹的合成图像。

现在,他们又推出了 Text-to-Video 模型 Sora,将技术向前推进了一步。这种全新的扩散模式可直接通过文字描述创建逼真的视频。

Sora 可以实现文生视频,图生视频,图+文生视频,视频修改,视频补全等。

从Openai发布的技术报告来看,有以下几点需要关注:

  1. Sora 架构为扩散模型 + transformer。
  2. 训练时先用预训练模型把各种类型(大小不一)的视觉数据转换为统一的表示(patch),把提取的时空要素充当 transformer 的 token 进行训练。

虽然 Sora 能根据文字提示制作出无比逼真的视频。人工智能对人物情绪和表情的处理也非常出色。一个视频中的不同镜头也能保持一致。但也存在一些弱点。

  1. 复杂场景的物理处理,例如饼干吃完后没有咬痕,吹气后蜡烛不会熄灭,玻璃掉落不会碎等。
  2. 左右方向混淆。
  3. 不能总是准确地按照相机提示操作。

下面来看下技术报告(中文译文):

视频生成模型作为世界模拟器

我们探索了在视频数据上进行大规模生成模型的训练。具体来说,我们联合在可变持续时间、分辨率和宽高比的视频和图像上训练了文本条件扩散模型。我们利用了一个在视频和图像潜在编码的时空块上操作的 transformer 架构。我们最大的模型 Sora 能够生成一分钟的高保真视频。我们的结果表明,扩展视频生成模型是朝着构建物理世界通用模拟器的有希望的路径。

本技术报告关注以下两个方面:(1) 我们将各
种类型的视觉数据转换为统一表示的方法,以实现大规模生成模型的训练,以及 (2) 对 Sora 的能力和局限性进行定性评估。模型和实现细节未包含在本报告中。 之前的研究已经探讨了使用各种方法对视频数据进行生成建模,包括循环网络、生成对抗网络、自回归变压器和扩散模型。这些工作通常侧重于某一类视觉数据、较短的视频或固定大小的视频。Sora 是一种视觉数据的通用模型——它能够生成持续时间、宽高比和分辨率多样化的视频和图像,最长可达一分钟的高清视频。

将视觉数据转换成 patch

我们受到大型语言模型的启发,这些模型通过在互联网规模的数据上进行训练而获得了通用能力。LLM 范式的成功部分得益于优雅地统一了文本的多种模态——代码、数学和各种自然语言的标记。在这项工作中,我们考虑了生成视觉数据模型如何继承这些好处。而 LLMs具有文本标记,Sora 具有视觉 patch。patch 已被证明是视觉数据模型的有效表示。我们发现,patch 是一种高度可扩展且有效的表示方法,适用于训练不同类型的视频和图像的生成模型。

在高层次上,我们首先将视频压缩成低维潜在空间,然后将表示分解成时空补丁,从而将视频转换为补丁。

视频压缩网络

我们训练了一个降低视觉数据维度的网络。这个网络以原始视频为输入,输出一个在时间和空间上都被压缩的潜在表示。Sora 在这个压缩的潜在空间内进行训练,随后也在其中生成视频。我们还训练了一个相应的解码器模型,将生成的潜变量映射回像素空间。

时空潜在补丁

给定一个压缩的输入视频,我们提取一系列时空补丁,这些补丁充当 transformer 的token。这个方案也适用于图像,因为图像只是单帧的视频。我们基于补丁的表示使得 Sora 能够在不同分辨率、持续时间和宽高比的视频和图像上进行训练。在推理时,我们可以通过在大小适当的网格中排列随机初始化的补丁来控制生成视频的大小。

将 transformer 扩展到视频生成

Sora 是一个扩散模型;给定输入的初始噪声(以及文本提示等条件信息),它被训练为预测原始的“干净”补丁。重要的是,Sora 是一个扩散 transformer。transformer 在多个领域展示了显著的扩展性能,包括语言建模、计算机视觉以及图像生成。

在这项工作中,我们发现扩散变压器在视频模型中也能有效地扩展。在下面,下面,我们展示了在训练过程中,使用固定种子和输入的视频样本的比较。随着训练计算量的增加,样本质量显著提高。

可变持续时间、分辨率、宽高比

过去的图像和视频生成方法通常将视频调整为标准大小,例如,4秒钟的视频,分辨率为256x256。我们发现,与其这样处理,训练原始大小的数据提供了几个好处。

采样灵活性

Sora 可以采样宽屏 1920x1080p 视频、竖屏 1080x1920 视频以及介于两者之间的所有内容。这使得 Sora 可以直接以原生宽高比为不同设备创建内容。它还使我们能够在生成全分辨率之前,快速原型化低分辨率的内容——而且只需使用同一个模型。

改进的构图和组合

我们通过实验发现,在其原始宽高比的视频上进行训练可以提高构图和画面设计的质量。我们将 Sora 与我们的模型的一个版本进行了比较,这个版本模型将所有训练视频裁剪为正方形,这在训练生成模型时是常见做法。在正方形裁剪上训练的模型(左侧)有时会生成主体仅部分可见的视频。相比之下,来自 Sora 的视频(右侧)有了改进的画面设计。

语言理解

训练文本到视频的生成系统需要大量带有相应文本标题的视频。我们将在 DALL·E 3 中引入的重新标题技术应用到视频上。我们首先训练一个高度描述性的标题生成模型,然后使用它为我们训练集中的所有视频产生文本标题。我们发现,在高度描述性的视频标题上进行训练可以提高文本的准确性以及视频的整体质量。与 DALL·E 3 类似,我们还利用 GPT 将简短的用户提示转化为更长的详细标题,然后发送给视频模型。这使得 Sora 能够生成高质量的视频,这些视频能够准确地遵循用户的提示。

使用图像和视频作为 Prompt

我们在上述所有结果和我们的登陆页面上展示的都是文本到视频的样本。但是 Sora 也可以使用其他输入来提示,例如预先存在的图像或视频。这种能力使得 Sora 能够执行各种图像和视频编辑任务——创建完美循环的视频,给静态图像添加动画,将视频向前或向后延伸等等。

把 DALL·E 图像变成动画

Sora 能够生成基于 DALL·E 2 和 DALL·E 3 图像的视频,只需提供图像和提示作为输入。下面我们展示了基于这些图像生成的示例视频。

延长生成的视频

Sora 还能够延长视频,无论是向前还是向后延长。下面是四个视频,它们都是从一个生成的视频片段开始向时间的后方延长。因此,这四个视频的开头各不相同,但最终都会导向相同的结尾。

我们也可以用这个方法扩展一个视频的头和尾让它首尾相连成一个无限循环的视频。

视频到视频编辑

扩散模型已经为从文本提示编辑图像和视频提供了大量方法。下面我们将其中一种方法 SDEdit,应用到 Sora 上。这种技术使得 Sora 能够在零样本情况下转换输入视频的风格和环境。

连接视频

我们还可以使用 Sora 逐渐插值两个输入视频之间,从而在完全不同的主题和场景构图的视频之间创建无缝的过渡。在下面的示例中,中间的视频在左侧和右侧对应视频之间进行插值。

图像生成能力

Sora 也能够生成图像。我们通过将高斯噪声的补丁以一个帧的时间范围排列成空间网格来实现这一点。该模型可以生成不同尺寸的图像,分辨 率高达 2048x2048。

涌现出模拟的能力

我们发现,在大规模训练时,视频模型表现出许多有趣的新兴能力。这些能力使得 Sora 能够模拟来自物理世界的一些人、动物和环境的方面。这些属性是在没有任何明确的归纳偏见的情况下出现的,比如对 3D、物体等——它们纯粹是规模现象。

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

长程连贯性和物体持久性

对于视频生成系统来说,一个重要挑战是在采样长视频时保持时间一致性。我们发现,Sora 通常能够有效地模拟短期和长期依赖关系,尽管并非总是如此。例如,我们的模型可以在人、动物和物体被遮挡或离开画面时仍然保持其持久性。同样地,它可以在一个样本中生成同一个角色的多个镜头,并在整个视频中保持其外观。

与世界进行交互。有时 Sora 可以模拟一些简单方式影响世界状态的动作。例如,一个画家可以在画布上留下持续一段时间的新笔触,或者一个人可以吃掉一个汉堡并留下咬痕。

模拟数字世界

Sora 还能模拟人工过程—一个例子是视频游戏。Sora 可以同时使用基本策略控制 Minecraft中的玩家,同时以高保真度渲染世界及其动态。这些能力可以通过提示 Sora 提到“Minecraft”的标题来零样本激发。

这些能力表明,持续扩展视频模型是发展高能力的物理世界和数字世界模拟器,以及模拟其中的物体、动物和人的有前景的途径。

讨论

目前,Sora 作为模拟器表现出了许多限制。例如,它并不能准确地模拟许多基本交互的物理特性,比如玻璃破碎。其他交互,比如吃食物,并不总是产生正确的物体状态变化。我们在我们的登陆页面上列举了模型的其他常见失败模式——例如,在长时间样本中发展的不一致性或对象的突然出现。

我们相信,Sora 目前的能力证明了持续扩展视频模型是发展能力强大的物理世界和数字世界模拟器,以及模拟其中的物体、动物和人的有前景的途径。

相关文章:

Sora-OpenAI 的 Text-to-Video 模型:制作逼真的 60s 视频片段

OpenAI 推出的人工智能功能曾经只存在于科幻小说中。 2022年,Openai 发布了 ChatGPT,展示了先进的语言模型如何实现自然对话。 随后,DALL-E 问世,它利用文字提示生成令人惊叹的合成图像。 现在,他们又推出了 Text-t…...

4 buuctf解题

[CISCN 2019 初赛]Love Math1 打开题目 题目源码 <?php error_reporting(0); //听说你很喜欢数学&#xff0c;不知道你是否爱它胜过爱flag if(!isset($_GET[c])){show_source(__FILE__); }else{//例子 c20-1$content $_GET[c];if (strlen($content) > 80) {die("…...

Jmeter基础(3) 发起一次请求

目录 Jmeter 一次请求添加线程组添加HTTP请求添加监听器 Jmeter 一次请求 用Jmeter进行一次请求的过程&#xff0c;需要几个步骤呢&#xff1f; 1、添加线程组2、添加HTTP请求3、添加监听器&#xff0c;查看结果树 现在就打开jmeter看下如何创建一个请求吧 添加线程组 用来…...

视频怎么变成gif动图?一招教你在线转换

MP4是一种常见的视频文件格式&#xff0c;它可以包含音频和视频数据&#xff0c;并支持高质量的视频压缩。MP4视频可以呈现连续的动态效果&#xff0c;可以包含平滑的运动、音频等多媒体元素。而GIF动图是由一系列静态图像组成的&#xff0c;通过快速连续播放这些帧来创造出动态…...

Leetcode2583. 二叉树中的第 K 大层和

Every day a Leetcode 题目来源&#xff1a;2583. 二叉树中的第 K 大层和 解法1&#xff1a;层序遍历 排序 先使用层序遍历计算出树的每一层的节点值的和&#xff0c;保存在数组 levelSum 中。然后将数组进行排序&#xff0c;返回第 k 大的值。需要考虑数组长度小于 k 的边…...

(六)激光线扫描-三维重建

本篇文章是《激光线扫描-三维重建》系列的最后一篇。 1. 基础理论 1.1 光平面 在之前光平面标定的文章中,已经提到过了,是指 激光发射器投射出一条线,形成的一个扇形区域平面就是光平面。 三维空间中平面的公式是: A X + B Y + C Z + D = 0 A X+B Y+C Z+D=0...

CSS 面试题汇总

CSS 面试题汇总 1. 介绍下 BFC 及其应 参考答案&#xff1a; 参考答案&#xff1a; 所谓 BFC&#xff0c;指的是一个独立的布局环境&#xff0c;BFC 内部的元素布局与外部互不影响。 触发 BFC 的方式有很多&#xff0c;常见的有&#xff1a; 设置浮动overflow 设置为 auto、scr…...

定制你的【Spring Boot Starter】,加速开发效率

摘要&#xff1a; 本文将介绍如何创建一个自定义的 Spring Boot Starter&#xff0c;让您可以封装常用功能和配置&#xff0c;并在多个 Spring Boot 项目中共享和重用。 1. 简介 Spring Boot Starter 是 Spring Boot 框架中的一种特殊的依赖项&#xff0c;它用于快速启动和配置…...

Vue源码系列讲解——生命周期篇【二】(new Vue)

目录 1. 前言 2. new Vue()都干了什么 3 . 合并属性 4. callHook函数如何触发钩子函数 5. 总结 1. 前言 上篇文章中介绍了Vue实例的生命周期大致分为4个阶段&#xff0c;那么首先我们先从第一个阶段——初始化阶段开始入手分析。从生命周期流程图中我们可以看到&#xff…...

JavaScript 设计模式之观察者模式

观察者模式 观察者模式又被称为发布-订阅模式&#xff0c;使用一个对象来收集订阅者&#xff0c;在发布时遍历所有订阅者&#xff0c;然后将信息传递给订阅者&#xff0c;可以这样来实现一个简单的模式 const Observable (function () {let __messages {}return {register:…...

数据结构D4作业

1.实现单向循环链表的功能 loop.c #include "loop.h" loop_p create_loop() { loop_p H(loop_p)malloc(sizeof(loop)); if(HNULL) { printf("创建失败\n"); return NULL; } H->len0; H->nextH; ret…...

springboot750人职匹配推荐系统

springboot750人职匹配推荐系统 获取源码——》公主号&#xff1a;计算机专业毕设大全...

【笔记】【开发方案】APN 配置参数 bitmask 数据转换(Android KaiOS)

一、参数说明 &#xff08;一&#xff09;APN配置结构对比 平台AndroidKaiOS文件类型xmljson结构每个<apn>标签是一条APN&#xff0c;包含完成的信息层级数组结构&#xff0c;使用JSON格式的数据。最外层是mcc&#xff0c;其次mnc&#xff0c;最后APN用数组形式配置&am…...

Redis篇之缓存雪崩、击穿、穿透详解

学习材料&#xff1a;https://xiaolincoding.com/redis/cluster/cache_problem.html 缓存雪崩 什么是缓存雪崩 在面对业务量较大的查询场景时&#xff0c;会把数据库中的数据缓存至redis中&#xff0c;避免大量的读写请求同时访问mysql客户端导致系统崩溃。这种情况下&#x…...

【深度学习笔记】3_2线性回归的从零实现

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 3.2 线性回归的从零开始实现 在了解了线性回归的背景知识之后&#xff0c;现在我们可以动手实现它了。尽管强大的深度学习框架可以减少大量重复性工作&#xff0c;但若…...

Apache Maven简介

Maven 简介 Apache Maven 是一个用于项目构建、依赖管理和项目信息管理的强大工具。它基于项目对象模型(Project Object Model,POM)进行构建,通过描述项目的结构和依赖关系来管理项目的构建过程。 以下是 Apache Maven 的一些关键原理和工作流程: 项目对象模型(POM)…...

#12解决request中getReader()和getInputStream()只能调用一次的问题

目录 1、背景 2、解决方案 2.1、自定义HttpServletRequestWrapper 2.2、JsonRequestHeaderParamsHelper 2.3、HttpServletRequestReplacedFilter 2.4、使用 1、背景 当前系统Content-Type为application/json&#xff0c;参数接收方式采用RequestBody和RequestParam&#…...

直接插入排序+希尔排序+冒泡排序+快速排序+选择排序+堆排序+归并排序+基于统计的排序

插入排序&#xff1a;直接插入排序、希尔排序 交换排序&#xff1a;冒泡排序、快速排序 选择排序&#xff1a;简单选择排序、堆排序 其他&#xff1a;归并排序、基于统计的排序 一、直接插入排序 #include<stdio.h> #include<stdlib.h> /* 直接插入排序&#…...

Java高级 / 架构师 场景方案 面试题(二)

1.双十一亿级用户日活统计如何用 Redis快速计算 在双十一这种亿级用户日活统计的场景中&#xff0c;使用Redis进行快速计算的关键在于利用Redis的数据结构和原子操作来高效地统计和计算数据。以下是一个基于Redis的日活统计方案&#xff1a; 选择合适的数据结构&#xff1a; …...

C/C++内存管理学习【new】

文章目录 一、C/C内存分布二、C语言中动态内存管理方式&#xff1a;malloc/calloc/realloc/free三、C内存管理方式3.1 new/delete操作内置类型3.2 new和delete操作自定义类型四、operator new与operator delete函数五、new和delete的实现原理5.1 内置类型 六、定位new表达式(pl…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

云原生安全实战:API网关Kong的鉴权与限流详解

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关&#xff08;API Gateway&#xff09; API网关是微服务架构中的核心组件&#xff0c;负责统一管理所有API的流量入口。它像一座…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

BLEU评分:机器翻译质量评估的黄金标准

BLEU评分&#xff1a;机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域&#xff0c;衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标&#xff0c;自2002年由IBM的Kishore Papineni等人提出以来&#xff0c;…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

Python训练营-Day26-函数专题1:函数定义与参数

题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一个名为 calculate_circle_area 的函数&#xff0c;该函数接收圆的半径 radius 作为参数&#xff0c;并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求&#xff1a;函数接收一个位置参数 radi…...