MeshGraphormer-DepthMapPreprocessor(手の3Dメッシュ→深度マップ+マスク自動生成)→ControlNet depthへ流すのが2026の本命[1][2]。sagging breasts / breasts on table / skindentation 等で「押される・流れる・食い込む」を明示。weightは1.2まで(盛りすぎ=fry[14])。face_yolov8m)→HandDetailer(hand_yolov8s)→残る結合部だけ Manual inpaint。Impact PackのSEGSで自動化[3][4]。xinsir/controlnet-union-sdxl-1.0(promax版)でopenpose/depth/canny等6類を1モデルで賄う[10][11]。full禁止(MEMORY量産7点チェック準拠)。修正の前に「なぜ崩れるか」を1分で理解すると、対策の選び方を間違えない。
| 破綻の根本原因 | 何が起こるか | 効く対策(章) |
|---|---|---|
| 学習分布の偏り | 正常位など定番は大量、背面騎乗位・極端な短縮法は学習例が桁違いに少ない→潜在空間が「知らない」 | ControlNetで外部から形を強制(3章/6章) |
| 手は自由度が高い | 指5本×関節=高自由度。テキスト条件だけでは指数・向きが安定しない | MeshGraphormer(4章) |
| 遮蔽(occlusion) | 2体が絡むと腕・脚・結合部が重なり、隠れた部分の解剖学的一貫性が崩れる | DWPose+結合部Manual inpaint(4章/8章) |
| 短縮法(foreshortening) | あおり/俯瞰で奥行き方向に圧縮された四肢の比率が学習されておらず破綻 | Depth ControlNet+3D下絵(5章) |
| attention減衰 | プロンプト後方のポーズ/肉感タグは重みが落ち効かない[14] | タグ順序最適化(3章/7章) |
SDXL/Illustrious系はDanbooruタグで学習されているので[14]、体位はbooru正式タグ(半角スペース or アンダースコア)で指定する。タグ順序は 1girl, 1boy → 体位タグ → カメラ/アングル → 肉感 → 背景 の順(前方ほど効く[14])。
1girl, 1boy, reverse cowgirl position, girl on top, from behind, ass focus, straddling, sex from behind, sitting on lap, arched back, looking back, detailed hands
from behind + 俯瞰なら from above、あおりなら from below。NEG: extra arms, extra hands, fused fingers, bad anatomy, twisted torso, disconnected limbs
1girl, 1boy, prone bone, lying, on stomach, face down ass up, from behind, top-down bottom-up, sex from behind, hands on bed, breasts squeezed against bed, ass focus
from above + foreshortening(頭→尻が奥行き圧縮)。twisted torso。NEG: twisted torso, extra legs, fused legs, bad anatomy, floating limbs
1girl, 1boy, sitting, straddling, face to face, hetero, girl on top, eye contact, hugging, arms around neck, spread legs, deep penetration, from side
from side が安定(前後の重なりが少ない)。dutch angle で動き。NEG: extra limbs, fused bodies, conjoined, bad anatomy, deformed legs, missing arm
1girl, (from below:1.1), foreshortening, perspective, spread legs, pov, looking at viewer, wide angle --- または俯瞰 --- 1girl, (from above:1.1), foreshortening, lying, perspective, pov
foreshortening, dutch angle, from below, from above, wide angle lens, fisheye を併用すると極端な角度を理解させやすい[7]。| 体位 | 主ControlNet | 副 | 主カメラタグ | 後工程必須 |
|---|---|---|---|---|
| 背面騎乗位 | Depth 0.85 | DWPose 0.6 | from behind / from above | 手 |
| 寝バック | Depth 0.90 | — | from above + foreshortening | 手・胴ねじれ確認 |
| 対面座位 | DWPose | Depth 0.5 | from side + dutch angle | 脚交差・結合部inpaint |
| あおり/俯瞰 | Depth 0.85-0.95 | DWPose 0.5 | from below / from above | 圧縮四肢確認 |
MeshGraphormer-DepthMapPreprocessor(comfyui_controlnet_aux同梱)は、画像内の手を検出し手の3Dメッシュから深度マップと正確なマスクを自動生成する[1]。この深度マップをControlNet(depth)へ流し、マスク部分だけを再生成すると指が物理的に正しく整う[2]。
| パラメータ | 既定 | 意味 / CC1の設定指針 |
|---|---|---|
detect_thr | 0.6 | 手検出の感度。手を検出できない時は0.4〜0.5に下げる(低いほど高感度)[1] |
presence_thr | 0.6 | 存在信頼度。誤検出が多ければ上げる[1] |
mask_bbox_padding | — | 手bboxの周囲余白px。20〜30推奨(手首/縁の切れ防止)[1] |
resolution | — | 深度マップ解像度。0でリサイズ無効、高いほど詳細[1] |
出力 depth_maps | — | 手領域のグレースケール深度→ControlNet depthへ[1] |
出力 masks | — | 手領域のバイナリマスク→inpaint対象に[1] |
[Load Image (生成済)]
└─> [MeshGraphormer-DepthMapPreprocessor] detect_thr=0.6, mask_bbox_padding=25
├─ depth_maps ─> [Apply ControlNet] (model = xinsir union depth, strength 0.8, end_percent 0.9)
└─ masks ──────> [Set Latent Noise Mask] / [InpaintModelConditioning]
└─> [KSampler] denoise 0.55〜0.7(手だけ作り直す)
└─> [VAE Decode] ─> 手だけ差し替わった画像
MeshGraphormer + ImpactDetector-DepthMapPreprocessor はImpact Packのbboxで先に手を検出してから精度高くメッシュ化できる[15]。検出漏れが多い難所体位ではこちらが安定。Impact Packの検出器は bbox/hand_yolov8s で手を、bbox/face_yolov8m で顔を検出する[4]。検出結果はSEGS(マスク/bbox/crop/confidence/labelを含むデータ形式)として返り[4]、Detailerが各領域を切り出して高解像再生成する。
[Image]
└> [UltralyticsDetectorProvider] model=bbox/hand_yolov8s
└> [BBOX Detector (SEGS)] threshold 0.5
└> [DetailerForEach(SEGS)] guide_size 256, denoise 0.45〜0.55, feather 5
(positive: "detailed hands, five fingers, anatomically correct")
(negative: "extra digits, fused fingers, mutated hands, missing fingers")
└> 全ての手を一括で作り直し
SAMDetectorでシルエットマスクを生成すると、手の輪郭沿いに正確に切れる[4]。背景を巻き込みたくない時に有効。2体が絡む結合部や、相手の体を掴む手はDetailerの自動マスクでは精度不足。手動マスク+Differential Diffusionで境界を自然に溶かす[6]。Differential Diffusionはマスクノイズと背景latentを数学的に橋渡しし、専用inpaintモデル無しでも継ぎ目のないinpaintを実現する[6]。
[生成済Image] + [手動マスク or SegmentAnythingUltra V2 (sam_vit_h)] └> [GrowMask] expand 30px ← マスク縁を広げ継ぎ目を消す[5] └> [DifferentialDiffusion] (modelに適用) [6] └> [InpaintModelConditioning] (positive/negative/maskを通す) [6] └> [KSampler] denoise 0.6〜0.85 └> [Detail Daemon] でディテール注入(任意) [5] └> [InpaintStitch] bislerpで元画像へ合成 [5]
positive(マスク内): a perfect hand, five fingers, gripping, holding hip, detailed
negative: mutated, missing fingers, extra digits, fused fingers, seamless, bad anatomy
テストの定説:複雑な構図ではDepth ControlNetが最も信頼できる。OpenPoseは人体骨格には強いが、建築的な奥行きや非人体・極端な遠近では完全に失敗する。Depthは骨格でなく空間関係を保持するためこれらを扱える[7]。
foreshortening, perspective, dutch angle, from below, from above, wide angle lens, fisheye, dynamic angle, pov
これらは「複雑な角度構図を理解させる」キーワードとして実際に使われている[7]。ただしプロンプトだけでは安定しないので必ずDepthと併用。
キャラのポーズと環境の奥行きを両方制御したい時は、キャラにOpenPose(DWPose)+環境/全体にDepthを併用するのが定石[7][8]。難所体位なら「2体の骨格=DWPose / 前後の重なり=Depth」。
DepthAnything/Zoe Depth プリプロセッサでDepth抽出、同時にDWPose Estimatorでポーズ抽出(顔・手込みで抽出可[9])。0.85 / start_percent 0.0 / end_percent 0.75〜0.85。end_percentを早めに切ると後半でモデルが質感を自由に作れる[8]。| 用途 | モデル / ノード | 入手 |
|---|---|---|
| 万能(推奨) | xinsir/controlnet-union-sdxl-1.0(promax版)。openpose/depth/canny/scribble/normal/segment の6類を1モデルで[10][11] | HF: xinsir / brad-twinkl |
| ポーズ専用 | xinsir/controlnet-openpose-sdxl-1.0[16] | HF |
| ポーズ抽出 | DWPose Estimator(comfyui_controlnet_aux)。体+手+顔同時、多人数に強い[9] | controlnet_aux |
| 深度抽出 | DepthAnything V2 Preprocessor / Zoe-DepthMapPreprocessor | controlnet_aux |
0.7〜0.9(ポーズを正確に=上げる、AI自由度=下げる)[8][9]。0.7〜0.85で早めに切ると質感・肌が自然に。固めたい時だけ0.9以上。「重力で変形している」ことを明示すると一気にプロっぽくなる。SDXL/Illustriousはbooruタグで肉感を理解する[14]。
large breasts / huge breasts, sagging breasts, hanging breasts, ← 立位・前傾で垂れる breasts on table, breasts squeezed, pressed against glass, ← 押し潰れ breasts apart, ← 寝そべりで横に流れる nipples, areola, jiggling
breasts squeezed against bed/背面騎乗あおり=hanging breasts/机に押し付け=breasts on table。huge ass, ass focus, thick thighs, plump, soft, skindentation, ← 衣装/手の食い込み ass grab, grabbing own ass, jiggling, flat stomach / toned / abs, navel ← 腹の張り
(tag:1.1〜1.2) まで。1.3以上を積むと条件ベクトル過大でネオン色破綻(fry)[14](MEMORY既出事案)。盛るのは数個だけ。NEG: bad anatomy, deformed breasts, extra nipples, asymmetrical (※左右差が欲しい時は外す)
Impact Packは Detector→Detailer→Upscaler→Pipe で画像を強化する[3]。検出はSEGS(mask/bbox/crop/confidence/label/controlnet情報を含む統合形式)で受け渡す[4]。下が標準の直列パイプライン。
[Base生成 (ControlNet付き)] │ ▼ [FaceDetailer] model: bbox/face_yolov8m denoise 0.3〜0.5 feather 5 │ (顔・目・口を高解像で作り直し) ▼ [HandDetailer = DetailerForEach + hand_yolov8s] denoise 0.45〜0.55 │ (検出した全部の手を一括修正) ▼ [判定: 結合部/絡む手が残るか? 目視] │ YES ─> [Manual inpaint: SAM→GrowMask30→DifferentialDiffusion→InpaintModelConditioning→KSampler 0.5] │ NO ─> ▼ [Hires / Upscale] (USDU 等で1.5〜2倍) ▼ [最終smoke目視]
| 工程 | 検出器/ノード | denoise | 役割 |
|---|---|---|---|
| 顔 | FaceDetailer + face_yolov8m | 0.3〜0.5 | 顔・瞳・あえぎ口の精度[4] |
| 手(自動) | DetailerForEach + hand_yolov8s | 0.45〜0.55 | 独立した手を一括修正[4] |
| 手(物理) | MeshGraphormer→CN depth | 0.55〜0.7 | 指の構造そのものを作り直す[1] |
| 結合部 | SAM→DiffDiff inpaint | 0.5〜0.85 | 絡み/接触部を継ぎ目なく整える[6] |
waiIllustriousSDXL_v160、cfg 4.0前後(Illustrious系はcfg6でfry[14])。DepthAnything+DWPose Estimatorで抽出。定番体位はタグだけでOK。xinsir unionにDepth(0.85)+DWPose(0.5)入力。end_percent 0.8。full量産。.json保存。難所体位ごとにDepth/Pose strengthだけ差し替えれば使い回せる。MAX_Q=4+メモリ番人常駐(MEMORY既出)で量産。(detailed hands:1.4)等でネオン破綻[14]。手はweightでなくMeshGraphormerで直す。detect_thrを0.4〜0.5へ下げる[1]。それでもダメならExternal Detector版[15]。本DRは「難所体位×自動破綻修正パイプライン特化」。以下の既存DRと役割分担して併読すると最短。
DR_トッププロ_手指と人体破綻の潰し方2026_2026-06-01.html(手指の基礎理論・NEG)DR_顔手指破綻リペア完全実践_2026-06-09.html / DR_手指破綻完全修正ガイド_2026-06-09.html(リペア実践)DR_ControlNet体位ポーズ制御完全ガイド_2026-06-09.html / DR_体位構図ControlNet制御実践_2026-06-09.html(CN体位基礎)DR_AIエロ漫画背景パース空間演出_2026-06-09.html(背景側のパース)DR_FaceDetailer_HandDetailer直列ノード2026_2026-06-01.html(Detailer直列の基本配線)DR_body_pose_action_drawing_2026-06-02.html(手描き補正・アタリ=クリスタ側)DR_マネキン体位集_体位カタログ完全版_2026-06-07.html(3D下絵の供給源として流用)DR_inpaint局部接触修正手順2026_2026-06-01.html(結合部inpaintの詳細)| 週 | やること | 完了条件 |
|---|---|---|
| Week1 | xinsir union DL・MeshGraphormer/DWPose/Impact Pack導入確認・手単体修正テスト | 崩れた手を1枚MeshGraphormerで直せる |
| Week2 | 難所4体位テンプレ確定(3章タグ+CN strength値を.json化) | 4体位各2枚を破綻なく出せる |
| Week3 | FaceDetailer→HandDetailer→結合部inpaintの自動パイプライン1本化 | ワンクリックで顔・手まで仕上がる |
| Week4 | 量産(メモリ番人常駐・MAX_Q4・smoke目視ゲート) | 1作分のCGを破綻率10%以下で量産 |