AI Image Shadows Going the Wrong Way: 5 Causes and Fix

Shadows oppose the stated light source or two lights fight each other. Cause is the model averaging lighting cues. Fix with explicit direction and reference.

You prompt sunlight from the left, long shadow falling right and the model gives you sunlight from the left but the shadow also runs to the left. Or you ask for one strong key light and get two equally strong rim lights from opposite sides. The eye notices this instantly — the scene feels wrong even if you can’t name why. This happens because the model averages lighting cues across its training data: many photos have soft, multi-directional studio lighting, so single-direction lighting is statistically rare.

The fix is to specify direction explicitly using physical photography terms, then anchor with a reference image via IP-Adapter or Midjourney --sref if the prompt alone won’t lock it.

Common causes

Ordered by hit rate, highest first.

1. Light direction described in vague terms

bright lighting, dramatic lighting, cinematic lighting are all directionless. The model has nothing to anchor on, so it averages — and the average is “softbox from the front” or “ambient daylight.”

How to spot it: scan your prompt for direction words. If you don’t see from the left, key light upper right, backlit, etc., the prompt is directionless.

2. Conflicting cues in the prompt

You say sunset lighting from behind, golden hour glow and then add studio lighting, soft fill. These fight. The model resolves the fight by picking the more common one in its training data (usually studio).

How to spot it: search the prompt for two different lighting descriptors. If both sunset and studio appear, you have a conflict.

3. No physical-direction vocabulary

The model responds well to photography vocabulary: Rembrandt lighting, loop lighting, split lighting, rim light from camera left, 45-degree backlight. If you only use everyday English, it cannot place the light source.

How to spot it: prompt lacks any photography-school lighting term.

4. Multiple light sources mentioned without hierarchy

key light, fill light, rim light all listed at equal weight produces three equal lights, which looks unnatural. Real photography has one dominant key and weaker fills.

How to spot it: 2+ light sources in the prompt with no relative intensity stated.

5. The model has a strong default lighting bias

Flux dev defaults to soft front-lit. SDXL defaults to flat overcast. Midjourney v6+ defaults to cinematic but often warped. None of them will commit to a single hard light without explicit pushing.

How to spot it: same prompt across two models produces similar lighting failure — that’s the model defaults dominating.

Shortest path to fix

Step 1: State direction explicitly with one dominant key

Replace vague lighting language with concrete direction + intensity:

hard key light from upper-left at 45 degrees, single light source,
soft ambient fill 1/4 strength, shadows fall down and to the right,
long cast shadow, dramatic contrast, no rim light

The key phrase is single light source — it tells the model to commit to one dominant direction.

Step 2: Use photography-school lighting names

These are highly trained in the data:

# Specific named patterns
Rembrandt lighting (triangle of light on shadow-side cheek)
loop lighting (small nose shadow, looped toward mouth corner)
split lighting (half face lit, half in shadow)
butterfly lighting (key light directly above camera)
rim lighting from behind, separating subject from background

Drop one of these in instead of trying to describe geometry yourself.

Step 3: Anchor with a reference photo

When text alone leaves doubt, attach a reference:

  • Midjourney: --sref [URL of a photo with the exact lighting you want] --sw 100
  • SDXL / Flux: IP-Adapter with style_weight=0.7 on a reference photo with clean directional lighting
  • ComfyUI: IP-Adapter Plus with weight 0.65 and “weight type: style transfer”

Pick a reference where the lighting is obviously single-source, not multi-source. Black-and-white classical portraits are often the cleanest references because the lighting reads cleanly without color noise.

Step 4: Negative-prompt the fights (SD-family)

If you keep getting double lighting, add to negative:

multiple light sources, two key lights, ring light, softbox lighting,
flat lighting, ambient overhead light, conflicting shadows,
shadows going in different directions

Keep weights normal — going above 1.3 distorts the image.

Step 5: Render lighting first, subject second

For commercial work where shadow direction must be exact:

  1. Generate a simple gray-tone “lighting study” of just the geometry with hard directional light first
  2. Use that as a ControlNet depth or normal reference
  3. Regenerate with the actual subject prompt and ControlNet at weight 0.8

This isolates the lighting decision from the subject decision.

Prevention

  • Maintain a short list of 5-10 lighting-direction phrases (Rembrandt, 45 degree key, etc.) you know work reliably
  • Always include single light source or dominant key light when you want one direction
  • Save 2-3 reference photos with clean directional lighting in your IP-Adapter / --sref library
  • Render small test thumbnails to check lighting before generating final high-res
  • Cross-check shadow direction by squinting at the thumbnail — if shadows visibly disagree with the stated source, fix at prompt level, not in post

Tags: #ai-image #Troubleshooting #lighting #ip-adapter