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 …...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...

