# 从图到视频：多出来的那根时间轴，为什么让每帧都要跟别人对得上

从跨帧注意力和视频 VAE 的时间压缩讲起，说清一致性靠什么维持，以及时长和运动强度一放大就出现闪烁、漂移与结尾崩坏的原因

> 视频生成 · 跨帧一致性 · 图生视频 · 运动强度 · 约 7 分钟 · 10 月 12 日

## 本篇要点

1. 单张图片的自洽是免费的：整块画布在同一次去噪里一起定下来，任何位置都能看见其他位置；视频不行，每一帧都有独立的出错机会，必须额外建一条让帧与帧互相对齐的通道。
2. 跨帧注意力把同一空间位置上的各帧排成序列互相看，管的是帧间一致；空间注意力管的是每帧内容够不够丰富多样。两者分工不同，缺哪个都出问题。
3. 视频模型不在原始像素上工作：5 秒 120 帧接近一亿个颜色值，空间压 8 倍、时间压 4 倍后只剩约 30 个潜帧，体积压掉两百多倍。
4. 因为 4 帧像素共用一个潜帧编码，解码器被逼着输出平滑过渡的 4 帧，短程连贯在扩散之前就被压出来了；模型只需要管住那 30 来个潜帧。
5. 起始图既是防漂移的锚，也是压住运动的刹车：生成帧把过多注意力分给参考帧，参考外观沿时间轴过度传播，帧间互动被削弱，所以图生视频常常比纯文字生视频更静。
6. 漂移逐帧累积，表现为越到后面越不像，因此缩短时长通常好于改写提示词；延长功能是拿上一段的尾巴当新起点，误差被继承和放大。
7. 运动强度调高，等于允许每帧跨更大距离，模型必须更频繁地编造新细节，于是出现变形和熔化。实践中人脸与产品约 0.3–0.5、环境约 0.5–0.7，默认值往往偏高。
8. 结尾 0.5–1 秒掉质量是被反复观察到的现象，成因各模型不一；可确定的是那里累积误差最多、身后又没有帧可作对照，多生成一两秒再剪掉尾巴最省事。

---

做到第四篇，你已经能控制一张图里是谁、什么味道、什么构图。把同一张图丢进视频工具，出来的常常是另一回事：整段像在轻微抖动，前两秒还像本人，第三秒开始五官挪位，最后一秒直接糊掉。

这不是提示词没写好。视频模型比图像模型多担了一件图像模型从不需要操心的事：**让每一帧都跟其他帧对得上**。这一篇把它拆开，说清一致性靠什么维持，以及为什么时长或运动强度往上一推，闪烁、漂移和结尾崩坏就一起冒出来。

## 一张图里，自洽是免费的

上一篇讲人物一致性时说过：脸不是从档案里调出来的，是每次去噪当场长出来的。这里要再推一步。

生成一张图的时候，整块画布是**在同一次去噪过程里一起被决定的**，任何一个位置都能看向其他任何位置——这就是注意力在做的事。所以头发的颜色和脸的颜色不会打架，它们本来就是一起定下来的。第三篇讲的参考图泄漏，其实是同一机制的另一面：位置之间互相看得太充分，才会把主体和风格搅在一起。

也就是说，**单张图片内部的一致，你从来没操心过，因为它是免费的。**

## 最笨的做法，正好暴露出要补什么

偷懒一下：把 5 秒、每秒 24 帧的一段视频拆成 120 张图，一张一张单独生成[3]。每一张都会很漂亮、都会自洽，但彼此毫无关系——第 17 帧的人在看左边，第 18 帧可能已经在看右边。连起来播放就是闪烁。

这个失败直接指明了要补的东西：**在帧与帧之间加一条通道，让某一帧的某个位置能看见其他帧的同一个位置。**

这条通道叫跨帧注意力（temporal attention）。做法是把帧那一维重新排成序列，让**同一个空间位置上的 120 帧排成一队互相看**；而原来的空间注意力正好反过来，把一帧里的所有位置当成序列，把帧当成批次[1]。

两种注意力分工明确：空间注意力决定每一帧内容够不够丰富多样，跨帧注意力决定帧与帧之间够不够一致[2]。只加前者，你得到一堆好看的散图；只加后者，你得到一段平滑但没有内容的糊。

```mermaid
flowchart LR
  A["起始图或文字提示"] --> B["视频 VAE：空间压 8 倍、时间压 4 倍"]
  B --> C["时空潜变量：5 秒只剩约 30 个潜帧"]
  C --> D["空间注意力：帧内各位置互看，管每帧内容"]
  C --> E["跨帧注意力：同一位置跨帧互看，管帧间一致"]
  D --> F["解码回 120 帧像素"]
  E --> F
  A -->|"起始帧一路钉在第 0 帧"| C
```

## 一致性是在压缩过的时间里维持的

还差一个成本问题。5 秒、512×512 的视频，每帧有 $512\times512\times3\approx79$ 万个颜色值，120 帧加起来接近一亿个数字[3]，在原始像素上做扩散根本做不动。

于是视频 VAE 把图像那套潜空间思路往时间轴上再推一格：空间上每 8×8 个像素压成一个点，时间上再每 4 帧压成一帧，两个方向乘起来，体积压掉两百多倍[3]。

这带来一个容易忽略的好处：4 帧像素必须共用同一个潜帧编码，解码器就被逼着从一段编码里还原出平滑过渡的 4 帧——短程的连贯还没等扩散模型动手，就已经被压出来了[3]。于是模型真正要管住的，不是 120 帧像素怎么对齐，而是那 30 来个潜帧怎么对齐。压缩和一致，是同一根杠杆。

## 起始帧既是锚，也是刹车

既然一致这么贵，为什么工具都在推图生视频？因为起始图是一根现成的锚：它的编码被拼到每一帧的噪声潜变量旁边，每一帧都能回头看那个干净的、不会变的第 0 帧[3]，身份、光线、构图都有参照。

但锚给得越重，运动被压得越死。研究者在注意力图上看到了原因：生成帧把过多注意力分给参考帧，参考图的外观沿时间轴被过度传播，帧与帧之间本该发生的互动被削弱，结果即使提示词里明明写了动作，视频依然偏静[7][8]。

这正是上一篇“保真度和可编辑性互相拉扯”那根杆，在时间轴上换了个名字。也正因如此，很多工具干脆把运动做成一个纯数值旋钮，比如早期模型 Stable Video Diffusion 的 `motion_bucket_id`，取值 1 到 255，跟“动的是什么”无关，只管“动多少”[4]。

## 时长一放大，漂移就开始累积

漂移有个典型形态：它不在第一秒出现，而在第三秒、第六秒之后才显形。

每一帧都有出错的机会，这些小误差会沿着时间一路传下去、叠起来。所以**“越到后面越不像”是累积的结果，不是模型突然忘了**。这也决定了对策方向：身份开始漂的时候，缩短时长通常比改提示词有用——漂移是随时间累积的，不是随字数累积的[5]。

第二个原因是时间距离：跨帧注意力要维持“第 1 帧和第 120 帧直接对得上”，比 16 帧内部对齐难得多。而模型大多是在 5 到 10 秒的片段上训练的：Veo 3.1 单次生成 8 秒，Kling 3.0 是 5 到 10 秒，Sora 2 的 API 是 4/8/12 秒[6]。

第三，“接续”不等于“生成了更长的视频”。延长功能是拿上一段的尾巴当新起点往下生成，误差被当作起点继承下来，再往下放大。常见的现象是第一次延长还能看，第二次身份就崩了[9]。

## 运动强度一放大，就会熔化

跨帧注意力和时间压缩合起来，其实是在要求一件矛盾的事：相邻两帧必须几乎一样，可整段又得动起来。运动只能在“每帧只挪一点点”的约束里完成。

把运动强度调高，等于允许每帧跨更大的距离。模型没法再靠相邻帧的相似性偷懒，必须更频繁地编造新细节，编错的机会随之上升——表现出来就是变形、熔化、身份跑掉。使用者的经验区间大致是：人脸和产品 0.3 到 0.5，环境 0.5 到 0.7，而默认值往往偏高[9]。

于是一条好记的配方：**高运动 + 长时长 + 复杂主体，是崩坏的标准组合。**

有一种比拉长单次生成更可控的做法：把首帧和末帧都用图钉住，让模型在两图之间做内插，而不是自己编一个终点[10]。代价是你得先造出第二张与第一张风格连贯的图；而且首尾帧、运动笔刷、镜头运动预设这几类控制常常互斥，一个片段里通常只能选一种[10]。

## 结尾那半秒为什么最先烂

多数模型在最后 0.5 到 1 秒会明显掉质量[6]。和跨帧注意力不同，这一条我没有找到统一、确凿的机制，不同模型的原因可能并不一样。能确定的是：越靠后的帧累积的错误越多，而它身后已经没有帧可以对照、把偏差拉回来。所以最省事的处理是多生成一两秒，剪掉尾巴。

## 落到手上的判断

**第一，先问主体是否必须特定。** 必须特定，就走图生视频，让起始帧锚住外观；不特定才用纯文字。用图生视频时，提示词只写运动和镜头，别再把主体描述一遍——那等于邀请模型重新解释一个你已经给它的东西[5]。

**第二，先定时长。** 先用 5 秒试动作，判断得起来再加长。

**第三，出问题先调数值，再改文字。** 画面熔化先降运动强度，身份漂移先缩时长。写动作要写有方向、有主体、有快慢的移动，别写“动感”“电影感”这类感觉词——那只会让模型取一个平均值[6]。

最后一句边界：本篇出现的型号、时长规格和数值区间，是写作时查到的当前情况，变得很快；而机制层面那三件事——跨帧注意力、时间上的压缩、起始帧的过度主导——短期内不会变。

## 术语表

- 跨帧注意力：把同一个空间位置上的各帧排成一队互相看，是让帧与帧保持一致的主要机制，与管帧内内容的空间注意力分工不同。
- 视频 VAE 的时间压缩：空间上每 8×8 像素、时间上每 4 帧压成一个点，让连续 4 帧像素共用一段编码，解码时被逼着输出平滑过渡，短程连贯因此是压出来的。
- 漂移：每帧的小误差沿着时间累积，表现为越到后面越不像本人，所以对策是缩短时长而不是改提示词。
- 运动强度：一个纯数值旋钮，只管每帧允许变化多大，不管动的是什么；调高更动感，也更容易熔化。
- 参考帧主导：生成帧把过多注意力分给起始帧，使参考外观沿时间轴过度传播、帧间互动被削弱，这是图生视频偏静、也是“越稳越难动”的原因。

## 来源

1. [Ho et al., Video Diffusion Models — 保留图像空间注意力块，在其后插入跨帧注意力块，并用相对位置编码区分帧序](https://arxiv.org/pdf/2204.03458)
2. [MagicVideo: Efficient Video Generation With Latent Diffusion Models — 并行使用空间与时间注意力，实验显示空间注意力带来多样帧、时间注意力带来帧间一致](https://arxiv.org/abs/2211.11018)
3. [Video Diffusion: Architectures & Temporal Consistency — 逐帧独立去噪即闪烁基线；视频 VAE 的 8×8 空间与 4× 时间压缩把 120 帧变成约 30 个潜帧；起始帧编码被拼到每一帧旁边](https://visionbook.icsgen-ai.org/part-4-generative-vision-models/module-36-video-3d-world-generation/section-36.1.html)
4. [Image-Text-to-Video 实践笔记 — Stable Video Diffusion 没有文字编码器，只有 motion_bucket_id（1–255）等数值控制；运动调高时结果更不可控、更易崩](https://bthek1.github.io/DL_tasks/Multimodal/image_text_to_video.html)
5. [Image-to-Video vs Text-to-Video: Which One You Actually Want — 图生视频的提示词应只写运动与镜头；身份漂移随时间累积，缩短时长是直接解法](https://uncutly.ai/ai/image-to-video-vs-text-to-video)
6. [AI Video Prompt Basics: 6 Parts Veo, Kling & Runway Need — 各型号单次时长规格；结尾约 0.5–1 秒质量下滑、建议多生成后剪尾；动作指令要写方向与速率](https://aitoolsguidebook.com/en/articles/ai-video-prompt-basics/)
7. [Rebalancing Reference Frame Dominance to Improve Motion in Image-to-Video Models — 参考帧主导：非参考帧把过多注意力分给参考帧 key token，导致帧间动态被压制](https://arxiv.org/abs/2605.19398)
8. [Improving Motion in Image-to-Video Models via Adaptive Low-Pass Guidance — 图生视频比同源文字生视频更静，条件图的高频细节让采样轨迹过早锁定在外观上](https://openaccess.thecvf.com/content/CVPR2026/papers/Choi_Improving_Motion_in_Image-to-Video_Models_via_Adaptive_Low-Pass_Guidance_CVPR_2026_paper.pdf)
9. [Kling AI Tutorial: Image-to-Video Workflow That Holds Identity — 实践给出的运动强度区间、身份约在第 6 秒附近开始破、第二次延长常破坏身份](https://aitoolsguidebook.com/en/articles/kling-tutorial/)
10. [Vercel AI Gateway: Image-to-Video — 首帧加尾帧让模型在两图之间内插；首尾帧与运动笔刷、镜头控制互斥，一段里通常只能选一种](https://vercel.com/docs/ai-gateway/modalities/video-generation/image-to-video)

---

原文：https://pangzhengboyin.com/articles/why-video-generation-needs-frame-consistency-d09ffc96

> **庞征博引** · 想学的，慢慢都会
>
> 庞征博引是把想学的东西写成连载的 AI 学习工具。说出想学什么，它会先了解你的基础，再把主题写成一篇篇 5–10 分钟能读完的文章；边读边问，接下来学什么跟着你走。这篇就是这样写出来的。
>
> 开始你自己的连载 → https://pangzhengboyin.com
