AI 视频运动中手部消失或畸变

角色一动起来,手就糊进袖子、跟身体融为一体、突然多出第六根手指,甚至凭空消失几帧。为什么手是 AI 视频最难的区域,怎么把它保住——已在 Sora 2、Veo 3.1、Kling、Runway 上验证,2026 年 6 月。

参考图里手画得清清楚楚、解剖结构正常,生成视频第一帧也还行。然后角色一伸手拿杯子、挥手、或者只是从镜头前走过,手立刻糊进袖子、跟身体融在一起、长出第六根手指,或者干脆消失八帧后再弹回来。这是当下 AI 视频最稳定复现的失败模式之一:手又小、又有关节、又动得快、还会自我遮挡,刚好是 diffusion 模型信号最少的区域。

最快的修法:在 prompt 里明确点名手(both hands visible, five fingers on each hand),重构图让手至少占画面 8% 到 10%,把连续手部动作控制在约 2 秒以内,更长的镜头用一个 cut 拆开。如果片段已经渲染好了,就只对手部区域做 mask 重生成(Runway Inpainting 或 Kling Inpainting),而不是整段重 roll。

这是整一类模型的局限,不是你账号的 bug。截至 2026 年 6 月,运动中的手在所有前沿模型上都还会坏——Sora 2、Veo 3.1、Kling 3.0、Runway Gen-4.5、Hailuo、Pika、Seedance——其中 Veo 3.1 和 Kling 守手的几何形状明显比其他模型靠谱。下面的修法都是绕开这个局限,而不是等它自己消失。

这篇讲清楚为什么手只在运动时坏(静止时没事)、怎么写 prompt 把翻车率压下去、怎么确认修好了,以及当你没法重 roll 的时候怎么救一个镜头。

先判断你属于哪一种

把片段逐帧暂停,把你看到的现象对到最可能的成因上。这样你能直接对症下手,而不是瞎重 roll。

你看到的现象最可能的成因去看
静止时手好好的,只在运动中糊掉手太小 / 跨过 motion blur 临界点步骤 1、2
出现六根手指 / 手指粘连prompt 从没点名手步骤 1
手只在穿过身体或同色背景时消失分割失效步骤 3
手从一进画面就是错的(image-to-video)起始帧把手藏起来了步骤 4
只在抓握物体时手指变形握姿几何冲突步骤 1、6
前约 2 秒正常,然后逐渐漂移镜头太长步骤 5
广角 / fisheye / GoPro 镜头下手被拉长镜头描述放大近镜头畸变成因 7

Common causes

按出现频率从高到低排。

1. 手在画面里太小,跨过了 motion blur 的临界点

手在画面里占比不到 3%、运动速度又超过模型在该分辨率下训练分布能扛的范围,就会被走样成一团 decoder 无法还原成解剖正确的手的模糊块。模型会选”像袖子”而不是”像没渲染完的手”。

怎么判断:每 4 帧暂停一次。静止时手是好的,运动段才坏,运动停了又恢复——就是这个原因。

2. Prompt 只写动作,没写手

类似”a person waves hello”或者”barista pours coffee”这种 prompt 只描述动作。模型会把动作当一个整体来理解,把手当作完成动词的工具,而不是要保住的区域。手就被牺牲给了主运动向量。

怎么判断:你的 prompt 写了动词但完全没出现 hand 或者 finger 这种名词。明确写”五根手指可见”会给模型一个可以守住的区域。

3. 手从同色调区域前面经过

手经过脸前面、躯干前面,或者和背景同色调的地方。模型对”手”和”背景”的分割只在几帧里失效,手就视觉上熔进它经过的那块区域。

怎么判断:手消失的时机正好和它跟同色区域重叠的时机对得上。让动作走高对比度路径,bug 立刻没了。

4. Image-to-video 起始帧把手藏起来了

如果参考图把手藏起来(插兜、背后、攥拳),模型就没有任何关于手指数、关节位置、手心朝向的 anchor。一旦手进画面,模型只能凭空发明,通常就发明得很糟。

怎么判断:参考帧里手是藏的,artifact 恰好出现在手第一次出现的那一刻。

5. 手握东西——手指包不住物体

笔、杯子、手机、方向盘——任何手要抓的东西。模型得同时渲染正确的握姿几何和稳定的物体尺寸。通常会输一个。手指穿过物体、杯子飘在空中、笔变形。

怎么判断:空手的时候手是好的,只有抓东西时坏。物体形状跟手指错误同步扭曲。

有点反直觉:抓握往往比空中比划更容易稳住。手贴在一个硬物体上时,模型可选的合理姿势更少,所以把接触点写明确(fingers firmly grip the edge of the ceramic cup)能约束几何形状。含糊的空手动作(she moves her hands)给模型的漂移空间最大——这是 Kling 自己截至 2026 年 6 月发布的官方建议。

6. 连续手部运动段超过约 2 秒

目前大多数模型在复杂手部运动上能稳住解剖结构大约 1.5–2 秒,再长就漂移。长镜头里有持续的手部动作(打字、手语、做手势)会累积误差。

怎么判断:前 ~40 帧手是对的,然后逐渐变坏。把片段缩短问题就消失。

7. 广角镜头描述放大了手部畸变

prompt 里写”wide-angle lens""fisheye”或者”GoPro”会教模型夸张靠近镜头的元素。离镜头最近的手被拉进畸变预算里,而模型会把这种畸变渲染成解剖漂移,而不是诚实的透视。

怎么判断:去掉镜头描述、其他 prompt 词全保留,手就正常了。

Shortest path to fix

Step 1: 在 prompt 里加显式的手部语言

别只写动作。加结构 anchor:

"a barista pours espresso, both hands visible,
five fingers on each hand, fingers wrap naturally
around the cup handle, hands occupy lower-third of frame"

光是”five fingers”这一句就能让大多数模型显著减少多指 artifact,因为它给了 denoiser 一个要尊重的数字。Diffusion 模型把”手指”当作一个概念能理解,但没有内建的计数机制,所以在正向 prompt 里告诉它”正确的样子”,比只罗列要避免的东西更有用。

如果你的工具有单独的负向 prompt 框(Kling、Hailuo 和大多数 ComfyUI / 本地流程有;Sora 和 Veo 没有),就加一句短的:extra fingers, fused fingers, deformed hands, mutated hands, missing fingers。控制在大约五个词。负向 prompt 里塞超过约 5 个跟手有关的词是 diffusion 模型里有记录的翻车点:过了这个阈值,输出会变得僵硬,反而更容易出 artifact(逆向放大)。把你最大的问题词放最前面,比如 extra fingers 打头。

Step 2: 让手在画面里足够大

重构图,让运动段里手至少占画面 8–10% 的面积。手部运动是主题的镜头,中景永远比远景靠谱。

实在没法重构图,就在更高分辨率(1080p → 4K)生成再降采样。分辨率越高,模型能花在手部细节上的像素就越多。

Step 3: 别让手跟同色调区域重叠

如果动作必须让手穿过身体,改下面任意一项:

  • 衣服颜色(高对比袖子 vs 背景)。
  • 手的位置(从更高或更低位置穿过,避开躯干中线)。
  • 灯光(轮廓光把手从背景里分出来)。

Step 4: Image-to-video 用”手可见”的起始帧

如果你做的是 image-to-video,参考帧必须显示你想要的手,在它们将要开始运动的位置。攥拳、插兜、背后藏手——这是手部漂移最大的单一预测因子。

Step 5: 拆短再拼

把一个 4 秒的手部重镜头拆成两个 2 秒、中间一个 cut。每段更短的生成都能更好地守住解剖结构,中间的干净 cut 如果动作是连续的根本看不出来。别让模型在一次 pass 里扛超过 ~2 秒的连续手部动作。

这一点即使在模型”号称”能出更长片段时也成立。截至 2026 年 6 月,各家单段上限是:Veo 3.1 8 秒,Runway Gen-4.5 约 16 秒,Kling 最长约 2 分钟,Sora 2 在 ChatGPT Plus 上 15 秒、在 $200 Pro 账号的网页版 Storyboard 上 25 秒。号称的最大时长不等于解剖安全的最大时长。手的稳定性远在片长上限之前就开始崩,所以不管模型允许你请求多长,都把手部重的那个动作单独做成一个短镜头。

Step 6: 蒙版重生成手部区域

不能重 roll 整段时,只对手部区域做 mask 重生成、其他部分冻住。比整段重 roll 便宜,而且保留了已经能用的部分。

  • Runway——打开片段,选 Inpainting,在手上刷出 mask,然后描述替换内容(five-fingered hand, natural anatomy, holding cup)。Runway 会逐帧重生成被 mask 的区域。
  • Kling——用 Inpainting(Kling 3.0),在手上画一个紧贴的 mask,写好纠正 prompt,把 Redraw Intensity(重绘强度) 设到低到中,让模型尊重周围像素而不是把整块区域重新发明。手、首饰、脸这种细节修复都该用紧贴的小 mask。
  • 本地 / ComfyUI 流程——MeshGraphormer Hand Refiner 节点是目前(2026 年 6 月)修手的 state-of-the-art:它会估算手的深度和 3D 网格再重建,能去掉普通 inpaint 容易留下的那种”蜡烛融化”质感。

手动 inpaint 的话,下面这组参数是个不错的起点:

Mask: hand bounding box + 20px feather
Prompt: "five-fingered hand, natural anatomy, holding cup"
Strength / redraw intensity: ~0.7 (keep some motion from the original)

Step 7: 用 motion blur 或者 cut 把翻车藏掉

实在不行就在后期给坏帧加 motion blur(以手为中心做径向模糊),或者在手翻车的那 8 到 12 帧切到另一个机位。观众原谅一个 cut;不会原谅一只六根手指的手在屏幕上停半秒。

怎么确认修好了

别信缩略图,也别只看第一帧。要像剪辑师那样验:

  1. 逐帧拖过整个运动段,而不是按正常速度播一遍。大多数手部翻车只持续 4 到 12 帧,正常速度下看不出来。
  2. 专门在手穿过身体、进画面、抓物体的那一刻暂停——这些是诊断表里风险最高的瞬间。
  3. 在运动段的每一个暂停帧上数手指数。一个静止时是五根手指的片段,伸手到一半时照样可能闪出六根。
  4. 把这段以 0.25 倍速循环一遍。四分之一速度下都没翻车,那它在正常速度下对观众就稳了。

一个镜头算过关,是指你能把整个手部运动段拖一遍,从头到尾看不到手指数变化、手指粘连或手糊进袖子。

When this is not on you

运动中的手是当前所有前沿视频模型(Sora 2、Veo 3.1、Runway Gen-4.5、Kling 3.0、Hailuo、Pika、Seedance,2026 年 6 月)的共同弱点。连 Google 自己的 benchmark 也把这当成渐进式进步:Veo 3.1 在 8 秒片段上的帧一致性比 Veo 3.0 提升了大约 40% 到 60%,这是实打实的进步,但远没”解决”。有些镜头——手语、杂耍、或者快速运动中的纯手部特写——目前还做不到一次生成搞定。要绕开,而不是硬刚着重 roll。

Easy to misdiagnose as

  • “seed 不好”。重 roll 几乎不能修运动中的手,只是换了一组坏帧。要治本不是治随机性。
  • “模型不行”。同一类运动下手在不同模型里都会坏。不改 prompt 不改构图直接换模型,通常重现同样的问题。
  • “prompt 写错了”。prompt 可能没问题;问题往往在构图、时长或者起始帧的可见性——这些光靠 prompt 控不住。

Prevention

  • 任何手部运动重的镜头默认用中景。
  • 在手部运动的 prompt 模板里固定加上”five fingers on each hand, both hands visible”。
  • 连续手部动作段控制在 2 秒以内,长镜头靠拼接。
  • 用参考图起手时,绝对不要用藏手的起始姿势。
  • 做一个”hand-safe”的 prompt 模块,所有角色镜头复用,跟动作描述分开。
  • 动作允许的话,把手锚定到一个硬物体上,别让它在空中比划——受约束的抓握比自由动作漂移更少。
  • 接客户活的话,提前规划一个手部 cut-away 备用镜头当 B-roll。

FAQ

  • 现在哪个模型的运动手部最好? 截至 2026 年 6 月,独立测试里 Veo 3.1 和 Kling 3.0 守手部几何最稳;Sora 2 在身份和表情上很强,但小的物理细节(手、鞋带)仍会漂移,除非你用参考图来锚定。没有哪个模型”解决”了快速运动中的手——换模型是微调,不是修复。
  • 为什么用同一个 prompt 重 roll 几乎没用? 重 roll 只换 seed,换的是”哪几帧坏”,而不是”这个镜头会不会坏”。成因在构图、时长或起始帧的可见性,这些 seed 都控不住。要改的是诊断表里的成因,不是 seed。
  • 为什么手比脚翻车更多? 手关节更多、动得更快、占的画面注意力更多、训练数据方差也更大(不同袖子、手套、配件)。脚通常静止、被地板或裤子部分遮住、容忍更多畸变。
  • upscale 能修手吗? Upscale 只能把已有像素变锐,凭空生不出正确解剖。720p 坏的手到 4K 还是坏的。先修生成,再 upscale。
  • 手部的负向 prompt 到底有没有用? 只有在工具有负向 prompt 框时才有用(Kling、Hailuo、ComfyUI——Sora、Veo 没有),而且要适度。控制在五个左右的手部词;再多,diffusion 模型反而倾向于出更多 artifact 而不是更少。一句清楚的正向 prompt(five fingers, anatomically correct hands)通常比一长串负向 prompt 更管用。
  • 是不是干脆后期修手算了? 经常是。对单个坏掉的动作,给手部区域做 mask 然后 inpaint(步骤 6),或者在那 8 到 12 帧切走(步骤 7),比整段重 roll 再祈祷 seed 配合要更快更省。

外部参考:

标签: #ai-video #排查 #视频生成 #hands #motion-artifacts #anatomy