You generate a portrait or full-body shot, the composition reads, the outfit reads, but the face is melted — eyes drift, teeth fuse, nose lands sideways. Most people immediately rewrite the prompt. That is usually the wrong fix. In 70% of distorted-face reports the prompt was fine; the face simply did not have enough pixels for the model to draw it coherently.
Common causes
Ordered by how often each one is the actual root cause.
1. Face occupies too few pixels (root cause in 70% of cases)
A model like SDXL, Flux, Midjourney v7, or Imagen 3 can only render a coherent face when the face region is at least roughly 256x256 pixels in the output. In a 1024x1024 full-body shot, the head is often 80-120 pixels tall. The model literally cannot fit two eyes, a nose, and a mouth into that area.
How to spot it: Open the output at 100% and measure the bounding box of the face. If it is less than 25% of the image’s shorter dimension, the face is undersized and that is your problem.
2. Mid-distance multi-character scenes
Two or three people in frame, each face occupying 5-8% of the image. The model splits its already-limited face budget across all of them and renders all of them poorly. Group shots are the hardest case for any current model.
3. Off-axis angle (extreme up, down, side)
The model has seen orders of magnitude more frontal and three-quarter face training data than direct-profile, top-down, or low-angle face data. Extreme angles push the model into low-data territory where it falls back on averaging, which produces the “melted” look.
How to spot it: Is the face mostly visible from a 0-30 degree angle off frontal? If yes, angle is not the issue. If pointing at the chin from below, or down at the top of the head, angle is the issue.
4. Stylized prompt fighting with realism
“Photorealistic portrait, painted in the style of Van Gogh, with watercolor texture” — three style modifiers fighting at the same time. The model averages them, and averaging usually destroys facial coherence first.
How to spot it: Count distinct style modifiers in your prompt. More than two and you are in fight territory.
5. Cheap / fast generation tier
Midjourney --draft, Flux Schnell, SDXL with steps < 20, Imagen “fast” tier — these skip iterations that would have refined the face.
6. Aspect ratio that crops away rendering budget
Generating at 1024x1024 when the subject is full-body wastes the horizontal pixels on background. A 1024x1536 (tall) crop gives the face 50% more vertical pixels.
Before you change anything
- Save the seed, full prompt, model, and tier of the image with the broken face.
- Decide whether you need the face in shot at all — for product or environment photography, sometimes cropping the head out is the real fix.
- Note whether other anatomy (hands, feet) is also breaking; if yes, the root cause is undersizing across the board, not faces specifically.
- Confirm you can reproduce the issue: regenerate the same prompt at 3-4 different seeds. If only 1 of 4 breaks, it is noise; if all 4 break, the prompt has a structural issue.
- Commit or back up the current prompt template before changing it.
Information to collect
- Full prompt and negative prompt, model name, seed, sampler, steps, aspect ratio.
- A crop of the broken face at ~512x512 with measurement of pixel area.
- Whether other faces in your recent history broke the same way (model-wide pattern) or just this one (prompt-specific).
- The intended use case (thumbnail, hero image, print) — determines how aggressive the fix needs to be.
Shortest path to fix
Ordered by ROI. Step 1 alone clears ~70% of distorted-face cases.
Step 1: Tighten the framing
Add explicit framing keywords that push the composition toward the face:
medium close-up portrait, head and shoulders in frame, face centered
or even tighter:
tight close-up portrait, face fills frame, sharp focus on eyes
For full-body shots where you cannot recompose, switch the aspect ratio to vertical:
- Midjourney:
--ar 2:3or--ar 4:5 - SDXL: 1024x1536 instead of 1024x1024
- Flux: 832x1216 instead of 1024x1024
More vertical pixels means the head — and the face — get rendered with more detail.
Step 2: Raise resolution + run high-res fix
- Midjourney: render at the base resolution, then Upscale (Subtle). For v7,
--quality 2if your plan allows. - SDXL (A1111): enable
Hires fixwith denoising strength 0.4-0.5, upscale to 1.5x. - SDXL (ComfyUI): use a two-pass workflow — generate at base, then upscale via Ultimate SD Upscale or a Latent Upscaler.
- Flux: render at 1024x1280 then run Flux Refine pass.
- Imagen 3: select “high quality” tier, not “fast.”
Step 3: Run a face-specific restoration pass
This is the highest-ROI step for any face that is still wrong after steps 1-2.
- SDXL / A1111: enable ADetailer with
face_yolov8n.ptmodel. Default settings handle 80% of cases automatically. Use denoise 0.4 to preserve identity, 0.6 to aggressively reshape. - ComfyUI: use the
Face Detailernode, or chainMediaPipe Face Mesh+Inpaintfor explicit face mask. - Midjourney: click Vary (Region), brush the face, prompt with
well-defined face, sharp eyes, natural skin texture. - Flux: use Flux Fill with a manual face mask in ComfyUI. Native Flux inpaint is limited; ComfyUI custom nodes are the working path.
- Photoshop / Affinity: Generative Fill the face region with a fresh prompt.
GFPGAN and CodeFormer are older but still effective for purely realistic faces; they sometimes over-smooth, so apply at 50-70% strength.
Step 4: Reduce style fight in the prompt
If your prompt has more than two style modifiers, cut to one or two. The order matters; lead with the photographic descriptor, then add style afterwards:
photorealistic portrait, soft window light, slight Van Gogh painterly background
is far safer than:
Van Gogh style photorealistic watercolor portrait
Step 5: Upgrade tier and / or switch model
If draft / fast / schnell still produces broken faces after the steps above, commit to the premium tier for the final render. If the model itself struggles (some models genuinely are weaker on faces), switch:
- For realistic portraits, Flux Pro and Imagen 3 currently produce the cleanest faces.
- For stylized portraits, Midjourney v7 with Vary (Region) is the safest path.
- For anime / illustration, Niji v7 or Pony Diffusion are stronger than SDXL base.
How to confirm the fix
- Zoom to 100% and check that both eyes are level, same size, and pointing the same direction.
- Verify the nose lands on the centerline between the eyes.
- Confirm teeth (if visible) are not fused into a single mass.
- Get a second pair of eyes — people are often blind to their own model’s failure modes.
- Regenerate 4 candidates at the fixed prompt; all four should pass the above checks.
If it still fails
- Drop the resolution even higher (1024x1536 or 1536x1024) and re-run the face restore pass.
- Use a face-specific LoRA or embedding (Civitai has dozens for SDXL portraits).
- Render at a tighter framing than you need, then composite the face into a wider scene in Photoshop.
- Try a fundamentally different model (Flux Pro and Imagen 3 are currently strongest on faces).
- Package the prompt, model, seed, and crop of the broken face before posting to r/StableDiffusion or a Discord help channel.
Prevention
- For any shot where the face matters, design framing so the face occupies at least 25-30% of the shorter image dimension.
- Build a “negative prompt block” snippet with face-specific terms (
deformed face, asymmetric eyes, melted features, malformed mouth) and paste it into every realistic portrait. - Standardize on vertical aspect ratios for portrait work (2:3 or 4:5) rather than square.
- Always run a face-specific inpaint pass on portraits — treat it as a workflow step, not a fix.
- Maintain a personal blacklist of style modifiers that historically break faces in your favorite model.