Look at the image: the subject’s face is lit from the left, but the sun in the background is clearly on the right. The shadow under their chin points one direction, the shadow on the wall points another. Your brain reads this as “wrong” even before you can name what’s wrong — humans are extremely sensitive to lighting consistency.
This happens when the prompt names lighting in conflicting ways, when a style LoRA bakes in fixed lighting that fights yours, or when “golden hour + studio lit + dramatic shadows” all get crammed into one sentence.
Common causes
Ordered by hit rate, highest first.
1. Multiple light directions in the same prompt
"portrait lit from the left, golden hour sun behind subject, dramatic side light from right, studio softbox key light"
You’ve just told the model “light comes from 4 directions.” It can’t satisfy all four, so it averages — and the result has light from everywhere.
How to spot it: scan your prompt for words like left, right, behind, front, top, bottom near light-related terms. If you have more than one direction, you have a conflict.
2. Conflicting time-of-day or weather cues
"golden hour, overcast, dramatic sunlight, soft diffused, night neon"
Each of these has implicit light direction and quality. Golden hour = warm low-angle. Overcast = soft no-direction. Night neon = colorful point sources. Mixing them confuses the model.
How to spot it: look for multiple time/weather words in the prompt. Pick one.
3. Style LoRA bakes in lighting that fights your prompt
Many style LoRAs (especially anime, “cinematic,” fashion-editorial) are trained on images with consistent lighting. The LoRA tries to impose its trained lighting; your prompt fights it. Result: half-LoRA, half-prompt.
How to spot it: same prompt with LoRA off looks consistent; with LoRA on it conflicts. The LoRA is the source.
4. Reference image lighting disagrees with prompt
Img2img / IP-Adapter / --cref with a reference image that has different lighting from what you describe in text. The model partially honors both → conflict.
How to spot it: drop the reference, regenerate text-only. If lighting becomes coherent, the reference is the problem.
5. No light source described at all
When you don’t describe lighting, the model picks one — and if your prompt has multiple environments hinted (e.g., cinematic portrait at home, sunset outside the window, lamp on desk), the model invents conflicting sources to “make sense” of all the environments.
How to spot it: prompt has no explicit light direction or quality, AND mentions multiple environment elements.
Shortest path to fix
Step 1: Pin ONE key light using cinematography vocabulary
Replace adjective-soup with a precise cinematography spec: direction + quality + time/source + temperature.
Bad → Good:
| Bad (adjective soup) | Good (cinematography spec) |
|---|---|
golden hour, dramatic, side lit, cinematic | rim light from camera left, low-angle golden hour sun (5pm), warm 3200K, soft shadow falloff |
studio portrait, beautiful lighting | single softbox key light at 45° camera right, fill card on left at -1 stop, no rim |
moody, cinematic, dramatic | single hard light from camera left, motivated by window, deep shadow on shadow side, 5600K daylight |
Cinematography terms to use:
- Direction:
from camera left,from camera right,from above,from behind,front-lit - Quality:
hard light,soft diffused,dappled,direct sunlight,bounced fill - Source:
golden hour sun,window light,softbox,practical lamp,neon signs - Temperature:
3200K tungsten warm,5600K daylight neutral,2200K candle warm
Step 2: Pick one time of day, then commit
Don’t write golden hour overcast neon dawn — pick one:
golden hour→ warm + low + directionalovercast→ soft + no direction + coolmidday sun→ hard + top + neutralnight urban neon→ multiple cool point sourcesstudio→ controlled, choose softbox or hard
Step 3: Reduce LoRA / style weight when it conflicts
If a style LoRA bakes in fixed lighting:
# A1111 / Forge syntax
<lora:my_style:0.5> # was 0.9 — drop to 0.5
# ComfyUI
LoRA loader → strength 0.5
0.4–0.6 is usually enough to keep the style flavor without overriding lighting.
Step 4: Negative prompt the conflict (SD-family)
conflicting lighting, mixed shadows, multiple light sources,
inconsistent shadow direction, multiple sun positions,
contradictory lighting, ambiguous light source
Step 5: Use ControlNet Depth/Normal to enforce shadow direction
For high-control work, generate a depth/normal map of the lighting setup you want and use ControlNet to enforce it:
# ComfyUI
- ControlNet Depth or Normal-from-image
- Provide a 3D render or sample photo with the lighting you want
- Strength: 0.5–0.7
Step 6: Inpaint the conflict away
If 90% of the image is fine but one zone has wrong-direction light:
- Mask the offending zone (e.g., the wall shadow pointing wrong)
- Inpaint with prompt that explicitly states the correct direction
- Denoise:
0.5–0.7to preserve surrounding context
Prevention
- Always describe one key light first; use fill / rim words only after
- Use cinematography vocabulary (
rim light from camera left, 5600K) instead of adjectives (dramatic lighting) - Keep a saved “lighting preset” snippet you can paste in for common moods (golden hour, overcast, studio softbox, night neon)
- When using a style LoRA, test the LoRA’s default lighting first and write your prompt to match it instead of fight it