想象你是电影厂的一位新人导演,手里握着三件风格迥异的“拍片工具”:第一件是一位手翻动画匠人,他对照着前一页纸,一丝不苟地画出下一页,踏实但缓慢;第二件是一位画师,身边总跟着一位嘴特别毒的评论家,两人在互相抬杠中画技越练越精;第三件是一位雕刻家,他不直接“画”画面,而是抱来一块被泥浆糊满的石头,一刀一刀剔除多余的部分,最终从石料里凿出一段会动的影像。这三件工具,恰好对应了视频生成模型历史上的三条技术路线——自回归生成、对抗生成(GAN)和扩散模型。 技术演进,本质上是一条从“黑白默片”走向“IMAX 大片”的路。最早的视频生成模型只能产出十几帧模糊到几乎看不清的画面,像幻灯片一样;而今天,Sora 能根据一句“水面上漂浮着一只木船”就生成近一分钟、镜头流畅、光影逼真的视频。这中间到底发生了什么?一句话概括:从“会动”,到“像真的会动”,再到“指哪拍哪”。这条路线图的背后,是模型对“时间”越来越深刻的理解——视频不再被当成一堆图片的拼接,而是被当成一个在时间轴上连续变化的世界。 这篇文章会带你沿着这条演进路线完整走一遍:先看清三条技术路线各自的“拍摄手法”与短板,再看让画面不闪不跳的灵魂技术“时序一致性”如何成为关键突破,最后用 FVD 指标、Sora、可灵等代表模型串起整个脉络,并展望未来的方向。读完你会明白:Sora 不是凭空掉下来的神兵,而是一代代“导演”接力打磨的必然结果。

岗位关联

掌握视频生成技术演进脉络,能帮你在面对 Sora、可灵、Pika 等层出不穷的工具时看透底层原理、预判能力边界,也能在技术选型与效果评估中保持清醒的专业判断。

目录
  1. 可视化演示
  2. 演进总览
  3. 自回归生成
  4. 对抗生成网络
  5. 扩散模型
  6. 时序一致性
  7. 质量与可控性
  8. 代表模型
  9. 未来趋势
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

本节配有交互动效(进入视口后自动加载,约 3KB)。

视频生成技术演进路线 GAN→VAE→扩散模型→流匹配 每代技术在分辨率和时长上突破 Quality ∝ Compute × Data 从对抗生成到概率流匹配的范式跃迁

演进总览

电影工业从手绘动画到电脑特效,每一次技术跃迁都让“拍出动态画面”从奢侈变得寻常。视频生成模型的世界里上演着同样的大戏:过去八年,AI 导演们先后拿起三种截然不同的“摄影机”,走出了三条风格迥异的道路。这三条路分别是自回归生成、对抗生成(GAN)和扩散模型。名字虽唬人,本质区别只在于回答一个问题——“如何从一张白纸出发,构造出一段连续的视频?”

自回归选择一帧一帧地推演,像手翻动画匠人;GAN 选择让画师与判官对赌,像一场不眠不休的斗画;扩散则选择从一团噪声里“雕刻”出画面,像耐心十足的雕塑家。从时间线看,2016 年 VideoGAN 用对抗方式生成十几帧模糊影像;2021 年前后视频扩散模型(VDM)后来居上,画质大幅领先;2024 年 Sora 横空出世,把文本直接变成一分钟的连贯高清视频。

每一次跃迁都同时带来生成质量与可控性的双重提升——从“能生成”,到“生成得好”,再到“想生成什么就生成什么”。而这一切的数学根基,可以用下面这条公式概括:它把所有视频生成路线的共同目标写了出来——算准“在给定历史帧后,下一帧该是什么”的概率。

三条路线的差别,本质上是“如何逼近这个连乘”的策略差异。接下来,我们逐个走进这三间“摄影棚”,看看每位导演的独门绝技与翻车现场。

p(x1:T)=∏t=1Tp(xt∣x1,x2,…,xt−1)\displaystyle p(x_{1:T}) = \prod_{t=1}^{T} p(x_t \mid x_1, x_2, \ldots, x_{t-1})
这条公式是视频生成的总纲:一段视频的概率,等于每一帧在“看到前面所有帧”之后出现的概率之积。谁把右边这个连乘算得越准,谁就能生成越逼真的视频。
  1. 视频表示$x_{1:T}$ 代表一段由 T 帧画面组成的视频,下标从 1 到 T 表示严格的时间顺序。
    x1:T=(x1,x2,…,xT)\displaystyle x_{1:T} = (x_1, x_2, \ldots, x_T)
  2. 链式分解一整段视频的联合概率被拆成每一帧条件概率的连乘,这是概率论中的链式法则。
    p(x1:T)=p(x1)⋅p(x2∣x1)⋯p(xT∣x1:T−1)\displaystyle p(x_{1:T}) = p(x_1) \cdot p(x_2 \mid x_1) \cdots p(x_T \mid x_{1:T-1})
  3. 时间依赖第 t 帧出现的概率,以它之前的所有帧为条件——这正是“时序一致性”的数学根源。
    p(xt∣x1,x2,…,xt−1)\displaystyle p(x_t \mid x_1, x_2, \ldots, x_{t-1})

自回归生成

小时候玩过手翻动画吗?在本子的每一页画一个小人,每页只比上一页挪动一点点,快速翻页时小人就“活”了起来。自回归生成模型就像这位手翻动画匠人:它不看“全局剧本”,只盯着已经画好的那叠纸,然后稳稳地画出下一页。这种“参照前文、推演后文”的思路,和语言模型一个词一个词造句是同一个套路。

在技术上,这个过程叫“逐帧预测”:给定前 t-1 帧,模型预测第 t 帧。但直接预测高分辨率像素太难了,于是工程师们先请来一位“压缩师”(VideoVQGAN 的编码器)把每一帧压成离散的视觉编码(token),相当于把一幅复杂的画面简化成几笔“简笔画”,模型只负责预测这些简笔画序列,最后再用解码器把简笔画还原成画面。

代表模型如 VideoGPT 曾证明“视频可以像语言一样被建模”。但匠人的方式有个致命伤:误差累积——第 10 帧画歪一点,第 20 帧就会歪得更厉害,像墨迹在纸上越洇越大;再加上逐帧逐 token 滚动生成,速度非常慢。因此自回归路线在视频生成中逐渐边缘化,但它“编码—预测—解码”的思想被后来者完整继承了下来。

手翻匠人画得再认真,也敌不过“一错再错”的累积效应。这提醒我们:视频生成要的是全局连贯,而不是局部精致。于是,下一位更激进的导演登场了。

x^t=arg⁡max⁡xtp(xt∣x1,x2,…,xt−1)\displaystyle \hat{x}_t = \arg\max_{x_t} p(x_t \mid x_1, x_2, \ldots, x_{t-1})
这句话的意思是:模型在“所有可能的下一帧”里,挑一个概率最大的当作下一帧。这是自回归生成每一步的决策规则。
  1. 历史条件$x_1$ 到 $x_{t-1}$ 是已经生成好的所有前序帧,它们是预测下一帧的全部依据。
    x<t=(x1,x2,…,xt−1)\displaystyle x_{<t} = (x_1, x_2, \ldots, x_{t-1})
  2. 条件概率$p(x_t \mid x_{<t})$ 表示已知历史帧时,第 t 帧取某个候选画面的概率大小。
    p(xt∣x<t)\displaystyle p(x_t \mid x_{<t})
  3. 最大后验选择$\arg\max$ 表示从所有候选帧中挑出概率最大的那个 $x_t$,作为这一帧的最终输出。
    x^t=arg⁡max⁡xtp(xt∣x<t)\displaystyle \hat{x}_t = \arg\max_{x_t} p(x_t \mid x_{<t})

对抗生成网络

想象一位画师和一位毒舌评论家打赌。画师每交出一幅“假画”,评论家就要一口咬定“这是假的!”画师不服,继续改进;评论家的眼光也越来越毒。两人就这样互相较劲,画师的作品竟在博弈中越来越接近真迹——这就是对抗生成网络(GAN)的运作方式。

GAN 由两个神经网络组成:生成器 G 负责把一段随机噪声 z 变成视频,判别器 D 负责判断一段视频是真实拍摄的还是生成器伪造的。两者目标相反,构成一场“猫鼠游戏”。2016 年,VideoGAN 首次把 GAN 用于视频生成,虽然只能产出 16×16 的模糊片段,却证明了“对抗”能逼出以假乱真的画面。

后续的 MoCoGAN 等模型引入 VAE 思想,把视频拆成“内容”和“动作”两个潜变量,让动作连贯性有所改善。GAN 路线的优点是生成速度快、画面锐利;缺点是训练极不稳定,还容易“模式坍缩”——画师偷懒了,只会反复画同一张脸。这让 GAN 在处理长视频时力不从心。

画师与评论家的赌局虽然精彩,却太容易“掀桌”——训练一旦不稳,画师要么摆烂画同一张脸,要么作品彻底崩坏。这也解释了为什么视频生成的主舞台,最终交给了更有耐心的雕刻家。

min⁡Gmax⁡DEx∼pdata[log⁡D(x)]+Ez∼pz[log⁡(1−D(G(z)))]\displaystyle \min_{G} \max_{D} \mathbb{E}_{x \sim p_{\text{data}}}[\log D(x)] + \mathbb{E}_{z \sim p_z}[\log(1 - D(G(z)))]
这是 GAN 的“赌局规则”:判别器 D 拼命识别假视频,生成器 G 拼命让假视频骗过 D。双方在对抗中共同进化,最终生成器练出以假乱真的手艺。
  1. 判别器目标对真实视频 $x$,判别器希望 $D(x)$ 接近 1(判定为真),因此 $\log D(x)$ 越大越好。
    Ex∼pdata[log⁡D(x)]\displaystyle \mathbb{E}_{x \sim p_{\text{data}}}[\log D(x)]
  2. 生成器目标对生成的视频 $G(z)$,判别器希望 $D(G(z))$ 接近 0(判定为假),因此 $\log(1 - D(G(z)))$ 越大越好。
    Ez∼pz[log⁡(1−D(G(z)))]\displaystyle \mathbb{E}_{z \sim p_z}[\log(1 - D(G(z)))]
  3. 极小极大博弈外层 $\min$ 是生成器想最小化这个目标,内层 $\max$ 是判别器想最大化,二者构成对抗训练。
    min⁡Gmax⁡D\displaystyle \min_{G} \max_{D}

扩散模型

雕刻家的工作和画师截然不同。他不凭空作画,而是抱来一块被泥浆糊满的石头,一刀一刀剔除多余的泥,让藏在里面的雕塑逐渐显露。扩散模型正是这样一位雕刻家——它把“生成”重新定义为“还原”:先学会给视频泼泥浆,再学会把泥浆揭下来。

具体分两步。前向过程:把一段视频逐步加入高斯噪声,直到完全变成一团乱码,就像把雕塑一遍遍泼上泥浆。反向过程:训练一个神经网络,让它学会“揭泥”——给定一个混浊的画面 $x_t$,预测刚才被泼上去的噪声 $\epsilon$,然后一步步移除。每揭一层,画面就清晰一分。视频扩散模型(VDM)把这种机制从图像扩展到三维时空,同时处理多个帧,让“文本生视频”第一次有了实用价值。

相比 GAN,扩散模型训练稳定得多,生成质量也高出一截;缺点是几十步迭代去噪,速度太慢。后来潜空间扩散模型(LDM)把去噪过程搬到压缩后的潜空间中进行,速度和显存占用大幅优化——正是这个关键改动,为 Sora 铺平了道路。

雕刻家用耐心换来了稳定与质量,成为当前视频生成的主流工具。不过,无论雕刻手法多高超,如果刻出来的每一帧各自为政,视频依然“不像电影”——下一节,我们看看决定“像不像电影”的灵魂:时序一致性。

L=Ex0,ϵ,t[∥ϵ−ϵθ(αˉtx0+1−αˉtϵ,t)∥2]\displaystyle L = \mathbb{E}_{x_0, \epsilon, t} \left[ \left\| \epsilon - \epsilon_\theta\left(\sqrt{\bar{\alpha}_t} x_0 + \sqrt{1 - \bar{\alpha}_t} \epsilon, t\right) \right\|^2 \right]
这是扩散模型的“修炼心法”:让神经网络学会预测“刚泼上去的噪声”。噪声预测得越准,反向去噪就越接近原片。
  1. 加噪公式$x_t = \sqrt{\bar{\alpha}_t} x_0 + \sqrt{1 - \bar{\alpha}_t} \epsilon$ 表示当前画面由原始视频 $x_0$ 与高斯噪声 $\epsilon$ 按比例混合,$t$ 越大噪声占比越高。
    xt=αˉtx0+1−αˉtϵ\displaystyle x_t = \sqrt{\bar{\alpha}_t} x_0 + \sqrt{1 - \bar{\alpha}_t} \epsilon
  2. 噪声预测器$\epsilon_\theta(x_t, t)$ 是神经网络对噪声的预测,输入混浊画面 $x_t$ 和时间步 $t$。
    ϵθ(xt,t)\displaystyle \epsilon_\theta(x_t, t)
  3. 均方误差模型预测的噪声与真实噪声 $\epsilon$ 求均方误差,误差越小,去噪后的画面就越干净。
    ∥ϵ−ϵθ(xt,t)∥2\displaystyle \left\| \epsilon - \epsilon_\theta(x_t, t) \right\|^2

时序一致性

看电影时,你从不担心主角会在下一帧突然换一套衣服,因为导演团队里有专人负责“连续性”。视频生成最难啃的骨头,恰恰就是这种连续性,专业术语叫“时序一致性”。如果每帧独立生成,画面会像坏掉的霓虹灯一样疯狂闪烁,根本没法看。

早期模型用光流约束——要求相邻帧的像素运动符合物理规律——或者用 3D 卷积把时间当成第三个空间维度,强行拉近帧间关系。这些方法像给演员身上绑了钢丝,能约束局部动作,却管不住长远情节。随后,时序注意力机制登场:让每一帧“回头看看”前面所有帧,自主决定该参考谁。

真正的关键突破来自 Sora 的时空 patch:把视频沿空间和时间两个方向切成小立方体,当作一个个“视觉单词”,交给 Transformer 统一建模。相比 3D 卷积的局部视野,Transformer 的全局注意力让模型能同时“看见”几秒甚至几十秒的上下文,长距离运动因此变得顺畅自然——这是时序一致性建模从“硬绑钢丝”到“全局理解”的质变。

有了“连续督导”,散落的帧终于连成一段真正的电影。时序一致性从“硬绑钢丝”进化到“全局理解”,这是视频生成质量跃迁的关键。接下来,我们用一把客观的尺子,量一量每位导演的进步幅度。

Attention(Qt,K,V)=softmax(QtK⊤d)V\displaystyle \text{Attention}(Q_t, K, V) = \text{softmax}\left( \frac{Q_t K^{\top}}{\sqrt{d}} \right) V
时序注意力的作用:当前帧作为“提问者”,从所有历史帧的“记忆库”中检索相关信息,再融合进自己的画面。提问越准,帧与帧之间就越连贯。
  1. 查询向量$Q_t$ 是第 t 帧的查询向量,代表“我现在需要知道什么信息”。
    Qt=WQzt\displaystyle Q_t = W_Q z_t
  2. 键值矩阵$K$ 和 $V$ 是所有帧的键与值,键用于匹配相关性,值用于提供画面信息内容。
    K=WKZ,V=WVZ\displaystyle K = W_K Z, \quad V = W_V Z
  3. 缩放点积注意力用 $Q_t$ 与所有键 $K$ 求相似度,经 softmax 归一化成权重,再对值 $V$ 加权求和——完成一次“跨帧参考”。
    softmax(QtK⊤d)V\displaystyle \text{softmax}\left( \frac{Q_t K^{\top}}{\sqrt{d}} \right) V

质量与可控性

电影的好坏不能只靠导演自夸,得有专业评分。视频生成也一样,不能只靠“肉眼看着还行”,于是有了 FVD 等客观指标。FVD(Fréchet Video Distance)可以被理解成一块“专业评分板”:把真实视频和生成视频分别送进特征提取器,再比较两组特征分布的远近。

从数据看,视频生成的“分辨率与时长”一路狂飙:早期 GAN 只能生成 16×16 的一两秒短片;扩散时代普遍达到 256×256、数秒至十几秒;到 Sora 手里直接跃升到 1080p、近一分钟。这些提升都离不开条件控制——文本指令、参考图像、相机运镜,让生成从“抽盲盒”变成“按剧本拍片”。

可控性的提升是区分“玩具”与“工具”的分水岭:text-to-video 让你用一句话描述画面;image-to-video 让一张照片“活”起来;camera control 让你指定推拉摇移。每多一个控制维度,创作者就多一分对镜头的掌控力,作品也就更贴合真实需求。

评分板让进步可衡量,可控性让创作有抓手。有了清晰的标尺,我们就能公平地盘点那些“里程碑影片”——从 VideoGAN 到 Sora,每一部都值得写进教科书。

FVD=∥μr−μf∥22+Tr(Cr+Cf−2(CrCf)1/2)\displaystyle \text{FVD} = \left\| \mu_r - \mu_f \right\|_2^2 + \text{Tr}\left( C_r + C_f - 2\left( C_r C_f \right)^{1/2} \right)
FVD 比较真实视频特征与生成视频特征的两个高斯分布:均值差加协方差差。数值越小,说明生成视频与真实视频的“气质”越接近。
  1. 特征提取用预训练网络(如 I3D)分别提取真实视频集合与生成视频集合的特征,并假设它们各自服从高斯分布。
    zr∼N(μr,Cr),zf∼N(μf,Cf)\displaystyle z_r \sim \mathcal{N}(\mu_r, C_r), \quad z_f \sim \mathcal{N}(\mu_f, C_f)
  2. 均值距离两组特征中心(均值 $\mu$)的欧氏距离平方,衡量整体画面风格的偏移程度。
    ∥μr−μf∥22\displaystyle \left\| \mu_r - \mu_f \right\|_2^2
  3. 协方差距离协方差矩阵 $C$ 刻画特征内部的多样性与相关性,$\text{Tr}$ 项衡量两个分布的形状差异。
    Tr(Cr+Cf−2(CrCf)1/2)\displaystyle \text{Tr}\left( C_r + C_f - 2\left( C_r C_f \right)^{1/2} \right)

代表模型

电影史上有《阿凡达》这样的划时代作品,视频生成的编年史里也有几部“里程碑大片”。它们未必完美,但每一步都点亮了技术树上的一根枝丫。沿着时间轴看,就能摸清技术演进最真实的脉络。

2016 年的 VideoGAN 是“第一部 AI 微电影”,虽然只有 16×16 的模糊影像,却首次证明对抗方式能生成带时间维度的内容。2022 年前后的视频扩散模型(如 VideoFusion、Imagen Video)让“文本生视频”第一次有了实用价值,画质和时长都碾压前代。而 2024 年,Sora 用“时空 patch + 扩散 Transformer”的组合拳,把视频生成带入“分钟级、1080p、镜头语言接近实拍”的新纪元。

几乎同一时间,可灵、Pika、Runway 等产品落地,把实验室技术变成了人人可用的创作工具。Sora 之所以能如此“听话”,离不开一个关键技巧——分类器无关引导(CFG):采样时同时计算“有文本条件的预测”和“无文本条件的预测”,再用一个系数放大两者的差异,让生成结果更严格地遵循提示词。

每一部里程碑影片都站在前人的片场上:Sora 继承了 VAE 的压缩、扩散的去噪、Transformer 的全局建模,再加一记时空 patch 的妙手。三部大片看罢,不妨望向片场尽头——那里正在筹备未来的“长片巨制”。

ϵ~θ(xt,t,c)=ϵθ(xt,t)+w(ϵθ(xt,t,c)−ϵθ(xt,t))\displaystyle \tilde{\epsilon}_\theta(x_t, t, c) = \epsilon_\theta(x_t, t) + w \left( \epsilon_\theta(x_t, t, c) - \epsilon_\theta(x_t, t) \right)
把“有提示词的噪声预测”和“没提示词的噪声预测”相减,得到提示词带来的“方向感”,再用权重 $w$ 放大它。$w$ 越大,生成越贴近提示词,但过大可能失真。
  1. 无条件预测$\epsilon_\theta(x_t, t)$ 是不看提示词时的噪声预测,代表模型“无人指挥”的惯性生成。
    ϵθ(xt,t)\displaystyle \epsilon_\theta(x_t, t)
  2. 条件预测$\epsilon_\theta(x_t, t, c)$ 是输入文本条件 $c$ 后的噪声预测,代表“被提示词牵引”的生成。
    ϵθ(xt,t,c)\displaystyle \epsilon_\theta(x_t, t, c)
  3. 方向放大两者之差就是条件带来的修改方向,乘上引导权重 $w$ 后叠加到无条件结果上,得到最终的预测噪声。
    w(ϵθ(xt,t,c)−ϵθ(xt,t))\displaystyle w \left( \epsilon_\theta(x_t, t, c) - \epsilon_\theta(x_t, t) \right)

未来趋势

如果视频生成是一位导演,他正从“拍短片”走向“拍长片、拍大片、甚至实时直播”。未来的关键词可以浓缩成四个:更高分辨率、更长时长、更多模态、更快速度。这四股力量正在把视频生成从“实验室玩具”推向“基础设施级工具”。

技术上,4K 甚至 8K 输出、分钟级到小时级的连贯叙事、文本加图像加音频加动作的多模态联合控制,以及交互式实时生成,都在被逐一攻破。最深刻的变化是“世界模型”概念的兴起——视频生成不再满足于像素层面的以假乱真,而要学习物理规律(重力、遮挡、光影),成为对真实世界的模拟器。

产业上,视频生成正在与 3D 建模、语音合成、数字人结合,形成“全能内容工厂”。个人创作者将获得过去只有好莱坞才有的生产力;成本下降后,AI 生成的视频会渗透进广告、教育、游戏、影视预演的每一个环节,改变内容生产的底层逻辑。

从手翻画匠到全能导演,视频生成的进化远未结束。三条技术路线最终合流,指向同一个雄心:让机器理解并创造“动态的世界”。这条路的下一个里程碑,可能就出现在你我的镜头前。

pθ(x1:T∣ctext,cimg,caudio)=∏t=1Tpθ(xt∣x<t,ctext,cimg,caudio)\displaystyle p_\theta(x_{1:T} \mid c_{\text{text}}, c_{\text{img}}, c_{\text{audio}}) = \prod_{t=1}^{T} p_\theta(x_t \mid x_{<t}, c_{\text{text}}, c_{\text{img}}, c_{\text{audio}})
未来视频生成的总公式:在多模态条件(文本、图像、音频)的约束下,逐帧生成连贯视频。条件越丰富,生成的视频就越“贴题”。
  1. 多模态条件$c_{\text{text}}$、$c_{\text{img}}$、$c_{\text{audio}}$ 分别代表文本、图像、音频等控制信号,共同构成生成指令。
    c=(ctext,cimg,caudio)\displaystyle c = (c_{\text{text}}, c_{\text{img}}, c_{\text{audio}})
  2. 条件逐帧生成每一帧都在历史帧与多模态条件的共同约束下生成,让画面“有来处、有去处”。
    pθ(xt∣x<t,c)\displaystyle p_\theta(x_t \mid x_{<t}, c)
  3. 整体概率整段视频的联合概率是各帧条件概率的连乘,条件越充分,连乘就越“有方向”。
    ∏t=1Tpθ(xt∣x<t,c)\displaystyle \prod_{t=1}^{T} p_\theta(x_t \mid x_{<t}, c)

AI 应用场景

短视频与广告素材批量生成

阶段:内容创作 / AIGC 生产

解决的问题:传统广告片需要实拍、演员、场地与后期,单条成本高、周期长。视频生成模型(如可灵、Pika)用一句提示词即可产出多版不同创意的视频素材,让“多快好省地出片”成为可能。

具体案例:某电商品牌用可灵生成 20 个产品展示短片,把原本需要 3 天的棚拍压缩到 2 小时,并且可以一键换背景、换运镜,快速 A/B 测试素材效果。

影视预演与分镜预览

阶段:前期视觉预演(Previs)

解决的问题:导演在剧本阶段希望快速看到分镜的动态效果,传统方式是画分镜图或搭建三维粗模,耗时耗力。用 text-to-video 生成动态预演,可以在几分钟内验证镜头调度与叙事节奏。

具体案例:某动画团队用 Sora 把剧本关键场景生成动态草稿,导演据此调整机位和剪辑节奏,再交给原画部门精修,整体预演周期缩短约 70%。

游戏与虚拟世界资产生成

阶段:资产生产 / 程序化内容

解决的问题:开放世界游戏需要大量环境动画(河流、云层、火焰),手工制作成本极高。视频扩散模型可以生成无缝循环的背景动画和粒子特效,显著降低美术产能压力。

具体案例:某游戏工作室用视频扩散模型生成河流与云层的循环动画,再作为材质贴图导入引擎,替代原本逐帧绘制的工作,节省约 40% 的美术工时。

Python 演示

python52 行
"""视频扩散最小演示: 加噪 -> 预测噪声 -> 去噪还原"""import numpy as np  def make_frames(T=8, H=16, W=16):    """合成一段运动方块视频, 模拟短视频帧序列"""    frames = np.zeros((T, H, W), dtype=np.float32)    for t in range(T):        c = 2 + int(t / T * (W - 4))        frames[t, 6:10, c:c + 4] = 1.0    return frames  def forward_diffusion(x0, t, alpha_bar):    """前向加噪: 按 alpha_bar[t] 混合原始画面与高斯噪声"""    noise = np.random.randn(*x0.shape).astype(np.float32)    sqrt_a = np.sqrt(alpha_bar[t])    sqrt_1a = np.sqrt(1 - alpha_bar[t])    return sqrt_a * x0 + sqrt_1a * noise, noise  def denoise_step(xt, t, alpha_bar, noise_pred):    """反向去噪一步: 用预测噪声反推原始画面并裁剪到合法范围"""    sqrt_a = np.sqrt(alpha_bar[t])    sqrt_1a = np.sqrt(1 - alpha_bar[t])    x0_hat = (xt - sqrt_1a * noise_pred) / sqrt_a    return np.clip(x0_hat, 0.0, 1.0)  def psnr(a, b):    """峰值信噪比, 数值越高代表还原越好"""    mse = np.mean((a - b) ** 2) + 1e-8    return 10 * np.log10(1.0 / mse)  def main():    n_steps = 30    alpha_bar = np.linspace(1.0, 0.01, n_steps)    video = make_frames()     xt, true_noise = forward_diffusion(video, 15, alpha_bar)     x0_perfect = denoise_step(xt, 15, alpha_bar, true_noise)    x0_poor = denoise_step(xt, 15, alpha_bar, true_noise * 0.5)     print("加噪后 PSNR  : %.1f dB" % psnr(video, xt))    print("完美预测 PSNR: %.1f dB" % psnr(video, x0_perfect))    print("残缺预测 PSNR: %.1f dB" % psnr(video, x0_poor))  if __name__ == "__main__":    main()
目的:用 numpy 模拟视频扩散模型的核心机制——前向加噪、噪声预测、反向去噪,直观地展示“噪声预测得越准,还原出的视频越清晰”。
  1. alpha_bar = np.linspace(1.0, 0.01, n_steps)预先生成 30 个噪声比例系数,模拟从“几乎无噪声”到“几乎全噪声”的退化过程
  2. noise = np.random.randn(*x0.shape).astype(np.float32)生成与视频等形状的高斯噪声,这就是“泼上去的泥浆”
  3. sqrt_a * x0 + sqrt_1a * noise前向加噪公式,按比例混合原始画面与噪声,对应扩散模型的加噪过程
  4. x0_perfect = denoise_step(xt, 15, alpha_bar, true_noise)用真实噪声去噪,模拟一个“完美模型”的还原效果
  5. x0_poor = denoise_step(xt, 15, alpha_bar, true_noise * 0.5)只猜对一半噪声,模拟“残缺模型”,还原效果明显变差
  6. return np.clip(x0_hat, 0.0, 1.0)把画面像素裁剪回 [0, 1] 区间,确保物理合法

常见误区

误区很多人觉得视频就是图片的快速播放,所以视频生成就是把每一帧当作独立图片分别生成,最后再拼接播放即可。看起来很有道理,实际一跑就露馅。

正解视频生成的核心难点恰恰是时序一致性——帧与帧之间的关联。如果每帧独立生成,就像让 100 位互不认识的画师各画一页动画,画出来的必然是“幻灯片”而不是“动画”。正确做法是共享潜空间、使用时序注意力、加入光流约束,让每一帧都“心里有数”地参考前面的帧。Sora 的时空 patch 正是为了让模型在全局理解帧间关系而设计的。

为何常见:从观感上,视频确实等于“连续播放的图片”,初学者很容易把时间维度上的强相关性忽略掉。

误区看到扩散模型横扫视频生成榜单,就觉得 GAN 是过气技术,毫无价值,甚至应该被彻底丢弃。

正解GAN 的对抗训练思想至今仍活跃在图像翻译、超分辨率、数据增强等方向;更重要的是,视频生成最早的可行性恰恰由 VideoGAN 证实。扩散模型也吸收了很多 GAN 时代的工程经验,例如正则化、条件注入和训练稳定性技巧。技术演进不是简单的“删除旧文件”,而是“把旧经验编译进新架构”。

为何常见:媒体喜欢“新王登基”的叙事,让人忽略了技术传承的连续性。

误区以为视频扩散模型就是把视频拆成帧,给每一帧分别做图像扩散去噪,帧与帧之间没有任何特殊处理。

正解视频扩散必须做时空联合建模。模型会扩展时间维度的卷积核、加入时序注意力、用 3D 数据块训练,让同一套参数同时“看”到多个帧。如果只是逐帧独立扩散,生成的视频会像随机图片连播,出现剧烈闪烁。就像雕刻,不能每尊雕像各刻各的,必须当作一个整体来雕。

为何常见:扩散模型的入门课几乎都从图像开始,初学者很自然地把“图像扩散”的直觉平移到视频上,遗漏了时间维度。

误区认为 Sora 是 2024 年石破天惊的横空出世,之前没有任何技术铺垫,仿佛科幻电影里的外星科技。

正解Sora 站在多条技术遗产之上:VAE 压缩像素(传承自自回归路线)、扩散去噪(传承自扩散路线)、Transformer 全局建模(传承自大语言模型)、时空 patch(受 ViT 启发)。它是三代“导演”经验的集大成者,而非无源之水。没有 VideoGAN 的试错、VDM 的奠基,就不会有 Sora 的爆发。

为何常见:新闻报道聚焦“发布时刻”的戏剧性,而技术演进其实是漫长的接力赛。

面试题

Q1. 视频生成的三条主要技术路线是哪三种?

单选题 · easy

  • A.强化学习、监督学习、半监督学习
  • B.自回归生成、对抗生成、扩散生成← 正确答案
  • C.RNN、LSTM、Transformer 网络
  • D.聚类、分类、回归分析方法

答案:B。三条路线对应三种“拍片方式”:自回归像手翻动画匠人逐帧推演,对抗生成像画师与评论家对赌,扩散模型像雕刻家从噪声中凿出画面。RNN、LSTM、Transformer 只是基础网络单元,不是独立的视频生成路线。

Q2. 自回归视频生成的核心策略是什么?

单选题 · easy

  • A.一次性生成所有视频帧
  • B.依据历史帧逐帧预测下一帧← 正确答案
  • C.每帧独立采样互不关联
  • D.用判别器判断真伪画面

答案:B。自回归就是把视频当作“翻页动画”:每一帧都参考之前画好的帧。选项 A 是并行生成策略,C 是忽略时序的错误做法,D 是 GAN 的工作方式。

Q3. GAN 中哪一位扮演“画师”的角色?

单选题 · easy

  • A.判别器(鉴别真伪者)
  • B.生成器(绘制假画面)← 正确答案
  • C.编码器(压缩视频者)
  • D.注意力(关联帧信息)

答案:B。生成器(Generator)负责从随机噪声中画出假视频,对应“画师”;判别器(Discriminator)负责指出真假,对应“评论家”。编码器与注意力是其他模型的结构组件,不构成对抗关系。

Q4. 扩散模型的前向阶段做了什么?

单选题 · mid

  • A.把低清视频升级成高清
  • B.逐步向视频加入高斯噪声← 正确答案
  • C.将视频压缩为离散编码
  • D.把视频按时间倒放一遍

答案:B。前向过程像给雕塑泼泥浆,一步步把画面盖住,直到变成纯噪声。超分、量化、倒放分别是其他任务的操作,不是扩散模型前向过程的定义。

Q5. 下列哪些技术可以改善视频时序一致性?

多选题 · mid

  • A.时序注意力机制建模← 正确答案
  • B.3D 卷积时空联合建模← 正确答案
  • C.每帧独立进行去噪
  • D.光流运动约束← 正确答案

答案:ABD。时序注意力让当前帧“回头看”历史帧,3D 卷积把时间当第三维联合建模,光流约束强制相邻帧运动合理,三者都是保证连贯性的利器。C 恰恰是“各画各的”,会产生闪烁跳变。

Q6. FVD 指标主要衡量什么?

单选题 · mid

  • A.视频文件压缩率的高低
  • B.真实与生成视频特征距离← 正确答案
  • C.生成视频帧率的大小
  • D.训练数据规模的多少

答案:B。FVD 相当于“专业评分板”:分别提取真实视频与生成视频的特征,比较两个高斯分布的距离。数值越小,说明生成视频的“气质”越接近真实视频。码率、帧率、数据量都不是它衡量的对象。

Q7. 扩散模型反向去噪需要用到哪些信息?

多选题 · mid

  • A.被噪声污染的帧序列← 正确答案
  • B.当前所处的时间步← 正确答案
  • C.神经网络预测的噪声← 正确答案
  • D.视频帧的编码码率

答案:ABC。反向去噪的每一步都要输入当前帧 $x_t$ 和时间步 $t$,并使用神经网络预测出的噪声来“揭泥”还原。码率是视频编码层的概念,与扩散去噪过程无关。

Q8. 关于 Sora 的说法正确的有哪些?

多选题 · hard

  • A.使用时空 patch 表示视频← 正确答案
  • B.基于扩散 Transformer 架构← 正确答案
  • C.完全放弃视频压缩编码
  • D.能生成近一分钟长视频← 正确答案

答案:ABD。Sora 把视频切成时空小立方体当“视觉单词”,用扩散 Transformer 建模,并借助 VAE 做像素压缩,能生成数十秒到一分钟的连贯视频。C 错误,Sora 依然依赖 VAE 压缩,只是把处理单元变成了时空 patch。

Q9. 自回归视频生成最大的短板是什么?

单选题 · hard

  • A.画面分辨率提升过快
  • B.误差累积且生成速度慢← 正确答案
  • C.无法接受文本提示条件
  • D.模型参数数量过于庞大

答案:B。逐帧逐 token 滚动生成,一旦某帧画歪,错误会像墨迹扩散一样被后续帧继承放大;串行生成也拖慢了速度。自回归完全可以接收文本条件,参数多也不是它特有的缺点。

Q10. 若把视频生成中的文本条件完全移除,最可能发生什么?

单选题 · extreme

  • A.视频分辨率成倍提高
  • B.内容脱离提示词失控← 正确答案
  • C.生成速度提升且质量不变
  • D.时序一致性自动增强

答案:B。文本条件是生成过程的“方向盘”。在 CFG 公式中,条件预测与无条件预测的差值正是提示词带来的控制力;移除条件后,模型回到“惯性生成”,画面内容与提示词无关且难以控制,分辨率与连贯性并不会因此自动改善。