AI 图片对称姿势崩了:镜像修复流程

想要对称姿势却出了一边高一边低的歪图?这篇给出镜像修复流程:ControlNet 锁姿势、对崩的一半做 mask、必要时直接镜像合成。

你想要对称姿势——双臂平举、正面瑜伽体式、双手合十——结果模型给了你一张明显不对称的图。一肩高一肩低、眼睛偏出中线、两只手在不同高度。扩散模型没有硬对称先验,对称是它要从训练数据里”学”出来的,方差很大。修复不是”再 prompt 一次对称”,而是用 ControlNet 锁姿势、对崩的一半 mask 重画,或者直接镜像合成另一半。

常见原因

按命中率排序。

1. 没有结构性的姿势约束

光靠文字要对称,只给模型一个软提示。没有 ControlNet 姿势或参考图,模型从一堆”近似 T-pose”的分布里采样,绝大多数样本都不是完美对称的。

如何判断:只用了文字 prompt 吗?是的话,这就是根因。

2. 不对称的灯光 / 背景把姿势带偏

模型把整张图当成一个整体处理。你写了”晨光从镜头左侧打”,模型可能把姿势整体歪向光源,让被照亮的那一肩低一些、那只手更显眼。灯光意图压过了姿势意图。

3. 相机角度稍微偏轴

横滚或偏航 5-10 度就足以让”看起来”不对称。模型可能脑子里画的是对称姿势,只是投影出来歪了。

4. 头发 / 衣物和姿势打架

长发、飘逸裙摆、单肩包之类不对称配饰,会”允许”模型在姿势上破坏对称,以让这些附属看起来合理。

5. 多人对称构图

镜像舞者、双人瑜伽这类几乎从来出不干净,模型让两人互相对齐就很吃力。

6. prompt 里出现了”一侧”

“右手举起”、“左脚向前”——这些词直接强制了不对称。prompt 里有侧别词,这就是问题。

动手前先确认

  • 想清楚是不是非要像素级对称。编辑类近似对称就够了;产品包装或解剖参考必须精确。
  • 把出问题那张图的 seed、prompt、模型、档位存下来。
  • 同 prompt 4 个 seed。4 张都同方式崩,就是结构问题。
  • 审 prompt 里有没有侧别词(right、left、leading、trailing)。

需要收集的信息

  • 完整 prompt、模型、seed、sampler、步数、宽高比。
  • 量化不对称——眼睛、肩膀、手在 Y 轴上偏多少像素。
  • 是否用了 ControlNet 或参考图。
  • 灯光是对称还是有方向。
  • 用途——对称 logo、解剖图需要的精度比概念稿高得多。

一步步修复

按 ROI 排序。ControlNet 姿势是最关键的一步。

Step 1:用 ControlNet 姿势或参考图锁

最大幅度的动作是把软 prompt 换成硬姿势约束:

  • SDXL / A1111 / ComfyUI:加载 OpenPose ControlNet + 对称姿势骨架。骨架可以手画,也可以从参考图提取。
  • Midjourney:用 --cref 引用一张已经是对称姿势的图,--sw 100 严格遵循。
  • Flux:ComfyUI 里用 Flux ControlNet(Union 或 OpenPose 变体)。

要完美对称,先在矢量工具里画 OpenPose 骨架,对中线做镜像后再导入。

Step 2:把灯光中性化

把方向光换成对称光:

  • 差:side-light from camera left
  • 好:frontal soft light, even illumination from both sides

这能去掉一个常见的”偏向”压力。

Step 3:删掉侧别词

扫一遍 prompt,把任何暗示某一侧的词换成双侧用语:

  • “right hand raised” → “both hands raised”
  • “leading foot forward” → “feet together, parallel”
  • “head turned slightly” → “head facing camera directly”

Step 4:对崩的一半 mask 重画

构图锁死、只有一半歪了:

  • 看哪一半是对的(通常是模型先画好的那一半,或是没崩的那一边)。
  • 把崩的一半 mask 起来走 inpaint。
  • inpaint 的 prompt 写成和对的那一半一样的内容。

Step 5:直接镜像合成对的那一半

对”必须对称”的活儿的核选项:

  1. 把图开到 Photoshop / Affinity / GIMP。
  2. 沿中线把对的那一半剪下来。
  3. 复制、水平翻转、放到另一边。
  4. 用 Generative Fill 或羽化 mask 把中缝接起来。
  5. 处理中线附近的伪影。

像素级对称的保票。预留给产品、包装、参考类——对称就是交付承诺的活。

Step 6:换更强的模型

姿势遵循更好的模型:Flux Pro、Midjourney v7、Imagen 3。对称姿势活儿还在 SD 1.5 或老 Midjourney 上,模型本身就是瓶颈。

怎么确认已经修好

  • 在图上叠一条中线参考。两眼到中线距离应相等,两肩 Y 坐标应一致。
  • 在像素层面量两只手的位置——Y 坐标应在容差内相等。
  • 瑜伽和舞蹈姿势,检查关节角度——每只手肘弯曲角度应该一样。
  • 按最终交付尺寸打样或显示——缩略图上看不出的小不对称,全尺寸下会跳出来。

长期预防

  • 任何对称姿势的活,默认走 ControlNet 姿势或参考图,不要只靠 prompt。
  • 建一个对称 OpenPose 骨架库(T-pose、合十、双臂平展、正面站姿),反复用。
  • 对称主体默认用对称灯光 prompt。
  • 写 prompt 时避开侧别词。审稿时扫一遍。
  • 产品和包装类,最后一步默认镜像合成,不要相信单次生成。

常见坑

  • 相信 prompt 里写 “symmetric” 或 “mirrored” 就够了。基本不够。
  • 忘了头发、衣物、道具也能在姿势对的前提下打破对称。
  • 镜像合成时不处理中缝。中线一眼就能看出来。
  • 同 prompt 重摇 20 次追对称。4 次后就换 ControlNet。

FAQ

Q:模型为什么不能直接输出对称? A:扩散模型架构里没有对称先验。它从一个包含很多”近似对称”输出的分布里采样。ControlNet 加了文字 prompt 做不到的硬约束。

Q:纯 prompt 能不能拿到完美对称? A:很难。再强的模型,纯文字拿到完美对称大概是十分之一的概率。ControlNet 或镜像合成才是稳的路线。

Q:镜像合成出来都会自然吗? A:基本静态、正面光的姿势,会。复杂头发、布料、方向光的话,中缝可能需要手工修。

Q:那像头发偏分这种本来就不对称的特征怎么办? A:镜像合成会继承一侧的不对称。模型给的偏分会变成两侧都有或者两侧都没有。选哪一半镜像,就挑不对称细节更少的那侧。

相关阅读

标签: #ai-image #排查 #pose #controlnet