跳转至

Flowception: Temporally Expansive Flow Matching for Video Generation

会议: CVPR 2026
论文: CVF Open Access
代码: 待确认
领域: 视频生成 / 流匹配
关键词: 流匹配, 视频生成, 非自回归, 变长生成, 帧插入

一句话总结

Flowception 把"连续流匹配去噪"和"离散帧插入"两件事编织进同一条概率路径,让一个非自回归模型在采样过程中既能任意顺序地往序列里插帧、又能同时把已有帧逐步去噪,从而做到变长视频生成,并在 FVD / VBench 上同时超过全序列与自回归两条基线,训练 FLOPs 还省了约 3 倍。

研究背景与动机

领域现状:扩散与流匹配把高保真图像生成迁到视频上,主流分两派。一派是全序列生成(full-sequence),把整段视频当一个大张量、所有帧共享一个全局时间步、用双向注意力一起去噪;另一派是时序自回归(AR),从左到右一帧(或一块帧)接一帧地生成。

现有痛点:全序列模型靠双向注意力能在去噪过程中互相纠错,质量高,但它一次性并行去噪整段序列,帧没去噪完就吐不出来、无法流式输出;而且生成长度固定、注意力开销随帧数平方增长,长视频做不动。AR 模型能流式(生成完一帧就立刻显示、后续帧 attend 前面已生成的帧),但有两个硬伤:一是曝光偏差——训练时用真值帧当上下文、推理时却只能 condition 在模型自己生成的不完美帧上,这种 train-test 不匹配让模型学不会从错误里恢复,小瑕疵会沿帧链逐级放大、视频质量迅速崩坏;二是为了能做 KV cache(不做的话 AR 采样贵到不可接受),AR 往往用因果注意力掩码,又限制了模型表达力。

核心矛盾:全序列「质量高但开销大、定长、不能流式」,AR「能流式但有误差累积、因果注意力受限」——两条路各让你在质量、效率、灵活性之间二选一。

本文目标:要一个框架同时摆平:① 去掉 AR 的误差累积和因果注意力束缚;② 去掉全序列的定长限制;③ 把全序列的计算开销压下来。

切入角度:作者注意到,如果生成时帧不是一次插满、而是逐步插入,那么采样早期序列很短、只有少量帧需要去噪,注意力开销天然就小;而插入位置如果由模型自己决定、不强制左到右,远处帧就能在序列还很短的早期互相协调,既避免误差累积又不必依赖因果掩码。

核心 idea:把连续流匹配(Flow Matching)和离散编辑流(Edit Flow)拼成一个统一模型——学一条交错"插帧"与"去噪"的概率路径,让模型在每个采样步既预测一个去噪用的速度场、又预测一个决定是否插帧的插入率,得到一个变长序列上的耦合 ODE–跳跃过程,支持任意顺序、任意长度的生成。

方法详解

整体框架

Flowception 在"变长帧序列"空间 \(\mathcal{X}=\bigcup_{n=0}^{\infty}\mathbb{R}^{n\times H\times W\times C}\) 上工作:每个序列 \(X\) 配一个逐帧时间向量 \(t\in\bigcup_n[0,1]^n\),也就是每帧带自己的噪声水平(而不是全序列共享一个时间步)。模型在每个位置 \(i\) 输出两样东西:一个插入率 \(\lambda^\theta_i(X,t)\in\mathbb{R}_{\ge 0}\)(预测该位置右侧缺多少帧),一个速度场 \(v^\theta_i(X,t)\in\mathbb{R}^{H\times W\times C}\)(用来去噪已有帧)。

生成时,先采 \(n_{\text{start}}\) 个噪声起始帧(都置 \(t_i=0\)),然后反复做转移步:每步同时(i)按速度场把所有现存帧往前流一点 \(X_i\leftarrow X_i + h\,v^\theta_i\),(ii)按插入率以一定概率在某些帧右侧插入一个全新噪声帧(从单位高斯采样、初始 \(t=0\))。一个全局时间 \(t_g\) 从 0 走到 1 控制"还能不能插帧",当所有帧都到 \(t_i=1\) 就停。这样一段视频就由"先撒下几个远处关键帧、再不断往缝里插帧并去噪"逐渐长出来——而且因为帧只由相对顺序决定、靠开关"主动/被动上下文帧"就能统一支持 I2V、V2V、插帧、T2V、场景补全等多种任务。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["输入<br/>n_start 个噪声起始帧 (t=0)"] --> B["1. 插入-去噪交错转移步<br/>每帧预测速度场 + 插入率"]
    B --> C["2. 泊松插入率与调度器对齐<br/>按 κ(t_g) 决定右侧插入概率"]
    C -->|t_g<1:插入新噪声帧并继续去噪| B
    C -->|所有帧 t_i=1| D["输出<br/>变长视频"]
    E["3. 扩展时间训练对齐<br/>deleted/flow/terminal 状态采样"] -.训练得到模型.-> B
    F["4. 逐帧条件架构与主动/被动上下文<br/>统一 I2V/V2V/插帧/T2V/补全"] -.切换上下文.-> A

关键设计

1. 插入-去噪交错的耦合 ODE–跳跃转移步:让"长出新帧"和"去噪老帧"在同一步里同时发生

这是 Flowception 区别于一切定长流模型的根:传统流匹配在固定形状的张量上跑连续 ODE,序列长度从头到尾不变;而这里序列长度本身是会变的。作者用一个插入操作 \(\mathrm{ins}(X,i,\varepsilon)=(X_1,\dots,X_i,\varepsilon,X_{i+1},\dots,X_n)\) 在位置 \(i\) 后塞进一个 0-SNR 的噪声帧。每个转移步在所有位置同时做两件事:先做流步 \(X_i = X_i + h\,v^\theta_i(X,t)\) 把现存帧去噪一点;再以概率 \(h\,\frac{\dot\kappa(t_g)}{1-\kappa(t_g)}\lambda^\theta_i\) 执行一次插入 \(X=\mathrm{ins}(X,i,\varepsilon),\ t=\mathrm{ins}(t,i,0)\)。这就构成一个连续流(ODE)与离散插入(jump)耦合的过程:新帧一被插进来,就在"其它已部分去噪的帧"的上下文里被一起继续去噪,于是后插入的帧时间值天然滞后(\(t_i\le t_g\))。它的好处是后插的帧从一开始就能看到周围帧的内容、互相协调,从根上避开了 AR"先把前帧定死、再去噪后帧"导致的误差累积。

2. 泊松插入率与调度器对齐:用一个可学计数头决定"在哪、插几帧",并保证插入节奏和可见帧分布一致

模型怎么知道某个位置该不该插帧、插多少?作者让插入率头 \(\lambda_i\) 直接预测该位置右侧缺失的帧数,并按泊松分布的负对数似然来训练(沿用 OneFlow 的思路):记 \(k_i\) 为位置 \(i\)\(i+1\) 之间真实缺失的帧数,则 \(\mathcal{L}_{\text{ins}}=\sum_{i}\lambda^\theta_i(X,t)-k_i\log\lambda^\theta_i(X,t)\)。采样时再用一个单调调度器 \(\kappa(t_g)\)\(\kappa(0)=0,\kappa(1)=1\),主用线性 \(\kappa(t)=t\))规定"全局时间 \(t_g\) 时刻每个非起始帧已经出现的概率为 \(\kappa(t_g)\)"。转移步里那个插入概率系数 \(\frac{\dot\kappa(t_g)}{1-\kappa(t_g)}\) 正是为了把插入速率校准到这个调度分布上——既由数据驱动决定"插在哪",又由调度器统一控制"整体插入快慢"。与 OneFlow 一致,插入率不显式 condition 在时间上,\(t_g\) 只在采样时跟踪、不喂进模型;定步长推理下最多迭代次数约为 \(t_g\) 走到 1 所需步数的两倍。

3. 扩展时间训练对齐:用 deleted/flow/terminal 三态采样消除训练-生成的分布失配

生成过程会诱导出一个很特殊的分布:同一时刻不同帧处在不同时间值、有的帧甚至还没被插入。训练若不复现这个分布,就会出现 train-test mismatch。作者的解法是引入扩展时间 \(\tau\)(可超出 \([0,1]\)),并定义裁剪 \(t=\mathrm{clip}(\tau)=\max\{0,\min\{1,\tau\}\}\)。一方面把全局时间扩成 \(\tau_g\in[0,2]\)(因为 \(t_g\) 到 1 后不再插帧、但已有帧还要继续去噪到 1,需要多出来的预算),\(t_g=\mathrm{clip}(\tau_g)\);另一方面,线性调度下新帧在 \(t_g\in[0,1]\) 上均匀插入,于是每帧的时间滞后 \(u_i=\tau_g-\tau_i\sim\mathrm{Unif}(0,1)\),得 \(\tau_i=\tau_g-u_i\in[-1,2]\)。由此每帧落入三种状态之一:\(\tau_i<0\)deleted(还没被插入)、\(0\le\tau_i<1\)flow(在去噪)、\(\tau_i\ge 1\)terminal(冻结完成)。训练时只需采 \(\tau_g\sim p(\tau_g)\)、令 \(\tau_i=\tau_g-u_i\),取出可见帧 \(X^{\text{visible}}_1=(X_i\mid\tau_i>0)\),按 \(X=tX^{\text{visible}}_1+(1-t)X_0\)\(X_0\sim\mathcal{N}(0,I)\))构造带噪序列,速度头用标准流匹配损失 \(\mathcal{L}_{\text{vel}}=\lVert v^\theta(X,t)-(X^{\text{visible}}_1-X_0)\rVert^2\) 训练。这套扩展时间机制让训练采到的"谁可见、谁在什么噪声水平"分布与生成时严格对齐,是整个框架能 work 的关键保证。

4. 逐帧条件 DiT 架构与主动/被动上下文:一个模型靠相对顺序统一多任务

要让同一帧序列里各帧带不同时间步,作者把 DiT 的 AdaLN 调制改成逐帧操作;为区分噪声帧和条件帧,把输入通道翻倍——前 \(C\) 通道放噪声帧、后一组放输入/条件帧(或零填充)。插入率头则给每帧 token 拼一个可学 token,过简单 MLP 加指数激活得到非负率。基线模型是 38 个注意力块、隐维 1536、24 个头、约 2.1B 参数,位置编码用 VideoROPE,帧间(及可选拼接的文本 token,MMDiT 风格)走全双向注意力。因为某时刻的帧只由相对顺序指定,作者把上下文帧分成主动(可在其右侧诱导插入)和被动(不触发插入)两类:单张主动帧 → I2V;给一串有序条件帧、让模型自由在中间插帧 → 帧插值(且无需指定每两帧间要插几帧);不同主动/被动组合 → V2V、T2V、场景补全。一套权重、靠切换上下文就覆盖全部任务,不必为每个任务单独训练。

损失函数 / 训练策略

总损失为插入损失与速度损失之和:\(\mathcal{L}_{\text{ins}}\)(泊松计数 NLL,监督 \(\lambda_i\))+ \(\mathcal{L}_{\text{vel}}\)(标准流匹配 L2,监督速度场 \(v_i\))。训练时按扩展时间 \(\tau_g\) 采样构造带噪变长序列(见关键设计 3)。效率上:线性调度下 \(\mathbb{E}_{p(\tau_g)}[\kappa(\tau_g)^2]=\int_0^1\tau_g^2\,d\tau_g=1/3\),故训练期注意力 FLOPs 约为全序列流匹配的 \(1/3\);采样时最晚的流更新发生在 \(\tau_g=2\),最多用两倍流迭代,即约 \(2/3\) 的全序列 FLOP(实测墙钟约快 30%,1.5×)。T2V 实验中作者在开源 LTX-2b(0.9.5)上做完架构改动后再微调。

实验关键数据

数据集用了 Tai-Chi-HD、RealEstate10K(窄域)与 Kinetics-600(类结构),默认 256 分辨率、最多生成 145 帧 @16FPS;用 LTX autoencoder(空间下采样 32、时间下采样 8,并改 decoder 传播帧有效性 mask 以支持变长解码)。指标为 FVD(对 5k 训练子集算)与 VBench 若干项。对比两条基线:全序列、逐帧自回归(含因果/非因果两种注意力)。

主实验:Image-to-Video(256 分辨率,145 帧)

数据集 方法 Imaging↑ Background↑ Aesthetic↑ Subject↑ Dynamic↑ FVD↓
Kinetics-600 Full Seq. 37.09 94.75 39.42 92.46 44.35 204.65
Kinetics-600 Autoreg. 38.77 92.69 38.17 85.82 54.66 201.34
Kinetics-600 Flowception 41.92 96.96 42.05 94.74 47.07 164.73
Tai-Chi-HD Full Seq. 47.48 94.42 54.93 92.18 18.61 27.30
Tai-Chi-HD Autoreg. 47.15 95.93 54.98 93.41 21.23 25.30
Tai-Chi-HD Flowception 48.42 95.93 54.96 94.43 20.02 25.21
RealEstate10K Full Seq. 50.11 93.48 44.53 85.85 81.64 26.17
RealEstate10K Autoreg. 48.55 93.84 44.48 87.29 72.60 47.48
RealEstate10K Flowception 51.18 96.93 48.09 87.02 78.59 21.80

Flowception 在三个数据集上 FVD 全面领先(Kinetics-600 从 ~201–205 降到 164.73;RealEstate10K 从 26–47 降到 21.80),VBench 多数项最优或次优。T2V 上(微调 LTX-2b,CFG=7.0、50 NFEs)Flowception 把 Imaging 51.37 / Aesthetic 49.56 都拉到高于原版 LTX(49.22 / 48.25)与全序列微调版(47.96 / 47.28),仅 Dynamic 略降;墙钟比全序列稳定快约 30%。

消融一:插入顺序方案(RealEstate10K)

插入方式 FVD↓ Motion↑ Dynamic↑
Random(随机) 25.03 99.09 70.68
Hierarchical(层次二分) 23.94 99.10 71.20
Left-to-right(左到右) 23.61 99.03 73.04
Flowception 学习插入率 21.80 99.30 78.59

FVD 随插入策略从随机 → 层次 → 左到右 → 数据驱动逐级变好,证明"让模型学在哪插帧"确实带来增益。一个值得注意的对照:这里左到右版 FVD 23.61 远好于表 4 里 AR 基线的 47.48/45.13——作者推测原因是 AR 基线"前帧完全去噪并定死后才去噪下一帧",而 Flowception 即便左到右插帧,新帧也是在前帧尚未完全去噪时就开始去噪(更接近全序列基线 26.17 的行为)。

消融二:AR 注意力模式对比(RealEstate10K)

指标 AR 因果 AR 非因果 Flowception
FVD↓ 47.48 45.13 21.80
Imaging↑ 48.55 48.70 51.18
Background↑ 93.84 93.88 96.93
Aesthetic↑ 44.48 45.28 48.09
Subject↑ 87.29 87.46 87.02
Dynamic↑ 72.60 73.52 78.59

非因果 AR 全面略优于因果 AR(佐证因果掩码限制表达力),但二者 FVD 仍在 45+ 量级;Flowception 把 FVD 砍到 21.80,除 Subject consistency 外各项都更优。

关键发现

  • 学习插入位置最关键:消融一显示数据驱动插入比任何固定顺序都好;且 Flowception 倾向"先插远处帧定运动、后插近帧做平滑插值",呈现 emergent 的 coarse-to-fine 生成顺序。
  • 早期短序列利于局部注意力:因为远处帧在序列还短时就已互相 attend,Flowception 比全序列更扛得住把注意力限制到 ±K 帧的局部窗口(图 8:窗口变小时 Flowception 的 FVD 退化远小于全序列)。
  • 误差累积来自"定死前帧"而非"左到右"本身:左到右插入只要允许前帧未完全去噪就一起协同,FVD 仍能很低,说明 AR 退化的根因是"committed 前帧"。

亮点与洞察

  • 把离散插入和连续去噪统一成一条概率路径:用耦合 ODE–跳跃过程描述变长生成,理论上自洽(流匹配 + 编辑流),工程上只需在 DiT 上加一个插入率头,改动极小却换来变长 + 任意顺序生成能力。
  • 扩展时间 \(\tau\in[-1,2]\) 的 deleted/flow/terminal 三态设计很巧:它用一个简单的"全局时间减均匀滞后"采样,就精确复现了生成时"各帧处于不同噪声水平、部分帧尚未出现"的复杂分布,把训练-生成对齐这个难点化简成一行采样公式,可迁移到其它需要变长/逐 token 生成的扩散框架。
  • 效率增益是结构带来的、不是 trick:早期序列短 → 注意力 FLOPs 期望降到 \(1/3\)\(\int_0^1\tau^2 d\tau\)),这是"逐步插帧"调度的数学副产物,干净漂亮。
  • 一套权重多任务:靠主动/被动上下文帧的相对顺序就能覆盖 I2V/V2V/插帧/T2V/补全,且插帧无需指定缝里要插几帧——比需要显式 mask 指定长度的方法更灵活。

局限与展望

  • 训练迭代翻倍:作者承认,在部分序列上训练虽换来这些 emergent 行为,但为保证所有帧完全去噪,扩展时间要走到 \(\tau_g=2\),迭代次数大约翻倍;探索更高效的交错调度是明确的未来方向。
  • 完整推导藏在补充材料:正文对插入概率系数 \(\frac{\dot\kappa}{1-\kappa}\)、一般调度器下的滞后分布、FLOPs 细算都说"详见 supplementary",正文读者只能拿到直觉版,部分公式细节 ⚠️ 以原文(含补充材料)为准。
  • 多为窄域/中等分辨率验证:主实验在 Tai-Chi-HD / RealEstate10K / Kinetics-600、256 分辨率上做;通用域 2M 视频的大模型结果放在补充材料,正文未给定量对比,真实大规模长视频上的表现还需更多公开数据支撑。
  • 指标偏自动:评测以 FVD + VBench 为主,缺人评/长程一致性的系统量化,对"长期 drift 改善"的论证更多靠定性图。

相关工作与启发

  • vs 全序列流/扩散(如把视频当大张量一起去噪): 全序列靠双向注意力质量高但定长、注意力平方开销大、不能流式;Flowception 同样保留全双向注意力与协同纠错能力,但靠逐步插帧把训练 FLOPs 降到约 \(1/3\)、采样约 \(2/3\),且天然变长。
  • vs 自回归(因果/非因果逐帧): AR 能流式但有曝光偏差导致的误差累积,且为 KV cache 常用因果掩码限制表达力;Flowception 不锁定前帧、允许远处帧早期协同,FVD 从 45+ 降到 21.80,从根上规避误差累积。
  • vs "多帧同时去噪但严格左到右"的 AR 变体(later 帧更噪): 这类方法虽同时去噪多帧,但维持严格左到右插入顺序,无法在去噪早期让远处帧协调;Flowception 允许任意顺序插入,恰好补上这点。
  • vs 关键帧 + 插值的分解方法(MovieDreamer / ART-V): 它们先(自回归)生关键帧再用 I2V 补帧、并靠 CLIP/掩码扩散缓解 drift;Flowception 把关键帧与插值统一进同一条插入-去噪路径,无需显式两段式、也无需指定缝隙长度。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 把连续流匹配与离散编辑流统一成耦合 ODE–跳跃过程做变长视频生成,思路新且理论自洽
  • 实验充分度: ⭐⭐⭐⭐ 三数据集 + I2V/T2V/插帧 + 插入顺序/注意力/局部窗口多组消融充分,但缺人评、通用域定量与更高分辨率
  • 写作质量: ⭐⭐⭐⭐ 动机-方法-效率链条清晰,配图直观;但关键推导大量外推到补充材料,正文稍欠自足
  • 价值: ⭐⭐⭐⭐⭐ 为长视频/灵活编辑提供了兼顾质量、效率、变长与多任务的统一替代范式,潜在影响大