文本生成视频:从 Write-a-video到 Sora

news2025/2/26 4:36:31

2024年2月15日,OpenAI 推出了其最新的文本生成视频模型——Sora。Sora 能够根据用户的指令生成一分钟长度的高质量视频内容。这一创新的发布迅速在社会各界引发了广泛关注与深入讨论。本文将围绕本实验室发表于SIGGRAPH AISA 的 Write-a-video和 Sora 展开,讨论基于规则的视频生成方法和基于深度学习的视频生成方法。

Part 1

Write-a-video

视频生成,在图形学里,和story-telling密切相关,我们一直有一个梦想,幼儿园的小朋友讲故事时,能否在大屏幕上实时生成故事的画面?这个问题在20年前,基于视频绘制(Video based Rendering)最热的时候,却是一个技术上不可能实现的难题。2009年,清华大学图形学实验室将这个问题简化为:能否用草图和文字描述一个场景,计算机去自动生成一张高度真实感的照片?这就是Sketch2Photo[1]。 

4ce62150635348528c695cd9328d9b3f.png 图1 基于草图的真实感图像合成

又过了10年,清华大学图形学实验室终于跨越了一步,提出基于规则的视频生成方法Write-a-video[2] ,该方法可以基于视频素材,输入一段文字,输出一段剪辑好、符合文本描述的视频。

Write-a-video是一个通过编辑文本来进行视频剪辑和合成的系统。给定一个主题文本和相关的视频库(该视频库可看做深度学习里的训练数据),生成的视频旨在描绘给定的叙述,提供多样化的视觉内容,并遵循电影摄影指导原则。这个过程涉及三个简单的步骤:1) 用户提供输入,主要是通过编辑文本的形式;2) 工具自动从视频库中搜索语义匹配的候选镜头;3) 优化方法组装剪辑的视频:根据计算摄影学的剪辑准则组装剪辑视频。具体流程如图 1所示。

28f82b816cc94d30a8e541c218253c7d.png 

图 2  Write-a-video 流程示意图

Write-a-video是一种快速的视频生成方法,生成一段数分钟的视频仅需不到10秒,且支持增量文本编辑操作。

Part 2

深度学习技术的演进使视频生成实现突破

最近5年,深度学习技术得到了蓬勃的发展,主要的发展可以总结为以下三个方面:

  • 从对抗生成网络(GAN)到扩散模型(Diffusion model);

  • 从卷积神经网络(CNN)到深度自注意力网络(Transformer);

  • 从小规模训练到大规模训练.

8edbdb60c2a748369664ee4e00df9974.png 

图3  深度学习技术的变革性发展

2.1 从对抗生成网络到扩散模型

采样方法在 Diffusion model出现之前,该领域的早期工作主要植根于 GAN、VQ-VAE和自回归框架。但由于2022年以来Diffusion model的突破性进展,以及其对于大规模分布的拟合能力,以及从文本上扩展到其他模态的能力,扩散模型成为了视频生成的主流选择。

2.2 从卷积神经网络到深度自注意力网络

模型的基础架构在这些年的变化也很大,如Diffusion Model中,早期的工作基本都基于CNN的UNet架构,并且引入部分时空的注意力进行约束如Google提出的Imagen Video利用冻结的T5文本编码器来训练video diffusion model。

随着技术的发展,人们发现动态可扩展的Transformer架构运用在文生图模型或文生视频模型中是非常有意义且有效的,比如,Meta提出的Diffusion Transformer (DiT) 架构利用更长的Transformer生成是十分有效的,在许多指标上都表现出十分良好的可扩展性。

2.3 从小规模训练到大规模训练

随着深度学习技术的不断发展,数据的规模和模型的规模在生成模型中也增长迅速。近些年涌现出一批高分辨率大规模标注视频数据集,如InternVid就有两亿多的720P视频,并且有精细的文本标注。为了适应数据在scale上的增长,模型的规模也随之增长。如stability AI最开始发布的Stable Diffusion只有0.8B的UNet权重,近期最新发布的基于Transformer架构的Stable Diffusion3就拥有8B的权重,扩大了将近十倍。

Part 3

Sora

Sora[3] 是 OpenAI 所发布的最新视频生成模型,其是基于深度学习方法的视频生成模型的代表。根据其技术报告,我们猜测其背后的技术是基于 Transformer 架构的潜空间扩散模型[4]。Sora 的训练分为了两个阶段,第一阶段(如图 2 所示)训练解码器和编码器,第二阶段(如图 4所示)训练潜空间扩散模型来生成视频。

9e2f5fde49a6484faec2b784d448d8bd.png 

图4 Sora第一阶段训练,训练编码器和解码器

305fb7c4757d44e2a3121e47d4965dee.png 

图5 Sora第二阶段训练, 训练潜空间扩散模型

在两阶段的训练完成后,可以生成分钟级别的视频。

Part 4

讨论

虽然基于深度学习的技术目前居于主导地位,但基于规则的方法也有其独到之处,值得我们借鉴。下面从成本、效率、质量和未来方向四个方面进行讨论。

4.1 成本

此处的成本包含了数据成本和训练成本。Sora 的训练需要大量的视频数据,这些视频的数据量至少是以PB 为单位的。如此大量的视频的收集和存储都会占用极大的存储空间。除了数据收集和存储方面带来的巨大开销,Sora的训练成本也是十分昂贵的。根据已有的部分工作推测,Sora的训练成本可能要千卡级别的集群训练数月。对于 Write-a-video 来说,只需要数百个视频即可剪辑生成一段长视频,并且无需训练。

4.2 效率

此处讨论的效率是指生成一段视频所需的时间。根据网友反馈,Sora 生成一段视频需要数分钟甚至几十分钟,而对于 Write-a-video,生成一段视频只需要数秒。从效率来看,Write-a-video代表的基于规则的方法占据优势。

4.3 生成质量

从生成视频的质量上来看,由于 Write-a-video 是对已有视频片段的剪辑,所以其生成的视频是具有三维一致性的。而对于 Sora 而言,其生成的视频是没有三维一致性的。但是,Sora 可以生成原视频库中不存在的视频,但是 Write-a-video 却没有这种能力,只能组合剪辑原视频库的视频片段。

4.4 未来的工作

此处本文主要讨论两个未来可能的工作:1) 长视频生成,2)高效的Sora。

1)长视频生成:Sora 目前可以生成分钟级的视频,那么如何去生成更长的视频片段甚至电影呢?如果计算机可以根据剧本直接生成电影,那将会是一件非常有趣且有意义的事情。生成长视频/电影有两条潜在的技术方案。

第一条技术路线是给 Sora 更多的长视频,让其进行微调,但是建模长视频的难度比建模短视频的难度大很多,并且对算力的要求也更大。

第二条技术路线是使用多个短视频进行拼接,可以使用 Sora 生成多个 ID 一致的短视频片段,将每个片段看成是一个电影镜头,然后使用Write-a-video[2] 进行剪辑,从而拼接出一个长视频;或者基于已有短视频素材库先进行剪辑拼接,再使用Sora微调内容。

2)高效的Sora至关重要:基于我们之前的分析,我们了解到sora在生成视频的过程中耗时较多。为了实现Sora的大规模应用,提升视频生成的效率成为一个迫切需要解决的问题。也许可以从算法优化和系统优化两个方面来着手提高效率。

从算法层面来看,可以探索剪枝算法或者量化算法,在保持生成视频质量的同时,使得整个网络可以更高效地运行;从系统优化的角度出发,可以尝试使用高效的深度学习框架Jittor[5],Jittor已经被证明在大模型训练和推理中有较大的优势,效率提升可达30%以上; 进一步,也可以基于Jittor的元算子融合机制Sora结构中的算子进行专门的硬件优化。

参考文献

  • 1 Tao Chen, Ming-Ming Cheng, Ping Tan, Ariel Shamir, Shi-Min Hu, Sketch2Photo: Internet Image Montage, ACM Transactions on Graphics, 2009, Vol. 28, No. 5, Article No. 124, ACM SIGGRAPH ASIA 2009.  

  • 2 Miao Wang, Guo-Wei Yang, Shi-Min Hu, Shing-Tung Yau, Ariel Shamir, Write-a-video: computational video montage from themed text, ACM Transactions on Graphics, 2019, 38(6): 177:1-177:13. 

  • 3 https://openai.com/research/video-generation-models-as-world-simulators

  • 4 William Peebles, Saining Xie, Scalable diffusion models with transformers, Proceedings of the IEEE/CVF International Conference on Computer Vision, 2023, 4195-4205.

  • Shi-Min Hu, Dun Liang, Guo-Ye Yang, Guo-Wei Yang & Wen-Yang Zhou, Jittor: a novel deep learning framework with meta-operators and unified graph execution, Science China Information Science,  2020, Vol. 63, Article No. 222103, 1-21.  

  1.  

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1504822.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

修改简化docker命令

修改|简化docker命令 使用命令打开 .bashrc 文件: vim ~/.bashrc在文件中添加类似以下行来创建别名: # 查看所有容器 alias disdocker images # 查看运行容器 alias dpsdocker ps # 查看所有容器 alias dpsadocker ps -a # 停止容器 alias dsdocker s…

python 蓝桥杯之动态规划入门

文章目录 DFS滑行(DFS 记忆搜索) 思路: 要思考回溯怎么写(入参与返回值、递归到哪里,递归的边界和入口) DFS 滑行(DFS 记忆搜索) 代码分析: 学会将输入的数据用二维列表…

云原生架构设计:分布式消息队列技术解析

消息队列是在消息传输过程中保存消息的容器,消息队列管理器在将消息从源到目标时充当中间人的角色,消息队列的主要目的是提供路由并保证消息的可靠传递。如果发送消息时接收者不可用,那消息队列就会保留消息,直到下次成功消费为止…

超网、IP 聚合、IP 汇总分别是什么?三者有啥区别和联系?

一、超网 超网(Supernet)是一种网络地址聚合技术,它可以将多个连续的网络地址合并成一个更大的网络地址,从而减少路由表的数量和大小。超网技术可以将多个相邻的网络地址归并成一个更大的网络地址,这个更大的网络地址…

C语言:通讯录(纯代码)

目录 背景&#xff1a;VS2019编译器 创建文件&#xff1a; contact.h代码&#xff1a; test.c代码&#xff1a; contact.c代码&#xff1a; 背景&#xff1a;VS2019编译器 创建文件&#xff1a; contact.h代码&#xff1a; #pragma once#include <string.h> #includ…

第二课 情感认知模型

一、学习目标 1.学习各种思想的情感模型 2.了解通过情感诱发方法所建立的情感模型 二、情感模型 想要进行情感计算&#xff0c;首先步骤就是对情感建模&#xff0c;要分析理解情感的产生&#xff0c;从而才能让计算机理解情感。由于情感是感性的&#xff0c;所以现有的情感模…

设计模式 代理模式

代理模式主要使用了 Java 的多态&#xff0c;主要是接口 干活的是被代理类&#xff0c;代理类主要是接活&#xff0c; 你让我干活&#xff0c;好&#xff0c;我交给幕后的类去干&#xff0c;你满意就成&#xff0c;那怎么知道被代理类能不能干呢&#xff1f; 同根就成&#xff…

ai学习前瞻-python环境搭建

python环境搭建 Python环境搭建1. python的安装环境2. MiniConda安装3. pycharm安装4. Jupyter 工具安装5. conda搭建虚拟环境6. 安装python模块pip安装conda安装 7. 关联虚拟环境运行项目 Python环境搭建 1. python的安装环境 ​ python环境安装有4中方式。 从上图可以了解…

BulingBuling - 《金钱心理学》 [ The Psychology of Money ]

金钱心理学 摩根-豪泽尔 关于财富、贪婪和幸福的永恒课程 The Psychology of Money Morgan Housel Timeless Lessons on Wealth, Greed, and Happiness 内容简介 [ 心理学 ] [ 金钱与投资 ] Whats it about? [ Psychology ] [ Money & Investments ] 《金钱心理学》&…

Jmeter---非GUI命令行的执行生成报告、使用ant插件执行接口测试脚本生成报告

非GUI命令行的执行 1. 在jmx后缀的文件目录下打开命令行 2. 运行&#xff1a; jmeter -n -t filename.jmx&#xff08;-n : 非GUI的方式 -t: 指定需要执行的脚本&#xff09; 生成jtl报告 运行&#xff1a; jmeter -n -t filename.jmx -l result_filename.jtl 生成html报…

【解读】OWASP大语言模型应用程序十大风险

OWASP大型语言模型应用程序前十名项目旨在教育开发人员、设计师、架构师、经理和组织在部署和管理大型语言模型&#xff08;LLM&#xff09;时的潜在安全风险。该项目提供了LLM应用程序中常见的十大最关键漏洞的列表&#xff0c;强调了它们的潜在影响、易利用性和在现实应用程序…

剑指offer经典题目整理(二)

一、斐波那契数列&#xff08;fib&#xff09; 1.链接 斐波那契数列_牛客题霸_牛客网 (nowcoder.com) 2.描述 斐波那契数列就是数列中任意一项数字&#xff0c;都会等于前两项之和&#xff0c;满足f(n) f(n-1) f(n-2) 的一个数列&#xff0c;例如&#xff1a;1 1 2 3 5 8…

类与对象-对象特性

师从黑马程序员 对象的初始化和清理 构造函数和析构函数 用于完成对象的初始化和清理工作 如果我们不提供构造和析构&#xff0c;编译器会提供编译器提供的构造函数和析构函数是空实现 构造函数&#xff1a;主要用于创建对象时为对象的成员属性赋值&#xff0c;构造函数由编…

CSS伪类与常用标签属性整理与块级、行级、行级块标签(文本,背景,列表,透明,display)

目录 文本 color&#xff1a;字体颜色 font-size&#xff1a;字体大小​编辑 front-family&#xff1a;字体 text-align&#xff1a;文本对齐 text-decoration:line-through&#xff1a;定义穿过文本下的一条线 text-decoration:underline&#xff1a;定义文本下的一条线…

7-15 2.2 译密码

输入5个字母&#xff0c;将其译成密码&#xff0c;密码规律是&#xff1a;用原来的字母后面第4个字母代替原来的字母。例如&#xff1a;A被E代替&#xff0c;C被G代替。 输入格式: 输入一行5个字符 输出格式: 输出一行5个字符 输入样例: China输出样例: Glmre #include …

前端框架的发展历程

文章目录 前言 一、静态页面时代 二、JavaScript的兴起 三、jQuery的出现 四、前端框架的崛起 1.AngularJS 2.React 3.Vue.js 五、面向组件化的发展趋势 总结 前言 前端框架的发展史就是一个不断进化的过程&#xff0c;它的发展和进化一定程度…

消息服务--Kafka的简介和使用

消息服务--Kafka的简介和使用 前言异步解耦削峰缓存1、消息队列2、kafka工作原理3、springBoot KafKa整合3.1 添加插件3.2 kafKa的自动配置类3.21 配置kafka地址3.22 如果需要发送对象配置kafka值的序列化器3.3 测试发送消息3.31 在发送测试消息的时候由于是开发环境中会遇到的…

flask-sqlalchemy库

彩笔激流勇退。 1. 简介 ORM&#xff0c;对象关系映射。简单来说&#xff0c;ORM将数据库中的表与面向对象中的类建立了一种对应关系。这样&#xff0c;我们要操作数据库&#xff0c;表&#xff0c;记录就可以直接通过操作类或者类实例来完成。 SQLAlchemy 是目前python中最…

连接时序分类 Connectionist Temporal Classification (CTC)

CTC全称Connectionist temporal classification&#xff0c;是一种常用在语音识别、文本识别等领域的算法&#xff0c;用来解决输入和输出序列长度不一、无法对齐的问题。在CRNN中&#xff0c;它实际上就是模型对应的损失函数(CTC loss)。 一、背景 字母和语音的对齐(align)非…

Redis 内存的优化

目录 前言 Redis 的内存碎片问题 判断Redis 内存碎片 如何清理内存碎片&#xff1f; 前言 我想讲一下怎么提高Redis 内存的利用率&#xff0c;redis 的数据是保存在内存中。对内存的利用率低&#xff0c;意味着存的数据很少&#xff0c;并不意味着就没有内存了&#xff0c…