人物的手肘弯反了。脖子转过了人类活动范围。手放在腰上但腕关节断了。姿势”在那里”,但解剖学上不对——大脑立刻识别,哪怕你说不出哪不对。
姿势问题三个常见来源:动词太抽象(standing)、没骨骼参考(ControlNet)、或取景太紧迫使模型把肢体硬塞进画框。
常见原因
按命中率从高到低:
1. 抽象动词如 standing / sitting
a woman standing 没告诉模型她手臂在哪、重心在哪、髋部什么状态。它选一个默认——通常是解剖学上偷懒的(手臂垂直、左右均衡、头朝前)。
如何判断:姿势词是 standing、sitting、lying down、posing 这种——补具体肢体描述。
2. 没有姿势参考
复杂姿势光靠文字不够——kneel while reaching forward 有无穷多种身体走法。没有 OpenPose 骨骼或姿势参考图,模型只能猜。
如何判断:没用 ControlNet OpenPose、Pose Reference、或带姿势的 --cref。
3. 镜头太近,肢体被强塞进画框
近景肖像 + 全身姿势描述 = 模型只好把肢体硬扭进画框。手臂在画框中间断掉、手躲在脑后等等。
如何判断:紧框(近景 / 头像)+ 描述了手 / 脚 / 腿——退一档。
4. 多个互斥的姿势词
"hands on hips, arms crossed, holding a coffee cup"
三个互斥的手臂位置。模型取平均,出来就是断臂。
如何判断:数 Prompt 里独立的手 / 臂动作。>1 就是冲突。
5. 模型不认识的动作词
pickleball serve、yoga warrior 2 pose、kabuki 姿势——训练数据里罕见的姿势模型只能近似,结果就崩。
如何判断:姿势词偏专项体育、特定艺术形式、文化特定——换通用等价或用姿势参考图。
6. 模型本身解剖弱(Flux schnell、轻量 SD checkpoint)
某些轻量模型重风格轻解剖。出图漂亮但解剖松散。
如何判断:同 Prompt 同姿势跑公认解剖强的模型(Juggernaut XL、Pony XL、RealVisXL),解剖立刻干净 → 原模型是源头。
最短修复路径
Step 1:抽象动词换具体动作
差 → 好:
| 差 | 好 |
|---|---|
a woman standing | a woman standing with arms crossed, weight on her right hip, head tilted slightly down |
a man sitting | a man sitting cross-legged on the floor, hands resting on knees, leaning forward slightly |
posing | leaning against a wall with one hand in pocket, other hand holding coffee, looking off camera left |
running | mid-stride running, left foot forward and lifted, right arm forward and bent, looking ahead |
明确写:每条手臂、每条腿、重心、头朝向、视线。
Step 2:用 ControlNet OpenPose 喂骨骼
单点最强修复:
# SDXL via A1111 / Forge / ComfyUI
1. 找一张或拍一张你想要姿势的照片
2. 拖进 ControlNet → OpenPose Editor → 抽骨骼
3. 用 OpenPose 预处理器 + OpenPose 模型
4. 你的 Prompt + 骨骼图一起跑
# 在线工具
- Posemy.art — 拖 3D 骨骼摆姿势
- Open Pose Editor (在线) — 调 2D 骨骼
- 都能导出 PNG 喂给 ControlNet
ControlNet 权重 0.8-1.0 严格锁姿势,0.5-0.7 较松。
Step 3:镜头退一档
紧框里姿势断 → 拉远:
# 替换
"close-up portrait" → "half body shot"
"head shot" → "medium shot, chest up"
# 或显式描述
"full body shot, framing head to feet"
"three quarter body, framing head to knees"
给模型空间自然构图肢体。
Step 4:换解剖强的 checkpoint
# SDXL —— 解剖最强
- Juggernaut XL v9+
- RealVisXL
- Pony Diffusion XL(全身尤其好)
- Realism Engine SDXL
# Flux
- Flux dev(比 schnell 解剖好)
- + Civitai 的 Anatomy LoRA
Step 5:负向 Prompt 拦解剖错误(仅 SD 系)
broken arm, broken anatomy, bad anatomy, deformed limbs,
disjointed limbs, extra limbs, missing limbs, twisted body,
unnatural pose, broken neck, contorted, mutilated,
warped arms, malformed
Step 6:用 ADetailer / inpaint 单独修
95% 姿势对,就一块断 → 局部 inpaint:
# A1111 / Forge ADetailer
- 自动检测手或身体
- 用正确解剖的 Prompt inpaint
- 强度 0.4-0.6
# 手动 inpaint
- Mask 断的那块
- Inpaint Prompt: "anatomically correct arm, natural elbow bend"
- Denoise: 0.5-0.7
预防建议
- 建个人姿势词典——每个命名姿势配 1 行具体描述
- 任何非平凡姿势,默认用 ControlNet OpenPose,别硬描述
- 取景和姿势匹配:全身姿势→全身镜头,头部细节→头像
- 姿势关键工作(运动 / 舞蹈 / 动作)用解剖强的 checkpoint