OpenAI最新模型Sora到底有多强?眼见为实的真实世界即将成为过去!
文章目录
- 1. 写在前面
- 2. 什么是Sora?
- 3. Sora的技术原理
【作者主页】:吴秋霖
【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作!
【作者推荐】:对JS逆向感兴趣的朋友可以关注《爬虫JS逆向实战》,对分布式爬虫平台感兴趣的朋友可以关注《分布式爬虫平台搭建与开发实战》
还有未来会持续更新的验证码突防、APP逆向、Python领域等一系列文章
1. 写在前面
就在2024年的春节期间,OpenAI发布了Sora,这一次的发布得到了全世界的关注。Sora简单的理解就是通过文字或者语言直接生成的视频大模型(text-to-video文生视频模型),官方并没有单纯的称之为视频模型,而是称为“世界模拟器”

一起围观震撼的视觉冲击:openai-sora
2. 什么是Sora?
Sora是OpenAI发布的一个视频生成模型,可基于文本输入生成视频!产生长达一分钟的连贯视频,而且可以做到高清与多视角,是不是感觉人人都可以做导演了~
Sora跟之前的Pika和Runway并不属于同一个东西!Sora是有理解力的,可以感知真实的物理世界与自然语言!Pika和Runway目前只能生成4s视频,但是Sora可生成60s超长视频的同时且动作连续、有一定的艺术性、没有看似生硬的感觉
在这其中包含高度详细的场景、复杂的摄像机运动以及充满活力的情感的多个角色~
同样的提示词在下图中,无论是视频的画质、内容细节以及视频的长度。Sora都表现的非常优秀!

我们再看下面的一组示列,也是同样的提示词,上面是由Sora生成,而下面则是RunwayG2生成,很明显的可以看到无论是视频的清晰度,还是视频的流畅度,以及视频里面海浪🌊的细节,Sora都全面的碾压Runway

Sora不仅生成60s超长视频,在视频内可以在保持主角色不变的高度一致性的同时,还生成多个不同角度的分镜!下面的这个视频使用一致的形象,还进行分镜处理
提示词:博朋克背景下机器人的生活故事
Sora有时能够模拟对世界状态产生简单影响的行为。例如,画家可以在画布上持续添加新的笔触,或者一个人吃汉堡时留下咬痕。这个就厉害了,基于虚幻引擎5(Unreal-Engine-5)的Sora它是能理解物理世界的
3. Sora的技术原理
OpenAI在其技术报告中虽未提及模型的训练与细节,但也重点展示了:
- 将所有类型的视觉数据转化为统一表示,从而能够大规模训练生成模型的方法
- Sora的能力以及局限性定性评估
视觉数据转为 Patches
大型语言模型通过在互联网规模的数据上进行训练,获得了出色的通用能力中,OpenAI 从这一点汲取了灵感。LLM 得以确立新范式,部分得益于创新了 token 使用的方法。研究人员们巧妙地将文本的多种模态 —— 代码、数学和各种自然语言统一了起来。
在这项工作中,OpenAI 考虑了生成视觉数据的模型如何继承这种方法的好处。大型语言模型有文本 token,而 Sora 有视觉 patches。此前的研究已经证明 patches 是视觉数据模型的有效表示。OpenAI 发现 patches 是训练生成各种类型视频和图像的模型的可扩展且有效的表示

在更高层面上,OpenAI首先将视频压缩到较低维的潜在空间,然后将表示分解为时空patches,从而将视频转换为patches
视频压缩网络
OpenAI训练了一个降低视觉数据维度的网络。该网络将原始视频作为输入,并输出在时间和空间上压缩的潜在表示。Sora 在这个压缩的潜在空间中接受训练,而后生成视频。OpenAI还训练了相应的解码器模型,将生成的潜在表示映射回像素空间
时空潜在 Patches
给定一个压缩的输入视频,OpenAI 提取一系列时空 patches,充当 Transformer 的 tokens。该方案也适用于图像,因为图像可视为单帧视频。OpenAI 基于 patches 的表示使 Sora 能够对不同分辨率、持续时间和长宽比的视频和图像进行训练。在推理时,OpenAI 可以通过在适当大小的网格中排列随机初始化的 patches 来控制生成视频的大小
用于视频生成的缩放 Transformer
Sora的训练受到了大语言模型(Large Language Model)的启发。这些模型通过在互联网规模的数据上进行训练,从而获得了广泛的能力

Sora实际上是一种扩散型变换器模型(Diffusion Transformer)
它能够通过从一开始看似静态噪声的视频出发,通过许多步骤逐步消除噪声,最终生成视频
Sora不仅可以一次性生成完整的视频,还能扩展已生成的视频,使其更加长久。通过让模型能够预见多帧内容,成功克服了确保视频主体即便暂时消失也能保持一致性的难题
Sora 借鉴了 GPT 模型的成功,采用了Transformer 架构,实现了前所未有的扩展性能
Sora把视频和图像分解为小的数据单元——补丁,每个补丁相当于 GPT 中的一个词语。通过统一数据的表达方式,我们得以在更广泛的视觉数据上训练扩散Transformer,这些数据覆盖了不同的时长、分辨率和画面比例
Sora在DALL·E 和GPT的研究基础上进一步发展。利用DALL·E 3的重新标注技术,为视觉训练数据生成高度描述性的说明文字。结果是,模型能够更加忠实地根据用户的文本指示生成视频
除了能够仅凭文本指令生成视频外,Sora还能够将现有的静态图像转化为视频,精确地动画化图像内容,并注意到细小的细节。模型也能够扩展现有视频或补全缺失帧
Sora 为理解和模拟现实世界的模型奠定了基础,这是实现人工通用智能(AGI)的重要里程碑
感兴趣的小伙伴可阅读官方文档:Video generation models as world simulators
DALL-E图像制作动画,Sora图像生成视频的示例如下:
然而虽然Sora的表现令人印象深刻,但是它也并非是非常完美的!目前在处理复杂的场景中难以准确模拟复杂场景的物理原理,还可能会混淆提示的空间细节,可能难以精确的描述随着时间推移发生的事件
在官方网站中我们也能够看到公布出来的一些不是很完美的案例视频:
物体交互时的一些交互错误
还有像下面这种多个场景中相互之间的一个交互,会有一些奇怪的现象。比如几个小动物融合在了一起

这些局限性也提醒着我们,尽管AI技术取得了巨大的进步,但在处理像提示词工程这样的问题上,仍然有很长的路需要去走!同时,在视频制作行业未来肯定也会带来很多新的挑战与机遇
最后,相信大家这两年都能感受到AIGC的能力,我们从质疑到接受再到使用,最后感到震惊!
相关文章:
OpenAI最新模型Sora到底有多强?眼见为实的真实世界即将成为过去!
文章目录 1. 写在前面2. 什么是Sora?3. Sora的技术原理 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感…...
Qt的基本操作
文章目录 1. Qt Hello World 程序1.1 通过图形化界面的方式1.2 通过代码的方式实现 2. Qt 的编码问题3. 使用输入框实现hello world4. 使用按钮实现hello world5. Qt 编程注意事项6. 查询文档的方式7. 认识Qt坐标系 1. Qt Hello World 程序 1.1 通过图形化界面的方式 我们先讲…...
信号系统之数据压缩
1 数据压缩策略 表 27-1 显示了对数据压缩算法进行分类的两种不同方法。在(a)中,这些方法被归类为无损或有损(lossless or loss)。无损技术意味着恢复的数据文件与原始文件相同。这对于许多类型的数据是绝对必要的,例如:可执行代码、文字处理…...
第二篇【传奇开心果微博系列】Python微项目技术点案例示例:成语接龙游戏
传奇开心果微博系列 系列微博目录Python微项目技术点案例示例系列 微博目录一、微项目目标二、雏形示例代码三、扩展整体思路四、玩家输入示例代码五、成语判断示例代码六、回答判断示例代码七、电脑判断示例代码八、游戏结束示例代码九、界面优化示例代码十、扩展成语库示例代…...
国内AI大模型主要有哪些
ChatGPT火爆后不到一个月的时间,阿里、华为、腾讯、京东、字节、360、商汤、科大讯飞等大厂纷纷下场,或官宣入场或亮相大模型。我国对生成式AI实行监管的正式法规主要是2023年8月正式施行的《生成式人工智能服务管理暂行办法》。 据不完全统计ÿ…...
RabbitMQ保证消息的可靠性
1. 问题引入 消息从发送,到消费者接收,会经理多个过程: 其中的每一步都可能导致消息丢失,常见的丢失原因包括: 发送时丢失: 生产者发送的消息未送达exchange消息到达exchange后未到达queue MQ宕机&…...
【工作实践-02】实验室移动端—跳转页面及交互
一、跳转页面不关闭当前页,与uniapp头部导航栏的返回按钮效果相似 uni.navigateBack({delta: 1}) 二、返回页面并刷新 1. 返回上一页时重新获取列表(调用上一页面获取列表方法) let pages getCurrentPages(); // 当前页面let beforePage pages[pages.length - 2…...
HTTP 请求 400错误
问题 HTTP 请求 400错误 详细问题 客户端发送请求 public static UserInfo updateUserInfo(UserInfo userInfo) {// 创建 OkHttpClient 对象OkHttpClient client new OkHttpClient();// 创建请求体MediaType JSON MediaType.parse("application/json; charsetutf-8&…...
C语言---指针进阶
1.字符指针 int main() {char str1[] "hello world";char str2[] "hello world";const char* str3 "hello world.";const char* str4 "hello world.";if (str3 str4){//常量字符串在内存里面是无法修改的,所以没必要…...
QT-通信编码格式问题
这里写目录标题 一、项目场景1.QT客户端与服务端通信时,转化步骤如下:2.原数据示例3.转化后数据 二、问题描述1.采用Soap协议2.采用HTTP协议 三、原因分析四、解决方案 一、项目场景 1.QT客户端与服务端通信时,转化步骤如下: 1&…...
一文了解Web3.0真实社交先驱ERA
Web2时代,少数科技巨头垄断了全球近60亿人口的网络社交数据,并用之为自己牟利,用户无法掌控个人数据,打破该局面逐渐成为共识,于是,不少人看到了Web3社交赛道蕴含的巨大机遇,标榜着去中心化和抗…...
微前端(qiankun)vue3+vite
目录 一、什么是微前端 二、主应用接入 qiankun 1.按照qiankun插件 2.注册微应用引用 3.挂载容器 三、微应用接入 qiankun 1.vite.config.ts 2.main.ts ps:手动加载微应用方式 ps:为什么不用 iframe 一、什么是微前端 微前端是一种多个团队通过独…...
根据Ruoyi做二开
Ruoyi二开 前言菜单代码生成新建微服务网关添加微服务的路由 vue页面和对应的js文件js中方法的url和controller中方法的url总结 前言 之前写过一篇文章,若依微服务版本搭建,超详细,就介绍了怎么搭建若依微服务版本,我们使用若依就…...
DockerFile的应用
DockerFile的应用 一、介绍1 构建的三步骤2 构建的过程 二、常用命令三、DockerFile案例1 创建DockerFile文件2 使用DockerFile文件构建镜像3 启动容器并验证 四 DockerFile添加数据卷 一、介绍 DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成…...
爬虫入门一
文章目录 一、什么是爬虫?二、爬虫基本流程三、requests模块介绍四、requests模块发送Get请求五、Get请求携带参数六、携带请求头七、发送post请求八、携带cookie方式一:放在请求头中方式二:放在cookie参数中 九、post请求携带参数十、模拟登…...
2024-02-16 web3-区块链-keypass记录
摘要: 2024-02-16 web3-区块链-keypass记录 文档: Introduction - Keypass Docs What is KEYPASS? - Keypass Docs What is KEYPASS? KeyPass Wallet is a new smart contract wallet that provides a secure and customizable registration…...
使用 JMimeMagic 在 Java 中识别文件类型
在 Java 中,我们可以使用 JMimeMagic 库来识别文件类型,尤其是在需要准确区分文件类型时。下面是一个简单的使用 JMimeMagic 的示例代码。 添加依赖 首先,在你的项目中添加 JMimeMagic 依赖。你可以在 Maven 项目中的 pom.xml 文件中加入以…...
yolov8源码解读Detect层
yolov8源码解读Detect层 Detect层解读网络各层解读及detect层后的处理 关于网络的backbone,head,以及detect层后处理,可以参考文章结尾博主的文章。 Detect层解读 先贴一下全部代码,下面一一解读。 class Detect(nn.Module):"""YOLOv8 …...
(AtCoder Beginner Contest 341)(A - D)
比赛地址 : Tasks - Toyota Programming Contest 2024#2(AtCoder Beginner Contest 341) A . Print 341 模拟就好了 , 先放一个 1 , 然后放 n 个 01 ; #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout…...
python Flask与微信小程序 统计管理
common/models/stat/StatDailyMember.py DROP TABLE IF EXISTS stat_daily_member;CREATE TABLE stat_daily_member (id int(11) unsigned NOT NULL AUTO_INCREMENT,date date NOT NULL COMMENT 日期,member_id int(11) NOT NULL DEFAULT 0 COMMENT 会员id,total_shared_count …...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

