AI 视频动作不科学:6 类原因 + 修复路径

腿向前蹬身体却往后滑、水往上倒、手穿过物体?动词模糊、物理没被模拟——明确方向、目标和起止姿态。

你写 a man running across a field,出来的人腿向前蹬、身体却往后滑。或者 pouring water into a glass,水往上流。或者 picking up a phone,手直接穿过手机。

这是物理和动作一致性失败。模型认得动作的「标签」、也认得动作的「外观」,但它不模拟质量、重力和动量,所以画面里每个区域可以半独立地运动——这就是腿和躯干互相矛盾的原因。

最快修复: 把动词改写成带明确方向和终点的写法(running forward toward the camera),每段只放一个动作;凡是涉及流体或精细手-物接触的,别去渲染过渡,改成生成两个静态镜头然后中间剪一刀。如果工具支持,直接「涂」动作(Runway Multi Motion Brush)或设起止关键帧(Kling),别只靠一个文字动词。物理镜头反复失败时,先换到你能用到的最强物理模型上重跑一遍(截至 2026 年 6 月是 Kling 3.0 或 Veo 3.1),再去死磕 Prompt。

先对号入座

动手改 Prompt 前,先把你的症状对应到最可能的原因。

症状最可能的原因看哪步
四肢往一个方向、身体往另一个方向动词没给统一的运动向量Step 1
动作在两个姿态间「瞬移」或扭曲没写起止姿态Step 2
水往上流、布料穿模、手指接触时融化模型模拟不了的物理Step 4
节拍被跳过或压缩一段塞了太多动作Step 3
动作冲出画框就崩主体贴着画框边缘Step 5
Prompt 干净但动作还是混乱动作信号互相冲突原因 6

常见原因

按命中率从高到低排列。

1. 动词有多种合理解读

"jumping" —— 垂直跳?跳远?开合跳?蹦床?
"throwing" —— 向前抛?向上扔?扔掉?
"reaching" —— 向前伸?向上?向旁边?

不给方向和目标,模型就挑一种解读,可能机制上就是错的。

如何判断: Prompt 里的动词没有方向修饰词。

2. 没写起止姿态

模型只能猜动作的起点和终点。你不说「starts standing, ends seated」,它就在自己编的两个姿态之间插值——这正是那种「瞬移感」的来源。

如何判断: Prompt 有动词,但没描述起始姿态或结束状态。

3. 动作涉及模型模拟不了的物理

哪怕是 2026 年最强的模型,依然搞不定:

  • 真实的液体流动(水、倒、溅)
  • 布料自然的包覆和垂坠
  • 精确的手-物接触(抓、握、放)
  • 多步手部动作(做饭、打字、开车)

截至 2026 年 6 月,你实际能用到的两个物理最强的模型是 Kling 3.0(流体、布料、粒子表现的当前标杆,2026 年 2 月 4 日发布,原生 4K/60fps)和 Google Veo 3.1(物理真实、时间连贯性强,还自带同步音频)。如果流体或手部接触的镜头在较弱的模型上反复失败,换到 Kling 3.0 或 Veo 3.1 上重跑,往往比死磕 Prompt 更省。

有一点变了:OpenAI Sora 2 以前是物理标杆,但现在已经不是可行选项了。 OpenAI 已于 2026 年 4 月 26 日停止 Sora 网页端和 App,Sora API 也已弃用,将于 2026 年 9 月 24 日关停(OpenAI 的停用公告)。除非你在关停前直接调那个弃用的 API,否则就把 Kling 3.0 和 Veo 3.1 当作物理上的兜底选择。这些模型没有一个彻底解决了这个问题,所以 Step 4 的绕过方案依然有效。

如何判断: 动作涉及精细的流体、布料或手部互动。

4. 一段塞了多个动作

"a man walks to a chair, sits down, opens a book, starts reading"

这是在一段 4 到 8 秒的片子里塞了四个动作。模型会混乱,或者悄悄跳掉某些节拍。

如何判断: Prompt 含 3 个或以上的顺序动词。

5. 主体在画框边缘

起于或终于画框边缘的动作会被模糊解读,因为模型看不见那条胳膊或那个物体要去哪。

如何判断: 起始帧里主体靠近画框边。

6. 动作信号互相冲突

"jogging slowly while sprinting forward at high speed"

或者隐式冲突(graceful run vs frantic dash)。模型把这些信号一平均,得到的结果两边都不像。

如何判断: 你的动作修饰词在速度或强度上互相矛盾。

最短修复路径

Step 1:用明确方向的动词

# 差 —— 模糊                  # 好 —— 方向 + 目标
"jumping"          →  "jumping vertically straight up"
"running"          →  "running forward toward the camera"
"throwing a ball"  →  "throwing a ball to the right, ball moves off-screen right"
"reaching"         →  "reaching the right arm forward toward the table"

永远要写齐:方向 + 目标/终点 + 速度。给每个身体部位一个统一的运动向量,腿和躯干才不会各走各的。

Step 2:写明起姿态和终状态

# 模板
"starts [pose], performs [action], ends [pose]"

# 例子
"starts standing with arms at sides, performs a single forward step,
ends with right foot in front, left foot back, arms still at sides"

# 物体互动
"starts with empty hands, picks up the red cup with right hand,
ends holding the cup at chest height"

如果工具支持起止关键帧(Kling 的首帧/尾帧模式、Runway 的关键帧输入),直接上传两张静帧,别用文字描述姿态。这样模型只需要在你完全控制的两个姿态之间插值,绝大部分「猜姿态」的问题就没了。首帧/尾帧控制在 Kling 1.6、2.x 和 3.0 上都有;Kling 3.0(2026 年 2 月 4 日发布)在两帧之间生成的运动路径明显更自然,恰好对这个场景最有帮助。

Step 3:每段一个动作

# 差 —— 多动作
"a man walks to a chair, sits down, opens a book, starts reading"

# 好 —— 拆成多段
Clip 1: "a man walks toward a chair, camera follows"
Clip 2: "a man sits down on the chair, settling into the seat"
Clip 3: "a man opens a book on his lap, looks down to read"

# 在剪辑软件里拼起来

一段里的一个连续动作(先走过去,再坐下)是没问题的;三个离散动作几乎总会丢掉一个节拍。

Step 4:绕开模型做不了的物理

模型模拟不了的,就别去渲染过渡——绕着它剪:

# 倒水 —— 难
- 生成一个「前」镜头(壶倾斜)和一个「后」镜头(杯满)
- 中间切一刀
- 加一点细微水声维持连贯

# 手拿东西 —— 难
- 生成「手靠近物体」和「手已经握住物体」
- 快切
- 不展示实际抓握的过渡

# 多步做饭
- 一步一个镜头,剪到一起
- 别想一段渲染完整流程

物体在运动中变形或融化,给正向 Prompt 加刚体语言the metal door stays solid and rigid throughout the swing, hinges stable。手指一接触就融化的,用负向提示词会有帮助——但只在真正有负向字段的工具上才行:

  • Kling 3.0negative_prompt 字段(API 默认值是 blur, distort, low quality;2026 年 5 月 23 日恢复,此前短暂下线过)。加稳定性词:morphing, extra fingers, mutated hands, deformed limbs, sliding feet
  • Veo 3.1 的生成配置里支持 negative_prompt,但 Google 的建议是用朴素的描述词,不要用指令式写法——写 mutated hands, extra fingers, morphing,别写 no mutated handsVeo 3.1 prompting guide)。
  • Runway(Gen-4.5)不给视频提供负向提示词字段。Runway 官方建议一切都用正向写法,所以请在正常 Prompt 里直接描述你要的干净结果(solid intact hands, five fingers, stable anatomy)。

Step 5:主体放画面中央,别贴边

# 差的起始帧
- 主体贴在画框边,动作延伸到画外

# 好的起始帧
- 主体居中或落在三分线上
- 动作在画框内有空间发生
- 动作需要空间时,取景拉宽

Step 6:直接涂动作或设关键帧

文字动词是指定动作最弱的方式。如果工具提供了直接的动作控制,就用它:

# Runway Multi Motion Brush
- 直接在图上涂运动向量
- 最多给 5 个独立区域分别指定不同运动
- 每个区域可在 3 个轴上设运动——horizontal(x)、
  vertical(y)、proximity/zoom(z)——外加一个 ambient noise 滑块
- 文字 Prompt 要和涂出来的方向一致,否则会出现撕裂伪影

# Kling 起止关键帧
- 上传一张起始帧和一张结束帧
- 模型生成两者之间的路径

Runway 官方指南里有一条提醒:文字 Prompt 必须和你涂的方向一致。如果你涂了一条向下流的河,Prompt 却写「still water」,就会出伪影。

没有 motion brush 或关键帧的工具,就简化 Prompt、接受更少的同时动作。Runway 当前 Gen-4.5 的官方建议也是这样:先写一个只抓住核心运动的简单 Prompt,需要时再加细节。Runway 明确说 Gen-4.5「thrives on prompt simplicity」——一个方向清晰的精炼 Prompt 胜过一长段堆砌,塞太满的 Prompt 会让动作更差,而不是更好。把视觉信息交给一张好的输入图去承载,文字只用来描述「什么在动」。

如何确认已修好

  • 盯住一条肢体。 逐帧(慢慢拖进度条)看某一只脚或手。它应该和身体朝同一个方向连贯移动,不会倒退或抽搐。
  • 检查接触瞬间。 抓握和倾倒的失败几乎总在接触帧上。如果你用 Step 4 绕过去了,确认保留下来的帧里没有穿模。
  • 数节拍。 如果你拆了多动作镜头,每段应该正好包含一个从头到尾的动作,不跳节拍。

预防建议

  • 新动词先在简单主体上测一遍,看模型实际会怎么处理。
  • 默认每段一个动作;多动作镜头很难成立。
  • 维护一份「模型能做好的动词」清单和一份「要避免的动词」清单。
  • 复杂物理提前规划好剪辑点,别赌一次性渲染出全程动作。

FAQ

问:为什么腿向前蹬、身体却往后移? 答:模型认得「running」这个动词和跑步的视觉姿态,但它不强制执行「腿和躯干共享同一个运动」这条刚体约束。每个区域是半独立生成的。写明方向(running forward toward the camera)就给了所有身体部位同一个运动向量,问题随之解决。

问:新模型会不会自动修好物理一致性? 答:每一代都在减少明显错误。截至 2026 年 6 月,Kling 3.0 和 Veo 3.1 在水、重力、布料、碰撞上已经远好于 2025 年的模型,手部生成也改善很多。但精确的多步物理——倒水、穿线、可控抓握——依然落后。别围绕「下一个模型」来设计工作流;用切镜和拆片来绕开这个上限。

问:在 Prompt 里加「realistic physics」或「correct anatomy」有用吗? 答:作用很小。这些词只微调风格,不增加任何真实模拟。它们甚至可能帮倒忙:一长串描述会和动作动词抢模型的注意力。如果你的工具有负向提示词字段(Kling 3.0 和 Veo 3.1 有,Runway Gen-4.5 没有),把 morphing, mutated hands, sliding feet 这类稳定性词放进负向槽,比放进正向 Prompt 更管用。在 Veo 上用朴素描述词,别用「no」「don’t」;在 Runway 上用正向写法,直接描述你要的干净结果。

问:什么时候该拆多动作镜头、什么时候该硬磕一段连贯片? 答:每个动作超过约 2 秒,或主体换了位置,就拆。一段 4 到 8 秒里的一个连续动作(走过去、坐下、抬头)读起来自然;三个离散动作(走、坐、翻书、阅读)几乎总会丢节拍或压缩得别扭。

问:流体/手部镜头在每个工具上都失败,怎么办? 答:换到你能用到的最强物理模型上重跑——截至 2026 年 6 月是 Kling 3.0 或 Veo 3.1(Sora 2 的 App 已于 2026 年 4 月 26 日关停,不再是以前那个省事的答案了)。如果还是失败,别死磕了:生成两个静态镜头(前/后)然后中间切。干净的一刀剪读起来是「有意为之」,崩掉的过渡读起来才是 AI 伪影。

相关阅读

标签: #视频生成 #排查 #排查