FreeSwim: Revisiting Sliding-Window Attention Mechanisms for Training-Free Ultra-High-Resolution Video Generation¶
会议: ECCV2026
论文: ECCV 原文
领域: 视频生成
关键词: 免训练分辨率外推、向内滑窗注意力、交叉注意力覆盖、粗到细生成、特征缓存
一句话总结¶
FreeSwim 将预训练视频 DiT 的高分辨率细化拆成负责细节的向内滑窗分支和提供全局语义的全注意力分支,通过交叉注意力覆盖与跨步缓存,在不训练新参数的条件下取得 Wan2.1-1.3B 的 1080P VBench 总分 73.7%。
研究背景与动机¶
视频扩散 Transformer(DiT)把空间和时间位置一起作为 token 进行交互,扩大画面不仅增加像素,也显著增加注意力需要处理的关系数量。 Wan2.1-1.3B 只在 832 × 480 上训练,直接让它生成 1920 × 1088 视频,遇到的不只是算力不足,还有模型未见过的感受野与位置关系。 原文图3显示,直接高分辨率推理会出现结构混乱;加入分辨率相关的注意力缩放,也不能充分恢复布局。 图像生成中有效的位置编码调整、采样修改和低分辨率引导,迁移到视频后还要面对三维依赖关系,因此不能假定分辨率外推规律原样成立。
先生成低分辨率视频,再上采样、加噪和去噪,能够把大体构图保留下来,却仍无法保证局部纹理自然。 作者观察到,全注意力的高分辨率结果布局较好但细节贫乏,局部窗口则能改善细节,却容易在不同区域重复生成相似内容。 这说明“更多上下文一定更好”并不适用于未经适配的分辨率外推:全局交互扩大了模型的分布外输入,过度局部化又切断了对象之间的协调。 另一个容易忽略的问题是边界 token;如果它们的窗口被裁短,即使图像中心保持训练尺度,边缘仍处于另一种注意力分布。
FreeSwim 因而不尝试重新训练一个高分辨率模型,而是重新安排现有模型在推理时的交互范围和语义传递位置。 其论据来自注意力图对比和生成消融,并非对“训练尺度感受野最优”的理论证明。 全局信息仍然必需,但不必让负责纹理生成的分支在每层自行承担全局自注意力。 核心 idea:让局部自注意力保持预训练时的空间感受野,再把全局分支的文本交叉注意力输出注入局部分支,以分工代替直接扩大所有 token 的交互范围。
方法详解¶
整体框架¶
输入是文本提示、一个现成的视频 DiT 和目标输出分辨率,输出是经过高分辨率再去噪的视频。 第一阶段完全使用模型原生的文本到视频流程,得到低分辨率视频,负责确定主要对象、构图和运动。 第二阶段在像素空间上采样,再经过 VAE 编码并加入高斯噪声,从这一高分辨率潜变量开始细化,而不是直接放大噪声后从零生成。 加噪使细节可以重新生成,同时让粗视频提供结构约束;噪声强度决定保留原结果与重新生成之间的取舍。
高分辨率阶段包含向内滑窗注意力、交叉注意力覆盖和全分支特征缓存三个设计。 滑窗分支承担最终视频的细节生成,全分支承担语义指导,两者在当前去噪步使用相同输入潜变量。 全分支不是另一条独立生成后再混合的视频轨迹,也不是低分辨率教师;它看到的是当前高分辨率潜变量的全局上下文。 缓存控制全分支何时真正重算,不改变局部分支逐步去噪的职责。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["文本与预训练 DiT"] --> B["原生视频生成<br/>上采样、VAE 编码、加噪"]
B --> C["向内滑窗注意力"]
B --> D["全注意力分支"]
C --> E["交叉注意力覆盖"]
D --> E
E --> F["全分支特征缓存"]
F -->|后续步复用语义特征| E
E --> G["逐步去噪与解码<br/>高分辨率视频"]
关键设计¶
1. 向内滑窗注意力:边界位置也保持完整的训练尺度窗口
作者先区分“token 总数相同”和“每个维度的尺度相同”。 用减少视频帧数来抵消空间尺寸增加,虽然能控制总 token 数,却没有恢复原来的时空关系,图3(e)显示收益有限。 因此,滑窗不是简单删去一些任意位置的 key/value,而是为每个 query 指定与原生空间分辨率对应的局部邻域。 模型仍处理视频的时间维度,本文不是把视频拆成独立图像,也没有通过缩短输出视频来实现高分辨率。 在高分辨率滑窗分支中,所有自注意力层都用该局部机制替代原本的三维全注意力。 这样,各位置生成细节时面对的空间上下文更接近训练阶段,而不是突然面对完整的超大画面。
若居中的窗口越过左边界,就把整个窗口向右移;越过右边界则向左移,上下边界同理。 关键是移动窗口而不是裁掉越界部分,使角落和边缘 query 也能访问完整数量的邻域 key/value。 靠近边界时,query 不再位于窗口中心,这是保持窗口尺寸所付出的几何变化。 与先补零再当作真实内容参与交互相比,向内移动使用的仍是视频内的有效上下文。 实现使用 PyTorch FlexAttention 编译稀疏掩码,表3中普通滑窗与向内滑窗耗时分别为 32 min 29 s 和 32 min 30 s。 缓存中的式(1)掩码条件及排版损坏,因此这里依据第3.2节文字解释边界操作,不重造作者的精确索引公式。
2. 交叉注意力覆盖:把全局语义注入保留细节的分支
固定局部感受野能使纹理更自然,但远处的窗口不知道另一区域已经生成了什么,容易各自重复解释同一文本对象。 全注意力分支恰好具有相反特点:能协调全局布局,却在尺度外推时损失局部细节。 FreeSwim 在每个需要全分支的去噪步复制当前潜变量,沿 batch 维组织两条分支,分别使用全注意力和向内滑窗自注意力。 分支交互发生在潜变量对文本的交叉注意力输出处,而不是平均最终 RGB 帧或直接合并两个自注意力矩阵。 尽管两分支都读取相同提示,交叉注意力的 query 已由各自的自注意力更新,因此全分支输出包含全局上下文对文本语义的解释。 这使得全局信息能在语义入口指导局部分支,同时不取消局部自注意力产生细节的机制。
按原文式(2),用下式插值两个分支的交叉注意力输出;上标表示分支,\(\lambda\) 表示全分支指导强度。
默认 \(\lambda=1\),也就是完全覆盖,而不是保留一个小比例的全局修正。 被覆盖的是交叉注意力输出,并非滑窗分支的整个隐藏状态,因而不等于把滑窗分支退化为全分支。 原文图7中,中间强度可以解决某个场景的重复,却不能同时处理所有展示场景,作者据此选择完全覆盖作为稳健默认。 这里的结论是减少重复并保持细节,不是保证任意提示都不会重复;该图本身也说明场景之间存在差异。 表4的 \(\lambda=0\) 行与表3纯滑窗配置数值不一致,不能把其所有行直接当成无歧义的单变量因果比较。
3. 全分支特征缓存:减少语义指导的重算频率
双分支的代价是额外执行昂贵的高分辨率全注意力,若每一步都运行,局部稀疏化节省的时间可能被抵消。 FreeSwim 缓存的是全分支各交叉注意力层的输出特征,而不是只缓存文本编码,也不是仅保存最终视频潜变量。 每隔 \(P\) 步刷新一次这些指导特征,中间步骤继续执行滑窗分支,并用缓存输出完成覆盖。 复用成立的经验前提是相邻去噪步所需的语义指导变化不大;这并非精确等价于逐步重算。 因此,加大 \(P\) 会降低全分支调用频率,但可能让指导变旧,质量是否保持必须由实验判断。 论文默认 \(P=2\),同时评估了 \(P=5\) 和 \(P=8\),没有把最大间隔作为统一最优设置。
对于无分类器引导(CFG),作者进一步取消无条件分支上的全注意力指导,只保留其向内滑窗计算。 文本条件分支仍接收全局语义覆盖;取消 CFG-Full 不等于取消 CFG,也不等于跳过无条件预测。 缓存因此减少的是辅助全局分支的工作,不要求改动预训练参数或重新学习一个缓存预测器。 存储特征会引入额外显存需求,作者使用 CPU 卸载控制显存,不能把缓存理解为天然同时省时间和显存。 原文式(3)的时间表达式和符号说明在文本提取中损坏,这里只复述调用逻辑,耗时直接采用表3。 这种设计优先复用负责结构的指导、保留负责细节的逐步更新,是方法中质量与速度能够分别调节的关键。
一个完整示例¶
以 Wan2.1-1.3B 从原生 832 × 480 生成 1920 × 1088 视频为例,以下是按原文流程组织的说明性示例,而非新增实验。 模型先根据提示生成原生视频,主要对象及其运动由这一步确定。 将每帧在像素空间放大至目标尺寸,经 VAE 编码后加噪,得到细化阶段的共同输入潜变量。 在刷新步,全分支查看完整的当前视频上下文,滑窗分支则按原生尺度读取每个 query 周围的空间区域。 当 query 位于画面左上角时,其窗口向右下方移动,避免有效邻域因双侧边界而缩小。 每层交叉注意力采用 \(\lambda=1\),把全分支语义输出交给滑窗分支,再由后续网络运算得到该步预测。
若使用 \(P=2\),下一个非刷新步不必重跑全分支,而是沿用已有各层指导特征。 此时滑窗分支读取的仍是新的当前潜变量,所以纹理和运动并没有被冻结。 再到刷新步,语义指导根据更新后的潜变量重新计算,并覆盖缓存中的旧特征。 无条件 CFG 路径只使用滑窗,不额外构建一套全注意力指导。 经过后续去噪与 VAE 解码,得到高分辨率视频;这些步骤没有把独立局部视频块拼接成最终结果。 “隔步复用指导”和“每步更新生成状态”的区别,是理解该加速策略而不误认为跳过采样步骤的关键。
损失函数 / 训练策略¶
本方法没有新增训练目标、数据集适配或参数更新,所有设计作用在预训练模型的推理流程。 高分辨率细化借鉴 SDEdit 的上采样后加噪再去噪思想;它是生成流程,不是训练损失。 本文缓存正文未给出可完整复现的所有噪声强度、采样步数及硬件组合,不能据此填入通用默认值。 已明确的核心设置是完全覆盖 \(\lambda=1\)、默认刷新间隔 \(P=2\),以及 FlexAttention 实现的向内滑窗。 模型原生分辨率不同,窗口尺度也应随预训练设置确定,不能把 Wan2.1-1.3B 的窗口机械套给所有骨干。
实验关键数据¶
主实验¶
原文第4.1节从 VBench 提示集合随机抽取 60 条提示,每条使用 5 个随机种子,因此每种方法每个评测分辨率生成 300 个视频。 1080P 的实际尺寸为 1920 × 1088;正文另评测 3380 × 1920,原文将其称为 3K,这里保留该口径。 下表节选原文表1(第9页)的 Wan2.1-1.3B 组,所有指标越高越好,单位为百分比。 成像质量衡量噪声、模糊等视觉退化,美学质量涉及布局与色彩;整体一致性反映语义与风格对齐,不是总分的同义词。
| 方法 / 配置 | 美学质量 | 成像质量 | 整体一致性 | 总分 |
|---|---|---|---|---|
| Real-ESRGAN | 55.9 | 63.9 | 24.8 | 72.3 |
| Upscale-A-Video | 55.6 | 62.9 | 22.9 | 71.1 |
| I-Max | 59.6 | 61.1 | 23.0 | 71.5 |
| HiFlow | 54.8 | 54.4 | 24.7 | 69.4 |
| CineScale,无 LoRA | 45.9 | 40.9 | 16.8 | 65.5 |
| CineScale,有 LoRA | 56.7 | 60.7 | 23.5 | 71.5 |
| FreeSwim,无缓存 | 57.9 | 63.4 | 25.1 | 72.7 |
| FreeSwim,缓存 \(P=2\) | 61.2 | 65.3 | 24.9 | 73.7 |
| FreeSwim,缓存 \(P=5\) | 56.2 | 62.6 | 25.2 | 72.3 |
| FreeSwim,缓存 \(P=8\) | 54.3 | 61.0 | 23.6 | 71.7 |
FreeSwim 的 \(P=2\) 总分比使用高分辨率 LoRA 的 CineScale 高 2.2 个百分点,但不意味着所有子指标都第一。 例如 \(P=5\) 的整体一致性为 25.2,高于 \(P=2\) 的 24.9,而其总分反而更低,不能只选单一维度评价配置。 同一张表中,LTX-Video 的无缓存及 \(P=5\) 总分均为 66.2%,无 LoRA CineScale 为 63.3%;Wan2.1-14B 的无缓存结果为 73.6%,对比项为 73.4%。 原文表2(第11页)的 3K 结果中,\(P=5\) 总分为 70.1,无缓存和有 LoRA CineScale 均为 67.4;不能将这一最优缓存间隔直接套回 1080P。
消融实验¶
下表节选原文表3(第12页),使用 Wan2.1-1.3B、1080P;质量指标为百分比,耗时越低越好。 其中全注意力基线是粗到细高分辨率处理配置,不应与图3(a)从头直接高分辨率生成混为一谈。
| 配置 | 美学质量 | 成像质量 | 总分 | 推理耗时 |
|---|---|---|---|---|
| Wan-Only Full | 45.9 | 40.9 | 65.5 | 66 min 46 s |
| Wan-Only Window,普通窗口 | 57.0 | 57.1 | 71.4 | 32 min 29 s |
| Wan-Only Window,向内窗口 | 58.2 | 61.9 | 72.5 | 32 min 30 s |
| FreeSwim,无缓存 | 57.9 | 63.4 | 72.7 | 79 min 15 s |
| FreeSwim,去除 CFG-Full | 58.6 | 61.8 | 73.2 | 64 min 5 s |
| FreeSwim,缓存 \(P=2\) | 61.2 | 65.3 | 73.7 | 54 min 40 s |
关键发现¶
- 向内移动窗口使成像质量从 57.1% 提高到 61.9%,增加 4.8 个百分点,耗时仅从 32 min 29 s 变为 32 min 30 s,说明边界处理本身有可测收益。
- 交叉注意力覆盖把向内窗口配置的总分从 72.5% 提至 72.7%,同时显著增加耗时;减少重复的视觉证据见图3和图7,不能把所有语义指标都描述成同步上升。
- 无缓存到 \(P=2\) 的耗时为 79 min 15 s → 54 min 40 s,按表内数据计算约为 1.45 倍加速;相对 66 min 46 s 的全注意力基线约为 1.22 倍。
- 原文第14页图8附近另称 4K、\(P=8\) 可达 2.8 倍加速,这是另一分辨率与配置,不应替代上述 1080P 比较。
- 用户研究有 29 名参与者;图6(第11页)中 FreeSwim 在文本对齐、美学吸引力和细节丰富度上的偏好占比分别为 55.0%、52.3%、59.7%。
亮点与洞察¶
- 感受野匹配不只是总 token 数匹配。边缘窗口的有效邻域也属于预训练分布的一部分,表3把这一细节与实际质量提升联系起来。
- 自注意力与交叉注意力承担不同干预角色。保留局部细节计算,只在文本语义注入位置引入全局信息,比直接平均两个分支输出更有针对性。
- 缓存对象是辅助语义指导,而非整个生成过程。作为读者启发,可进一步按指导特征的变化幅度自适应刷新,但本文尚未验证这种扩展。
局限与展望¶
- 缓存并非在所有配置下无损:1080P 总分从 \(P=2\) 的 73.7% 降至 \(P=8\) 的 71.7%。作者对较大间隔“近乎无损”的描述需要结合具体画面和指标理解。
- 原生视频仍决定粗布局和运动,高分辨率阶段不能保证修复第一阶段已经生成的错误;对这种失败模式的系统量化是后续方向。
- 评测使用 60 条提示和 5 个种子,支持该采样范围内的比较,但未提供足以证明所有模型、视频长度和复杂运动均受益的证据。
- 原文报告 1080P、2K、3K、4K 显存分别为 10.9、18.0、30.3、37.3 GB,并用 CPU 卸载把缓存版本控制到同一组数字;实际代价还需考虑主存和传输。
- 缓存未包含可读取的附录,式(1)与式(3)提取损坏,代码链接只剩“here”而无 URL,因此省略未知代码和 arXiv 链接,亦不补造实现参数。
- 表4中 \(\lambda=0\) 总分 65.5% 与表3向内纯窗口的 72.5% 不吻合,前者还与全注意力基线一致。这可能涉及标签或配置差异,仅凭当前文本无法判定,不应擅自纠正。
相关工作与启发¶
- 与 SDEdit 的关系:低分辨率视频经上采样、加噪、再去噪提供粗到细起点;FreeSwim 的重点是该细化过程内部的注意力组织,而不是重新提出加噪编辑。
- 与 I-Max、HiFlow 的区别:它们提供训练外分辨率生成的图像侧思路,本文着重处理视频三维交互的尺度失配;迁移后的表1结果是特定骨干上的实验结论。
- 与 CineScale 的区别:本文无需高分辨率 LoRA,并显式分离局部细节与全局语义职责;有 LoRA 和无 LoRA 版本必须分别比较。
- 与 DeepCache 等缓存方法的关系:共享跨步复用特征来减少计算的思路,但本文选择全注意力辅助分支的交叉注意力输出,并保留局部分支逐步更新。
- 分类判断:核心任务是免训练超高分辨率视频合成,注意力优化服务于视频质量,因此
video_generation比图像恢复或通用模型压缩更准确。
评分¶
- 新颖性: 4/5。向内窗口、语义覆盖与专门缓存的组合针对视频外推痛点,但粗到细和缓存本身已有基础。
- 实验充分度: 4/5。覆盖多骨干、多分辨率、组件消融和用户研究,仍受有限提示范围及配置说明不完整限制。
- 写作质量: 3/5。机制与图示主线清晰,但表4配置疑点及部分加速表述需要更严格对齐证据。
- 价值: 4/5。无需高分辨率再训练即可改善现有视频 DiT,实际部署仍需审视全局分支和缓存的资源成本。