AI Image Unnatural Pose — Broken Limbs Fix

Arm bends backward, neck twists wrong. Use concrete action verbs, feed an OpenPose skeleton via ControlNet, and pull the camera back.

The character’s arm bends the wrong way at the elbow. The neck turns past a human range of motion. The hand is positioned at the hip but the wrist is broken. The pose is technically there, but it’s anatomically wrong in ways the brain registers immediately even if you can’t articulate why.

Pose problems usually come from one of three sources: the verb was too abstract (“standing”), there was no skeletal reference (ControlNet), or the framing was too tight so the model tried to compose limbs into a space it couldn’t fit them.

Common causes

Ordered by hit rate, highest first.

1. Abstract verbs like standing or sitting

a woman standing doesn’t tell the model where her arms are, where her weight is, what her hips are doing. It picks a default — which is often anatomically lazy (arms straight down, weight even, head forward).

How to spot it: your pose word is one of standing, sitting, lying down, posing. Add concrete details about limbs.

2. No pose reference

For complex poses, text alone is insufficient — there are infinite ways a body can kneel while reaching forward. Without an OpenPose skeleton or pose reference image, the model guesses.

How to spot it: you’re not using ControlNet OpenPose, Pose Reference, or --cref with a posed person.

3. Camera too close, limbs forced into frame

Close-up portrait + full-body pose description = the model crops limbs at weird angles to fit. Arms end mid-frame, hands disappear behind the head, etc.

How to spot it: tight framing (close-up / head shot) + you’re describing arms/hands/legs. Pull the camera back.

4. Multiple conflicting pose words

"hands on hips, arms crossed, holding a coffee cup"

That’s three mutually exclusive arm positions. The model averages and produces broken arms.

How to spot it: count distinct arm/hand actions in your prompt. >1 → conflict.

5. Action word the model doesn’t know

pickleball serve, yoga warrior 2 pose, kabuki kabuki pose — uncommon poses are under-represented in training. The model approximates and breaks.

How to spot it: pose word is sport-specific, art-form-specific, or culturally specific. Find a more generic equivalent or use a pose reference.

6. Model is weak on anatomy (Flux schnell, lighter SD checkpoints)

Some lighter checkpoints prioritize style over anatomy. They produce beautiful but anatomically loose results.

How to spot it: same prompt + same pose on a known anatomy-strong model (Juggernaut XL, Pony XL for full-body, RealVisXL) produces clean anatomy. Original model is the source.

Shortest path to fix

Step 1: Replace abstract verb with concrete action

Bad → Good:

BadGood
a woman standinga woman standing with arms crossed, weight on her right hip, head tilted slightly down
a man sittinga man sitting cross-legged on the floor, hands resting on knees, leaning forward slightly
posingleaning against a wall with one hand in pocket, other hand holding coffee, looking off camera left
runningmid-stride running, left foot forward and lifted, right arm forward and bent, looking ahead

Be explicit about: each arm, each leg, weight distribution, head direction, gaze.

Step 2: Feed an OpenPose skeleton via ControlNet

This is the single best fix:

# SDXL via A1111 / Forge / ComfyUI
1. Find or take a photo with the pose you want
2. Drop into ControlNet → OpenPose Editor → extract skeleton
3. Use OpenPose preprocessor + OpenPose model
4. Generate with your prompt + the skeleton

# Online tools
- Posemy.art — drag a 3D skeleton into the pose you want
- Open Pose Editor (online) — adjust 2D skeleton
- Both export PNG you can drop into ControlNet

ControlNet weight 0.8-1.0 for strict pose lock, 0.5-0.7 for loose.

Step 3: Pull the camera back

If pose looks broken in a tight crop, widen the frame:

# Replace
"close-up portrait" → "half body shot"
"head shot" → "medium shot, chest up"

# Or describe explicitly
"full body shot, framing head to feet"
"three quarter body, framing head to knees"

Gives the model space to compose limbs naturally.

Step 4: Switch to an anatomy-strong checkpoint

# SDXL — best anatomy
- Juggernaut XL v9+
- RealVisXL
- Pony Diffusion XL (especially good on full-body)
- Realism Engine SDXL

# Flux
- Flux dev (better than schnell on anatomy)
- + Anatomy LoRA from Civitai

Step 5: Negative-prompt anatomy errors (SD-family)

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: Use ADetailer / inpaint on broken zones

If 95% of the pose is fine, just inpaint the broken zone:

# A1111 / Forge ADetailer
- Auto-detect hands or body
- Inpaint with prompt about correct anatomy
- Strength: 0.4-0.6

# Manual inpaint
- Mask the broken limb
- Inpaint prompt: "anatomically correct arm, natural elbow bend"
- Denoise: 0.5-0.7

Prevention

  • Keep a personal pose dictionary — each named pose has a concrete 1-line description
  • For any non-trivial pose, default to ControlNet OpenPose instead of trying to describe it
  • Match camera framing to the pose: full pose → full-body shot, head detail → head shot
  • Use anatomy-strong base checkpoints for any pose-critical work (sports, dance, action)

Tags: #Image generation #Debug #Troubleshooting