人像挺好、姿势也对,然后视线移到手上——6 根手指、拇指长到手腕上、整只手糊成连指手套。即使到 2026 年中,手依然是扩散模型里仅次于牙齿的难点。修复几乎从来不是改 prompt,而是工作流:能不画就不画,必须画就给够像素,构图非要露出来就跑一遍手部专用 inpaint。
最快的修法:手不是主体的话,直接裁掉或藏起来(取景到胸口、手插口袋或背到身后)。必须露手就先给手部更多像素(竖比例、取景更紧、提高基础分辨率),剩下崩的部分用手部专用 inpaint 修:A1111 用 ADetailer 的 hand_yolov8n.pt、denoise 约 0.4;ComfyUI 用 MeshGraphormer Hand Refiner 节点;Midjourney 用 midjourney.com 上的 Editor。光是 Step 1 + Step 2 就能解决约 70% 的情况。
先判断你属于哪一类
对上你的症状,直接跳到对应步骤。
| 症状 | 最可能的原因 | 跳到 |
|---|---|---|
| 全身像里手很小、手指糊成一团 | 每只手的像素太少 | Step 2 |
| 手在拿 / 碰一个物体 | 手 + 物体的合成很难 | Step 4(inpaint) |
| 合影里好几只手都崩 | 手部预算被多只手平摊 | Step 1 或 Step 2 |
| 4 个 seed 里只有 1 个崩 | 是 seed 噪声,不是结构问题 | 重摇一次,不行再 Step 4 |
| 所有部位都崩(脚、脸、手) | 整体像素不足 / 模型弱 | Step 2,再 Step 5 |
| 整张几乎完美,只有一只手崩 | 局部生成误差 | Step 4(inpaint) |
| 手势必须精确但姿势画错了 | 缺少结构约束 | ControlNet(见 FAQ) |
常见原因
按命中率排序。
1. 手占的像素太少
1024x1536 的全身像里,每只手大约 60-90 像素高。模型很难把五根分明的手指塞进去。每只手低于约 128 像素,几乎必崩。
如何判断:把一只手 100% 裁出来量。包围盒小于 100x100 像素,就是手太小。
2. 手在动作里或有遮挡
“拿着咖啡杯”、“挥手”、“弹吉他”——模型要同时合成手和物体。关节复杂的物体(乐器、工具、武器)最难;圆润光滑的物体(杯子、球)相对好。
3. 画面里出现多只手
握手、合影里的露手、搭肩这类姿势。模型把本就有限的手部预算平摊到每只手上。
4. 手的角度极端
侧看的手、从指节正上方俯瞰、纯手心正对镜头(强透视收缩)——这些角度训练数据少。
5. 风格化与写实打架
“毕加索风格的写实手”——模型在风格之间取平均,手是最先垮的部分,因为训练信号最弱。
6. 模型旧 / 步数低
SD 1.5 的手是出了名的差,SDXL 明显改善。截至 2026 年 6 月,手部最强的是 FLUX.1 Pro / 1.1 Pro、Midjourney V8.1 和 Google Imagen 4;开源权重里 FLUX.1 [dev] 解剖结构领先,SDXL 则保留着最大的 LoRA / ControlNet 生态。SDXL 步数低于 20 也会跳过原本能精修手指几何的迭代。
动手前先确认
- 想清楚手到底需不需要露出来——裁掉是最快的修复。
- 把出问题那张图的 seed、prompt、模型、档位都存下来。
- 同 prompt 4 个 seed 出 4 张。4 张都崩是结构问题;1 张崩是噪声。
- 看其他部位(脚、脸)是不是也崩。都崩说明整体像素不足,不是手特有的问题。
需要收集的信息
- 完整 prompt、负面 prompt、模型、seed、sampler、步数、宽高比。
- 把崩掉的手 100% 裁出来并量像素。
- 手是否在和某个物体交互。
- 用途——印刷产品 hero 对准确度的要求远高于博客头图。
一步步修复
按 ROI 排序。Step 1 + Step 2 能解决约 70% 的情况。
Step 1:能不画就别画
最便宜的修复是构图。手不是叙事重点的话:
- 取景到胸口,不到腰,手不入画。
- 手放背后、插口袋、拿到画面外。
- 用道具遮(用手背端杯子朝向镜头那侧;袖口遮住指节)。
商业人像里”手不入画或插口袋”几乎是默认交付方案。
Step 2:给手部区域更多像素
必须露手:
- 改成竖比例,让人物有更多纵向像素。
- 取景更紧——半身代替全身。
- 提高基础分辨率。Flux 用
1024x1280,SDXL 用1024x1536,之后再放大;别在很小的尺寸上生成手、指望放大器凭空补出手指。
Step 3:加手部专用负面 prompt
SDXL 类模型,一段手部负面通常能帮上忙(Flux 和 Midjourney 用负面 prompt 的方式不同,这一步对它们跳过):
extra fingers, missing fingers, fused fingers, malformed hand,
mutated hand, six fingers, deformed hand, extra thumb,
wrong hand anatomy
救不了一只完全崩的手,但能在群体层面降低崩率。
Step 4:跑一遍手部专用 inpaint
走完 1-3 还是不对的手,这一步收益最高。inpaint 时用聚焦在手上的小 prompt,别用整张图的完整 prompt。
- A1111 / SDXL:开 ADetailer,检测模型选
hand_yolov8n.pt。denoise 从 0.4 起(可用区间约 0.35-0.45);手还不对再往 0.5-0.6 加。再高就会把手腕、前臂也一起改了。两遍轻的好过一遍狠的。 - ComfyUI:当前最强是 MeshGraphormer Hand Refiner(
comfyui_controlnet_aux里的MeshGraphormer-DepthMapPreprocessor节点)。它会重建一张 3D 手部深度图加一个精确的手部 mask,再用 depth ControlNet 做 inpaint,让手指按正确几何重生。更简单的替代:用Hand Detailer/ FaceDetailer 类节点指向hand_yolov8n.pt。 - Midjourney:在 midjourney.com 的 Editor 里打开图(截至 2026 年 6 月,Discord 上 V8.1 图还用不了 Vary / Region,要用网页端 Editor inpaint),只圈手部,重新 prompt
well-defined hand, five fingers, natural finger anatomy, sharp focus。注意:对 HD 图用 Editor 会把结果降回 SD,所以修手要放在最终 HD 放大之前做。 - Flux:ComfyUI 里用 Flux Fill + 手动手部 mask,或用 FLUX.1 Kontext 给自然语言指令,比如 “fix the right hand to have five normal fingers”。
- Photoshop:对手部 Generative Fill,配聚焦的 prompt。
Step 5:换更强的模型
模型本身就弱,换一个更强的重画(截至 2026 年 6 月):
- FLUX.1 Pro / 1.1 Pro:当前写实手部最强;要编辑已有图就用 FLUX.1 Kontext。
- Midjourney V8.1:2026 年 6 月 10 日起为默认版本;修手走网页端 Editor。
- Google Imagen 4:解剖错误很少,柔光 / 编辑风格下尤好;想用对话方式改手可以用 Gemini 里的 Nano Banana。
- 任何需要露手的活避免用 SD 1.5,本地改用 SDXL 或 FLUX.1 [dev]。
怎么确认已经修好
- 数每只可见手的手指。每只 5 根,拇指位置正确。
- 关节方向。手指应该朝手心方向弯,不是反向。
- 看手指有没有粘连。每根之间应有可见的阴影分界。
- 每只手都缩放到 100% 看——绝不能只看缩略图。
- 找第二双眼睛看一眼。自己看自己的渲染会盲。
- 同 prompt 出 4 张候选,4 张都过”数 + 弯曲”检查。
长期预防
- 任何系列人像,构图阶段默认遮手,除非手就是主题。
- 准备一段手部专用负面 prompt 模板,写实 SDXL 人像每次都粘。
- 任何露手的人像都跑一遍手部 inpaint——把它当工作流的一步,而不是救急手段。
- 手关键的活默认用 FLUX.1 Pro 或 Midjourney V8.1。
- 维护一份自己模型常踩雷的姿势 / 道具黑名单。
常见坑
- 同 prompt 重摇 20 次等出好手。4 次后就换工作流。
- 只看缩略图。手必须 100% 缩放检查。
- ADetailer denoise 太高,会把手腕、前臂也一起改了,不只是手指。
- 在正向 prompt 里加 “perfect hands” 期待奇迹,单独写几乎没用。
- 在 Midjourney 里等到最终 HD 放大之后才修手,结果整张被降回 SD。
FAQ
Q:为什么手比脸难那么多? A:脸有很强的对称先验——两眼一鼻一嘴,位置固定。手姿势可变、关节可动、互相遮挡,每只手 14 个手指关节。训练数据里清晰正脸远比清晰摆好的手多。
Q:新模型能不能彻底解决? A:在快速变好。截至 2026 年 6 月,FLUX.1 Pro、Midjourney V8.1、Imagen 4 都比 2023 年的模型明显强,但独立测试里仍有相当比例的图带手部错误。未来好几代模型内,还是要把修手放在 inpaint 这一步来做。
Q:在正向 prompt 里加 “five fingers” 有没有用? A:边际效果。负面 prompt(SD 类模型)加一遍专用 inpaint 才是真正干活的部分。
Q:哪个 inpaint 工具修手最稳?
A:ComfyUI 里是 MeshGraphormer Hand Refiner,因为它重建了一只 3D 手、用其深度图来约束重生。A1111 里是 ADetailer + hand_yolov8n.pt、denoise 约 0.4。Midjourney 里是网页端 Editor。
Q:能不能用手部姿势 ControlNet? A:可以。SDXL 上有 DWPose-Hand 和 OpenPose-Hand ControlNet 能把手强制成特定姿势,MeshGraphormer 的 depth ControlNet 则能修一只已经崩的手。手关键的活这是最稳的路线,代价是搭建工作流的成本。
相关阅读
外部参考:Midjourney Editor 文档、ComfyUI ControlNet Aux(MeshGraphormer 节点)