人像本身挺好,往下一拉就发现手有六根手指、拇指长在错的一侧、或者两只手粘成一团。即便是 2025-2026 年的旗舰模型——Midjourney v7、SDXL + ADetailer、Flux Pro、Imagen 3——手仍然是图像生成里最难的部位。根因一般不是 prompt,而是手在画面里太小、姿态复杂、或者用了低质量档位。修复靠正确的构图、专门的二次 pass、必要时换模型。
常见原因
1. 手太小,像素数不够
输出图里手部区域如果小于 ~64×64 像素,模型根本没有足够的像素去画五根手指。这是”多手指”反馈里 60-70% 的根因。
如何判断:把手部放大看。如果整只手占图像长边的 5% 都不到,就是太小。
2. 姿态本身让手指互相重叠
“双手交叉”、“手托下巴”、“祈祷姿势”、“握小物件”——这些姿态强迫模型判定每根手指属于哪只手,通常会失败。
如何判断:检查 prompt 里是否包含双手贴在一起、或手指环绕细长物(笔、麦克风、手机边)的描述。
3. 没用负面 prompt
SDXL、Flux 这类模型如果你不显式抑制,它非常乐意给你六根手指。Midjourney v7 不太理负面词,所以这条只对 SD 家族、ComfyUI / A1111 有效。
4. 拍摄角度让手腕被遮住
手腕被遮住时,模型对手的大小和旋转没有锚点。极端俯仰角会让这个问题加重。
如何判断:从每根手指往身体方向追溯,能找到手腕吗?找不到就是锚点丢了。
5. 多人场景
画面里有两个或更多人时,模型经常把第三个人的手嫁接到主体身上。
如何判断:数能看到的手。应该等于 2 × 画面里的人数。3 个人只数到 5 只手或者 7 只手,就是这个。
6. 用了便宜 / 快速档
Midjourney 的 --draft、SDXL 步数少于 20、Flux Schnell、Imagen 的 fast 档——都会跳过原本能修好手的迭代。
如何判断:看出问题那次的档位 / 步数。和平台 premium 档对比——在便宜档跑的,部分原因就在这里。
动手前先确认
- 把出问题那张图的 seed 和完整 prompt 存下来,定向重画那一步用得上。
- 记下用的是什么工具、模型版本、画质档位。
- 确认不是偶发——用同 prompt 再出 4 张候选,看是不是张张都崩。
- 想清楚到底需不需要那只手——很多人像直接把手裁掉是最快的解。
- 在改 prompt 模板前,备份当前版本。
需要收集的信息
- 完整 prompt、负面 prompt、模型、seed、sampler、步数。
- 把崩掉的手裁到 ~512×512 的截图。
- 用途场景(缩略图 / hero / 印刷)——决定修到什么程度才够用。
- 其他部位(脸、脚)是不是也崩;如果是,根因是”像素不够”而不是手本身。
- 输出图的宽高比和最终分辨率。
最短修复路径
Step 1:拉近构图,给手更多像素
prompt 里加显式构图词,把模型推向中近景:
medium close-up, hands visible in frame, hands well-defined
全身像必须保留时,Midjourney 改成 --ar 2:3 或 --ar 4:5,SDXL 渲 1024×1280 而不是 1024×1024。竖向像素多了,上半身(包括手)也就清楚了。
Step 2:加强负面 prompt(仅 SD / Flux 家族)
SDXL / ComfyUI / A1111 里:
Negative: extra fingers, six fingers, mutated hands, deformed hands,
malformed hands, fused fingers, missing fingers, extra hand,
disfigured, ugly hands, poorly drawn hands
Midjourney v7 跳过这步——用 --no extra fingers 效果有限,重点放 Step 3。
Step 3:跑一遍手部专用二次 pass
收益最高的一步。
- SDXL / A1111:开 ADetailer,模型选
hand_yolov8n.pt。它会自动识别手、做 mask,再用更高分辨率 inpaint。默认参数能搞定 80% 的情况。 - ComfyUI:用
Hand Refiner节点或MeshGraphormercontrolnet 指定手部姿态。 - Midjourney:点 Vary (Region),把每只崩的手刷上,加 prompt
well-defined hand, five fingers, natural pose。 - Flux:在 ComfyUI 里用 Flux Fill + 手部 mask;原生 inpaint 路线目前还有限。
Step 4:模型死活修不好就换姿态
如果 prompt 死咬着”双手交叉”或”握麦克风”不放、连重画三遍都没修好,那就换姿态。“手插口袋”、“一手在身侧一手背后”、“叉腰”这些会大幅降低手指歧义。
Step 5:实在不行就后期
对于商业交付必须不能崩手的情况,承认 AI 手部还没完全解决。用 Photoshop / Affinity 的 Generative Fill 或修复画笔,或者从真实参考图里抠一只手贴上去。
怎么确认已经修好
- 每只手放到 100% 看,应该是五根手指 + 一根拇指与其余对生。
- 检查手腕到前臂的连接是否干净——断腕是第二常见的崩坏。
- 看指关节——每根手指三个弯,不是两个也不是四个。
- 检查指甲比例是否合理,没有”长在错的关节上”的现象。
- 找第二双眼睛看;自己对自己模型的失败是盲的。
如果还是没修好
- 放开分辨率限制,渲 1024×1536 或 1536×1024,给上半身更多像素。
- 试一个手部专门的 LoRA(Civitai 上有几个 “perfect hands” 系列)。
- 换底模——Flux Pro 和 Imagen 3 当前在紧凑姿态下手画得比 Midjourney v7 干净。
- 商业交付要接受:2025-2026 的 AI 手部生成还做不到 100% 可靠。把手部修复当作工作流的一步固定下来,别当成例外。
- 上 r/StableDiffusion 或 Discord 求助前,把崩图、完整 prompt、模型版本打包好。
预防建议
- 避免让手处在最小尺度或互相重叠的姿态。
- 准备一段”负面 prompt 块”,每次 SD / Flux 生成都粘进去。
- hero 图尽量用最大允许的宽高比生成再裁切。
- 任何有手露出的人像,固定加一遍手部 inpaint pass,把它当工作流而不是修复手段。
- 维护一个自己模型经常踩坑的姿态词黑名单,提前用安全替代词。
姿态风险速查
| 姿态 | 风险 |
|---|---|
| 手插口袋 | 低 |
| 手在身侧放松 | 低 |
| 一手叉腰、一手在身侧 | 低-中 |
| 双臂交叉 | 中 |
| 握手机或麦克风 | 高 |
| 双手交叉或祈祷 | 极高 |
| 手语动作 | 极高 |
| 双手环握小物件 | 极高 |
用例允许时,优先选风险更低的姿态。