TL;DR: Reflections are the fastest way to spot an AI image: a mirror showing the wrong angle, a metal surface with a flat white highlight instead of its own color, a window reflecting nothing at all. Naming what a reflection actually shows, and how sharp or soft it is, fixes most of that in glass, metal, water and mirrors alike.
One thing before any of this: Prompt Architects writes the prompt, it doesn't render the picture. Every prompt below is text to paste into whichever image model you already use.
Metal and glass have their own page for material behavior, what a surface does to light in general. This one is scoped narrower and covers reflections as a scene element: mirrors, windows, wet pavement, sunglasses and the specular highlights that sell a surface as photographed rather than generated. For the underlying physics vocabulary (specular, diffuse, transmission, Fresnel), see material and texture prompting for metal, glass, fabric and skin, which this post leaves entirely to that page.
Why Are Reflections the Hardest Detail to Get Right in an AI Image?
Because a reflection is really two images that have to agree with each other at once: the real scene, and a flipped, physically consistent echo of it. A diffusion model doesn't reason about the room's geometry to work out what a mirror should show; it pattern-matches on what reflections usually look like in the photos it trained on. That gap is often the first thing a viewer's eye catches, even in a shot where everything else looks convincing.
The usual failures are specific and nameable rather than random: a mirror reflecting a different expression or angle than the person standing in front of it, a shop window reflecting a street that doesn't match what's actually behind the camera, a puddle reflecting a sky the rest of the frame doesn't show. None of that is a documented vendor limitation stated in so many words; it's a pattern visible across enough generations that it's worth naming directly in a prompt rather than assuming the model will infer it.
One place a vendor does treat a reflection as its own distinct thing, not just "shiny," is Black Forest Labs' troubleshooting guidance for its object-removal tool. Its guide for reconstructing what's left behind after an object is erased instructs: "Reconstruction looks off — verify the mask covers the entire object including shadows or reflections you want gone" (docs.bfl.ml/flux_tools/flux_erase, accessed September 2026). That's a vendor acknowledging a reflection can persist as a leftover artifact separate from the object that cast it, which is the same underlying idea that makes a reflection worth naming explicitly when you want one to appear, not just when you want one gone.
What Should a Mirror or Window Actually Show in an AI Image?
Name the content of the reflection directly, since leaving it unspecified is what produces a reflection that doesn't match its surroundings. For a person facing a mirror, state what side or angle the reflection shows and whether it should match the pose exactly or read as a beat behind it; for an object or empty room, state what's actually opposite the mirror so the reflection isn't left to invention. A shop window at night works the same way: the glass is doing two things, a faint reflection of the street plus whatever's genuinely visible through it, and both halves need naming or the render collapses into one or the other.
[SUBJECT] standing in front of a full-length mirror, reflection shows the same pose from the front, matching outfit and lighting, reflection slightly softer and dimmer than the real subject
Close-up on a hand-held mirror reflecting [SPECIFIC ELEMENT: a window, a doorway, a second person], everything else in the mirror left dark or out of focus so only the named element reads clearly
[SUBJECT] walking past a glass storefront at night, faint reflection of the street and passing headlights visible in the glass, reflection dimmer than the subject, neon signage bleeding softly into the reflected surface
Black Forest Labs' own interior-design use-case guide includes a worked example titled "Fill closet + add reflection": starting from a photo of an empty closet, the documented result fills it and completes a mirror reflection to match (docs.bfl.ml/guides/usecases_editing_interior_design, accessed September 2026). That's real vendor evidence that finishing a mirror's reflection is a named, supported editing task, not an edge case nobody has built for.
How Do You Prompt Wet Pavement and Puddle Reflections?
Name that the reflection is broken up, stretched and rippled rather than mirror-sharp, because moving or textured water scatters a reflection into streaks instead of returning a clean copy of what's above it. That single distinction, sharp versus broken, is most of what separates a convincing wet street from one that reads as a dry photo with a reflection layer pasted flat on top.
Black Forest Labs' own prompt-building guide lists glowing reflections on wet pavement among its example phrases for adding atmosphere to a scene (docs.bfl.ml/guides/prompting_unified_building, accessed September 2026), which is worth citing precisely because it shows a vendor documenting this exact look as its own thing rather than folding it into a generic "wet ground" instruction. OpenAI's editing guide for gpt-image-2 names ground wetness as one of the specific environmental conditions its lighting-and-weather editing pattern can change on an existing photo, alongside precipitation and shadows, while everything else in the frame stays fixed (developers.openai.com cookbook, GPT Image Generation Models Prompting Guide, accessed September 2026). Neither guide claims a puddle's reflected content will be geometrically exact; both are naming the surface behavior, not promising pixel-perfect optics.
Rainy city street at night, wet asphalt reflecting the [NEON SIGN COLORS] signage above, reflections stretched and rippled rather than mirror-sharp, glowing reflections on wet pavement
[SUBJECT] reflected in a shallow puddle on pavement, reflection inverted and broken up at the puddle's disturbed edges, [BACKGROUND] visible clearly only in the undisturbed, still part of the water
For the lighting vocabulary this section leans on without redefining it (caustics, bounce light, specular highlight), see lighting vocabulary for AI image prompts, which already covers wet-pavement examples on its own terms.
How Do You Prompt Reflections in Eyes, Sunglasses and Curved Surfaces?
Name the shape of the light source, since a specular highlight on a curved surface generally keeps the outline of whatever's casting it: a ring light reads back as a circular ring in an eye or a lens, a window reads back as a soft rectangle, a softbox as a rounded square. That's a photography convention borrowed from how real reflective surfaces behave, not a documented control any image model publishes, and it's worth saying plainly rather than implying a model parses the term "catchlight" the way it parses an aspect-ratio parameter.
For sunglasses and eyewear specifically, name the reflected scene rather than leaving the lens generically reflective. "Reflective sunglasses" alone tends to default to a bright, shapeless glare with no legible content inside it; naming what's supposed to be visible in the lens, and noting that a curved lens bends and slightly distorts that content rather than mirroring it flat, gives the model an actual target instead of a placeholder shine.
Extreme close-up on [SUBJECT]'s sunglasses, lens reflecting [SCENE: a city skyline, a beach, the photographer], reflection curved and slightly distorted to match the lens shape, rest of the face in soft focus
Portrait of [SUBJECT], catchlight in both eyes shaped like [LIGHT SOURCE: a window pane, a ring light, a softbox], same catchlight shape and position matched in both eyes, otherwise soft even lighting
Black Forest Labs' own text-rendering guide pairs chrome and reflection in a single style example, raised chrome letters with realistic metal reflections, for a dimensional 3D-text look (docs.bfl.ml/guides/prompting_unified_style, accessed September 2026), which is the same shape-follows-source logic applied to lettering instead of an eye or a lens.
The same logic carries over to small reflective objects shot close, which is most of what makes a jewelry or product photo read as real rather than rendered for social feeds. A round earring, a curved watch bezel or a polished ring bends its highlight the same way an eye does: name the environment it's reflecting (a window, a softbox, the room itself) rather than describing the object as generically "shiny," and note that the reflection stretches or compresses across the curve instead of sitting as one flat patch of light. That single naming choice is why one close-up product shot reads as a photograph and a near-identical one reads as a render.
Which Image Models Actually Document Reflection-Specific Guidance?
| Feature | FLUX.2 | Nano Banana Pro | GPT Image 2 | Ideogram 4.0 |
|---|---|---|---|---|
| Named worked example that completes a mirror's reflection (not just a material swap) | Yes, an interior-design guide example titled "Fill closet + add reflection" | Not found in the pages checked | Not found in the pages checked | Not found in the pages checked |
| A documented example phrase specifically for wet-surface reflections (beyond "wet") | Yes, "glowing reflections on wet pavement" in the prompt-building guide | Not found in the pages checked | Partial: "ground wetness" named as an editable environmental condition | Not found in the pages checked |
| Troubleshooting note that treats a reflection as its own artifact, separate from the object | Yes, object-removal guidance names reflections a mask must also cover | Not found in the pages checked | Not found in the pages checked | Not found in the pages checked |
Ideogram's consumer prompting and editing docs, checked directly, cover prompt structure, text and typography, and negative-space handling, but carry no section naming reflections or mirrors as their own subject. Google's Gemini image-generation guide, likewise checked directly, documents one worked example reaching for "realistic PBR materials" language but nothing scoped to reflections specifically. Neither absence proves the underlying capability is missing, only that it isn't named in the pages checked; a vendor can support something in practice without writing a guide section for it.
Where Does Reflection Wording Stop Working?
Sort a disappointing result the way live post 304's image troubleshooting framework sorts every other image problem, before spending time rewriting a prompt that was never going to fix it.
Prompt-fixable: a mirror or window reflecting nothing in particular because its content was never named; a puddle or wet street that reads as a flat sheen because "wet" was said instead of naming the ripple and stretch; a sunglasses lens with a generic glare because the reflected scene was left for the model to invent. This is the same underlying failure mode covered from the subject-identity angle in why an image prompt produces the wrong subject: an unspecified element gets filled by the model's most common default, not by what you actually meant.
Parameter or setting problem: wanting a literal negative instruction, "no reflection in the window," on a model whose docs don't publish a negative-prompt field at all, a genuinely separate gap covered in full at the negative prompt support matrix; or a reference photo of the actual room or object available but never supplied to a model that accepts one.
Capability limit: asking for one exact reflection, catchlight shape, or caustic pattern to reproduce identically across regenerations. No model checked for this post publishes a reproducibility guarantee scoped to reflections specifically, and where a seed parameter exists at all, vendors describe results as similar rather than identical. Treat an exactly repeatable reflection as outside what any of these tools currently promise, not as a setting you haven't found yet.
Stop rewriting prompts. Start shipping.
Works with ChatGPT, Claude, Gemini, Grok, Midjourney, Ideogram, Veo3 & Kling. 4.8★ on the Chrome Web Store.
Create An AccountCopy-Paste Prompts for Reflections, Glass and Metal
A few general-purpose templates that work across most of the scenarios above. Support for a literal negative-prompt field varies by model, so the exclusion block works as language stacked into the main prompt rather than assuming a dedicated field exists everywhere.
[SCENE], reflective surface: [mirror / wet pavement / glass / polished metal], reflection shows [WHAT IT SHOULD SHOW], reflection sharpness: [sharp and mirror-like / soft and rippled / faint and dim]
[SUBJECT] partially visible in a [SURFACE], reflection matching the subject's pose and lighting but slightly softer, rest of the reflected background left consistent with what's actually behind the subject
avoid: a reflection showing a different subject or expression than what's in front of it, mismatched reflection lighting, a reflection that fails to invert or flip anything at all