ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Sora视频生成技术拆解:视频压缩、时空Patch与扩散Transformer

Sora视频生成技术拆解:视频压缩、时空Patch与扩散Transformer

你半夜刷手机看到一段航拍视频,从空中缓缓掠过雪山顶,光线穿过云层,阴影在峡谷里移动,镜头一直往前推,完全没有传统视频生成那种僵硬和闪烁。下面的评论写着“Sora 生成的”,第一次看到的时候,大多数人心里都有同一个问题:这到底是怎么做到的?从几个月前“文生图”还在讨论“手部结构崩坏”,到如今一段接近成片级别的高清视频被直接生成出来,这中间的跨越远比表面看起来大得多。

这篇文章我不想只停留在“Sora 很强”这个结论上,而是把它最关键的几个技术环节拆开来看:视频压缩网络、时空 Patch、扩散 Transformer、以及“语言理解 + 视频生成”的统一范式。这些也是未来很长一段时间里,视频生成领域绕不开的核心话题。

1. 一个视频生成模型凭什么能刷屏

视频生成不是全新概念。在 Sora 之前,行业里已经有大量文本生成视频的工具和论文,用 GAN、VAE 或者序列模型生成的视频也出现过不少。但真正在社交网络上刷屏、让非技术圈的人也感到震撼的,Sora 算是话语权最大的那个。原因不复杂:它第一次把视频生成的质量、时长和一致性同时提升到了一个“看起来像真实拍摄”的层次。

1.1 我们花了多少年才走到今天这一步

从技术迭代的脉络来看,视频生成经历了几个明显阶段。最早的办法是用循环神经网络(RNN/LSTM)逐帧预测下一帧,预测几帧之后误差就滚雪球,画面很快开始模糊,基本不具备实用性。后来 GAN 类方法被引入,单帧质量有明显提升,但多帧一致性问题始终没有解决——狗跑着跑着鼻子变了,人转身之后衣服纹路对不上,更别说复杂的遮挡关系。

再后来扩散模型在图像领域爆发,很多人尝试把扩散模型从单张图片扩展到视频,思路通常是“先生成第一帧,再以第一帧为条件生成后续帧”,或者“先做关键帧插帧”。这类方法把视频当成一组图片来处理,本质上没有建立时间的整体认知,所以生成结果经常出现抖动、跳变,时序越往后崩得越厉害。

Sora 出现的时候,行业里刚好处在一个转折点:视频压缩网络的成熟、扩散模型与 Transformer 的融合、以及语言模型带来的文本理解能力,三者都积累了足够多铺垫,而 Sora 几乎是第一次把这些要素整合到同一个大规模框架里。它不再把视频看作“图片序列”,而是把视频当作一个三维空间-时间块来处理,所有帧共享一套内部表征。这是它“质感”上明显领先前代工具的底层原因。

1.2 它到底解决了什么难题

如果只挑三个最让用户印象深刻的差别,我会说:一致性、合理性、可控性。

一致性指的是长视频里的物体身份稳定。一个戴帽子的行人从画面左侧走到右侧,帽子不会突然变成贝雷帽,人脸轮廓不会中途“换头”。传统方法很难做到这一点,因为每一帧是独立生成的,帧与帧之间没有全局记忆。而基于注意力机制的架构可以在生成某一帧时,直接参考前面任意帧的信息,跨帧一致性从根本上得到了改善。

合理性主要指物理世界的表现。物体被遮挡后再次出现,位置、姿态还能对得上;镜头快速运动时,前景和背景的相对关系基本符合透视规律;光照方向变化时,阴影和反光也跟着变。这说明模型在训练中学到了大量关于现实世界的隐式规则,不只是在“补图像”,而是在“理解场景”。

可控性则是提示词对画面内容的约束能力。以前生成视频,你写十句提示词,模型可能只能响应其中一两句。Sora 这样的模型对语言语义的捕捉能力更强,颜色、风格、运动方式、镜头类型都能比较准确地映射到生成结果中。对创作者来说,这一点直接决定了工具是不是真的能用于工作流,而不只是“玩玩而已”。

2. 一切从“视频压缩”开始——视频不会直接进模型

很多人以为 Sora 是把原始像素视频喂给模型,让模型逐帧生成画面。直觉上没错,但实现上必须绕一个弯:直接处理原始像素,算力开销大到不可接受,而且建模难度太高。Sora 的第一层关键模块是视频压缩网络,它把视频“翻译”成一个更紧凑的隐空间表示,生成过程在这个隐空间里完成,最后再用解码器把隐变量还原成可见视频。

2.1 视频压缩网络:先把黑夜塞进一个箱子

如果把图片类比成一篇文章,原始像素相当于完整原稿,但原稿太长、噪声太多,模型很难直接从中悟出“为什么写”。视频压缩网络的作用,就像先训练一个自动摘要器,把每一帧的核心视觉信息抽取到位,整理成结构化的要旨,模型只需要理解这版精简的“要旨”,就能生成新内容。

训练分两步:第一步,视频压缩网络把高分辨率、多帧的原始视频输入映射到低维潜空间;第二步,扩散模型在这个潜空间里做前向加噪、反向去噪的训练;推理时,扩散模型生成一段潜空间表示,再由压缩网络的解码器重建出像素级视频。这样做的好处非常直接,模型内部处理的数据规模小了不止一个数量级,训练和推理效率都大幅提升。

类比一下,你不需要每帧画面都保存 4096×2160 的精确像素值,只需要保存“这一秒画面里有哪些物体、它们在哪里、光照大概什么方向”这样的浓缩信息,解码器负责把浓缩信息渲染回真实画面。压缩网络和扩散模型分工明确:压缩网络管“画面该怎么翻译”,扩散模型管“内容该怎么生成”。

2.2 时空 Patch——视频世界的乐高积木

压缩完视频之后,下一步是把潜空间里的视频表示切成一堆小方块。这就是“时空 Patch”的登场时刻。

图像领域里 Patch 的概念很成熟:一张图切成很多个固定大小的像素块,每个块相当于一个 token,送入 Transformer 处理。视频就是再多切一个维度——时间。一小段视频被切成宽度×高度×时间的三维块,一个 Patch 不但包含空间信息,也包含持续若干帧的运动信息。这种把视频变成 token 的方式,是 Sora 背后的统一视觉范式的根基。

这带来一个很有意思的能力:模型不再绑定特定分辨率、长宽比或帧率。因为不管你输入的是 16:9 的横屏电影片段,还是 9:16 的竖屏短视频,最终都会被切分成尺寸统一的 Patch token,模型天然以同样的逻辑处理所有形态。这也是为什么 Sora 风格的模型能同时“理解图像和视频”——图像只是时间维度长度为 1 的“单帧视频”。在模型内部,图像和视频共享同一套 token 体系,统一性由此而来。

Patch 的数量也解释了这类模型为什么对算力要求极高。一段 10 秒的视频,按标准帧率就是几百帧,切出来后 token 数量达到数万甚至十万级,这些 token 要一起进 Transformer 做注意力计算,比语言模型处理几千个 token 的序列长得多。算力消耗集中在 Transformer 的注意力矩阵上,序列长度每增加一倍,计算量大约翻四倍。视频生成的技术难点,很大程度是在这个“长序列 + 高维度”的组合压力下产生的。

3. 扩散 Transformer——为什么非要把 Transformer 和扩散模型“焊”在一起

Sora 的生成流程整体上属于扩散模型家族:先加噪、再去噪,靠逆向过程恢复画面。但在网络架构上,它没有复用传统扩散模型常用的 U-Net,而是换成了 Transformer 体系,业内通常把这套组合称为“扩散 Transformer”。这个转变看起来只是一个网络骨架的替换,实际影响非常深远。

3.1 扩散模型的生成步骤

扩散模型可以简单理解成“学会复原被污染的东西”。训练时,把一段清晰的视频逐步加入高斯噪声,直到变成几乎纯噪声;再训练一个网络,让它从任意一个被污染的中间状态里预测噪声,然后反向删除,得到原始画面。这个过程从“一张糊满白噪点的屏幕”开始,每去一步噪,画面就更清晰一点,逐步浮现出物体轮廓、细节和运动轨迹。

推理时,模型随机初始化一段纯噪声潜变量,通过多轮迭代逐步去噪,最终生成完整视频。整个过程就像雕刻家从一块石头里慢慢凿出人像,只不过“石头”是随机噪声,“雕刻刀”是训练好的神经网络。扩散模型的优势在于生成质量高、细节丰富、覆盖模态多样,这也是它成为图像生成主流的直接原因。

Sora 做的就是把这一套搬到视频上,并且改变了生成器的内部结构。传统 U-Net 在处理图片时表现出色,但视频 Patch token 序列实在太长,U-Net 的设计并不适合做超长序列的全局建模。Transformer 的注意力机制可以在任意两个 token 之间建立直接连接,无论它们相距多远,在时间上隔了多少帧。这就确保了视频前几秒的语义约束可以传导到最后几秒。

3.2 为什么是 Transformer 而不是 RNN

单纯的 RNN 或 U-Net 结构有天然的“局部视野”,想象一下你只能通过一条很窄的缝隙观察房间,每看一个位置就得移动一段,最后靠记忆拼出整体图景。注意力机制则是让模型可以同时看到房间所有角落,任何一个位置都能直接参考另一个位置的信息,不靠层层传递,没有信息损耗。

视频里经常出现这样的需求:画面一开始出现了一栋红色房子,镜头切走几秒后再切回来,房子必须还是红色的、形状一致消失、角度不变。如果模型没有跨帧全局记忆,就很容易把房子改写成另一栋。Transformer 的跨时间注意力让这个问题变得可控,因为生成“后面某一帧”时,模型可以直接读取“前面某帧”里的相关信息。物体一致性因此有了结构上的保障,而不是靠运气碰。

Transformer 还有一个工程上的优势:高度并行。注意力计算本质上可以批量进行,训练时可以充分利用并行加速设备,模型规模可以不断扩大。Sora 在宣传时强调大规模训练的重要性,背后的逻辑就在这里——当模型参数量、训练数据量和计算资源同时增长时,Transformer 架构能稳定吃到规模红利,这是以前小模型结构做不到的。

4. 语言理解与训练数据——为什么文字指令这么有效

如果只看架构,Sora 的模型设计更像一个“视频版的大语言模型”:视频被 token 化,Transformer 负责序列建模,最后交给坐标网络解码。但一个完整可用的生成系统,还包括“文本怎么进来”这一层。“文生视频”不是把文字随便塞进去,而是要把自然语言语义准确地注入视频生成过程。

4.1 把语言“编织”进画面生成流程

Sora 一脉继承了图像生成模型里成熟的文本编码流程。一段用户输入的提示词,先经过文本编码模型,转换成一堆携带丰富语义的向量。这些语义向量与视频 Patch token 一起输入 Transformer,通过交叉注意力机制,让每个视频位置都能从文本向量中提取与自己对得上的语义信息。

比如输入“黄昏时分,海面泛着金色反光,远处一艘白帆船缓缓横向驶过”,模型会把“黄昏”“海面”“金色反光”“白帆船”“横向驶过”这些信息拆解成不同的语义通道。视觉 Token 在生成过程中,会依据这些通道调整内容:某个区域负责画海面,就需要重点参考“金色反光”这个语义;某个区域负责画船,就需要参考“白帆船”“横向驶过”的语义。

文本与视觉的跨模态对齐是这类模型的核心难点。如果语义对齐做不好,提示词再多也会出现“划船但水纹方向反过来”这种低级的因果错误。Sora 表现出来的强文本跟随能力,背后大概率是用了大规模高质量图文视频对数据,以及一个表达能力足够强的文本编码模块。

4.2 它生成的是“世界模型”而不是“纯画面模型”

很多人第一次看 Sora 视频时,震撼点不单是画质,而是画面里那些“隐形的规则”:杯子倒了之后,液体流动的方向符合重力;汽车转弯时,轮胎和地面的相对摩擦关系合理;镜头从窗外拉进屋内时,家具的透视比例没有崩掉。这说明模型在视频生成这一任务里,额外学会了大量关于物理世界规律的隐式知识,OpenAI 在技术报道中也直接把这类模型称为“世界模拟器”。

传统视频生成模型的目标是“让每一帧看起来像正常视频”,至于帧与帧之间符不符合物理,模型不在乎。而 Sora 这一类模型因为接受了海量视频训练,它必须同时“预测”物体怎么移动、光线怎么变化、遮挡怎么处理,才能把下文补完整。这个“补全下文”的过程,本质上和世界模型有点相似。

注意,并不需要把“世界模型”理解为科学家式的精确物理仿真。Sora 学到的物理规则是概率性的、粗略的,它知道“杯子掉下来通常会碎”,但不一定能准确模拟碎片飞散的每一条轨迹。模型偶尔也会犯错误,比如穿越物体、肢体扭曲、逻辑混乱。但站在工程角度,能在大规模场景里隐式习得这么多现实规则,已经是一个非常关键的里程碑。

5. 实操与落地:从用户到开发者能做的事

Sora 不仅是一个技术话题,也迅速变成了创作者关注的生产力工具。文生视频的门槛被大幅拉低,但真正想把它用在日常创作或产品研发里,还有不少值得琢磨的细节。下面从用户和开发者两个角度讲几个实操方向。

5.1 写提示词的三个层次:从“能跑”到“精准出片”

第一层是物理准确。提示词里要明确主体、环境、镜头运动和光照基调。不要只写“一个女孩在走路”,要写“一个穿红色外套的女孩,走在雨后湿润的街道上,镜头跟随她的背影缓慢前推,天色阴沉,地面有霓虹灯光反射”。明确信息越多,模型越不会自由发挥。

第二层是时间结构。如果你想要一个完整的叙事片段,最好描述出过程变化。“起先是早餐桌上一杯冒热气的咖啡,镜头缓缓下拉,咖啡桌面映出窗外的城市轮廓,随后窗外开始下雨,雨滴打在玻璃上,焦点从杯口移到窗外”,这种描述把多阶段运动拆开,模型理解起来更容易。纯写“一个下雨天的早晨”,生成结果大概率很随机。

第三层是风格锚定。如果你想要“模拟老式胶卷质感”“皮克斯风格”“模拟监控摄像头视角”,这些关键词放在提示词的前面或者显眼位置,效果会更好。文本编码器通常对提示词首部和尾部的权重更高,核心诉求放在开头是实操中验证过的小技巧。

5.2 从开发者视角:复现 Sora 路线可以分四步走

如果你想自己尝试复现类似能力,或者接入这种技术方向,比较务实的路径是:

  • 第一步,熟悉图像级扩散模型。先把 Stable Diffusion 级别的图像生成原理、学习率调度、噪声采样策略搞清楚,这是视频模型的必要基础。
  • 第二步,自己动手做小型视频压缩网络。不用一开始就做大规模潜空间解耦,可以从几帧低分辨率视频开始,训练一个能把 64×64×4 帧压成低维潜向量的网络,验证还原质量。
  • 第三步,把 U-Net 换成轻量级 Transformer,在低分辨率小数据集上跑通视频扩散训练。重点观察跨帧一致性是否比 U-Net 版本好,这一步能亲身体会到“注意力机制带来的差异”。
  • 第四步,加入文本条件。使用开源文本编码器,做词向量序列和视频时间 Token 的交叉注意力,在小数据集上做 prompt 控制实验。

这样做的好处是每一步都有明确的实验验证节点,不会一上来就被工程复杂度淹没。某团队就是先用 64×64 分辨率小模型验证了视频 Patch 思路,再逐步放大到更高分辨率的,前期的失败成本极低,但经验积累非常值钱。

5.3 新手最容易踩的三个坑

第一个坑是想直接跳到“高质量长视频生成”,却跳过了压缩网络。潜空间设计没做好,后续扩散模型再强,解码器出来的画面也会有严重伪影和模糊。我见过不少项目是在原始像素上直接做扩散回归,结果生成了大量高频噪声,却始终学不会稳定结构。建议前期重点分析和评估压缩网络的重建质量,而不是先把扩散模型做复杂。

第二个坑是长序列训练策略不对。视频 token 序列比文本长得多,如果把所有帧一次性塞进去而不好好做注意力矩阵的工程优化,显存会直接爆掉。常见的解决思路是使用分块注意力、梯度检查点、混合精度训练,以及在训练初期采用固定低帧数,中途逐步增加帧数,让模型渐进式学会长序列建模。这种课程式训练策略在视频任务里非常有效,直接整天长数据并不可行。

第三个坑是只盯着结构损失,忽视语义对齐。有些人跑起来发现画面挺清晰,但文字指令完全不生效,问题往往出在文本编码器和交叉注意力模块上。建议训练时专门构造“文本切换”测试集:同一个视频主体,只改文字中的一项属性(比如颜色、动作方向),观察生成结果是否跟着变化,快速定位语义能力瓶颈。

6. 常见问题与排查技巧实录

实践中,不管是使用开源视频生成模型还是观察 Sora 类模型的早期效果,总会遇到一些看起来很普遍又很难定位的问题。下面整理几类典型现象和排查思路,很多都是我身边的人踩过坑之后总结出来的。

6.1 生成的视频总是画面模糊,怎么回事

画面模糊先分清是“全片糊”还是“局部糊”。全片糊,大概率出在潜空间解码上。检查视频压缩网络的压缩率是不是过高,隐向量维度太小,导致解码器无法重建细节。局部糊则多半出现在运动区域,移动的物体细节丢失,这通常是训练视频帧率过低或大幅运动样本覆盖不足引起的。

另一个常见原因是对比度和锐化后处理过度,导致画面发闷。如果生成结果在屏幕上看还行,放大看会发现高频纹理丢失,可以尝试在推理时调整无分类器引导参数,适当提高引导强度可以改善细节,但调太高会引入过饱和和伪影。

6.2 物理逻辑看起来“疯疯癫癫”,怎么改善

模型生成的门窗穿模、物体漂浮,说明训练数据里没有足够的物理一致性负样本约束。对用户来说能做的有限:提示词里尽量避免过于复杂的多物体交互,把场景拆成更简单的动作描述,模型生成逻辑会更稳。对开发者来说,则需要检查视频数据的时间一致性,最好在数据预处理时过滤掉那些跨帧变化跳跃过大的样本,减少噪声监督信号。

同时可以关注注意力感受野的问题。如果模型只看局部时间窗口,长时运动逻辑一定会崩。如果你在自己复现模型,可以尝试增加全局注意力层或者引入临时位置编码,这些改动对长期一致性有直接帮助。

6.3 训练早停之后,结果还是不够稳,应该继续跑还是加数据

这个问题几乎是每个视频生成实验组都会问的。先看损失曲线和验证指标:如果损失还在持续下降,验证集的文本对齐分数也在上升,那就继续训练,但可以把学习率适当调低;如果损失已经收敛,但生成质量仍然不佳,那很可能不是训练轮次问题,而是数据容量或模型容量到了天花板。

业界常用的办法是把图像生成预训练当作视频训练的初始化。先用大量高质量图像数据把视频模型的单帧生成能力拉上去,再做视频联合微调,相当于先让模型会“画像”,再教它“动起来”。这种策略能明显缩短训练周期,同时稳定画面质量。

现象优先排查点可能原因
全片模糊压缩网络的重建质量隐空间维度过低,解码器能力不足
运动区域糊训练数据帧率与运动幅度高运动样本覆盖不够
文字指令不生效文本编码器与交叉注意力语义对齐训练不足,文本特征没注入
物体身份漂移各帧间全局注意力局部注意力主导,缺少跨帧约束
训练不收敛学习率与噪声调度学习率过大或数据批次噪声过多
显存爆掉注意力矩阵规模序列太长、缺少分块注意力或梯度检查点

这个表不保证覆盖所有情况,但拿来做一个排查起点是够用的。视频生成工程本身处于爆发式发展的早期,很多问题没有“标准答案”,自己动手实验的记录往往比论文里写的更有参考价值。

7. 写在最后的一点体会

如果只看 Sora 的宣传视频,可能会觉得这项技术离我们很远,像是某个大团队关起门来搞出来的黑科技。拆开之后你会发现,它的核心组件都是近些年公开领域研究成果的集成:扩散模型是公开的,Transformer 是公开的,Patch 化思路是公开的,视频压缩网络也有大量论文支撑。Sora 的震撼不在于发明了一个前所未有的模块,而在于它把已有碎片拼合成一个大规模、可执行的系统,并且用充足的数据和算力把它推到质变点。

对我来说,这件事最值得关注的意义不是“某个模型有多强”,而是它验证了一条可复制的技术路线:视觉任务正在从“专用小模型”走向“统一大模型”,图像、视频、语言正在被融合到同一套表示体系中。对一个从业者而言,搞清楚这里面“为什么有效”比“用什么工具”重要得多。

如果你刚接触这个方向,我的建议很简单:不要只盯着官方视频看,找个开源的小规模视频扩散模型跑一跑,从训练日志、损失曲线、推理结果里感受一下“时序建模的难点到底在哪”。自己动手踩过坑之后,再回来看 Sora 的技术报告,你会有完全不一样的理解深度。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进