AI Images

AI Product Photos That Do Not Look Fake: Light, Shadow, Perspective

A real product photo on a generated background gives itself away on exactly three axes: light direction, shadow quality and perspective. Here is the physics in plain words, a browser tool that walks you through all three checks on your own composite, and the prompt lines that stop the mismatch happening in the first place.

AI Product Photos That Do Not Look Fake: Light, Shadow, Perspective

You have a decent photograph of the product. You shot it on the kitchen table beside the window, on a sheet of white card, and the product itself looks fine. What you do not have is a scene. So you ask a generator for a sunlit marble worktop, cut the product out, drop it on top, and the result is wrong in a way you cannot name.

Everyone who looks at it says the same thing: it looks fake. Nobody says why, because the eye files the complaint before the brain has any words for it. The eye is not being vague, though. It runs three specific comparisons, and one of them has come back with a mismatch.

Light direction, shadow quality, perspective. A composite that gets those three right survives a surprising amount of other sloppiness. A composite that gets one of them wrong will not be rescued by better colour, a nicer background, or another twenty prompt attempts.

The three axes

The physics behind each one is short enough to say in a sentence.

  • One light. A scene has one dominant source. The sun sits 150 million kilometres away, so its rays arrive effectively parallel and every shadow on a tabletop runs the same way. Two objects lit from different sides were never in the same room.
  • Hard light makes hard shadows. Edge softness is set by the apparent size of the source: its width divided by its distance. The sun spans half a degree of sky, which is why sunlight cuts a crisp edge. A softbox at arm’s length spans fifty degrees, which is why it does not.
  • One horizon. A rectilinear lens has exactly one eye level, and every horizontal direction in the scene converges to a point sitting on that single line. Your phone held 40 cm above a table and a room shot from standing height do not share it.

You can check all three by eye once you know what to look for, and by eye is exactly where it goes wrong: the eye is superb at noticing a mismatch and hopeless at measuring one. So the tool below asks you to point at things and does the arithmetic itself.

Composite believability check

A composite gives itself away in the physics, not in the pixels. Load your montage and walk three guided checks over it: where the light comes from, how hard the shadow edges are, and whether the product stands on the same ground the camera saw. You do the looking, the tool does the arithmetic and keeps score. The picture is read in this browser tab only, nothing is uploaded and nothing leaves your computer.

Drop your composite here
or press Enter to pick a file. Until then the example below stands in, and it carries all three faults on purpose.

  • Blue is check one on the product: the arrow towards its bright side, and the loupe on its shadow edge.
  • Amber is the same two things in the background. The dashed half of that arrow is it turned round, which is where the light was.
  • Green is check three: the horizon, the eight percent band around it, and the two lines whose crossing has to land inside it.
Progress 0 of 3 checked

1Light directionopen

Two arrows. One on the product, drawn towards its bright side. One in the background, drawn from an object to the tip of its shadow: that one gets turned round, because a shadow points away from the light.

2Shadow edgeopen

Click the picture to drop each loupe on a shadow edge, one on the product, one in the background. They sit at a fixed four times, deliberately small. Then say what you see: hard sun draws a crisp edge, an overcast sky draws a soft one.

Subject
Background

3Perspectiveopen

Drag the dashed horizon onto the horizon in the picture, then lay the two green lines along edges of the product that run away from the camera. Where those two meet is the eye level the product was shot at, and it has to sit on the horizon.

Three craft checks, no detector. They find the mistakes a montage makes, which is a different question from whether a picture is real, and coming up empty is not a certificate. The article shows how to avoid making these mistakes in the first place.

WunderPaint
The Dynamic Design and Automation Studio
WunderPaint is a layered image editor for your WordPress media library. WunderPaint Studio is the same thing in any browser, free and without an account.

It runs entirely in your browser. The picture you drop in is never uploaded: no fetch, no XHR, nothing written to a server.

Two arrows, one light

The first check gives you a radio pair. Pick subject, then drag an arrow across the product towards its bright side, the side where the highlight sits. Pick background, then drag a second arrow from some object in the scene to the tip of the shadow it casts. There is a live preview while you drag, and a 14 px minimum length so a stray click does not register as an arrow.

Those two arrows point in opposite senses on purpose. The subject arrow points at the light. The background arrow points away from it, because shadows fall away from what casts them. The tool turns the background arrow round by 180 degrees before it compares, so both finally say the same thing: this is where the sun is.

Angles come out on a compass rose with 0 at the right and 90 straight up, computed in the picture’s own pixel space rather than in whatever box the browser has squeezed the preview into. Measure an angle on a 16:9 picture that has been scaled unevenly to fit a column and every reading skews towards the horizontal. Mapping the drag back into image coordinates first keeps a 45 degree arrow at 45 degrees.

More than 35 degrees apart is reported as a finding. That threshold is deliberately loose, because real photographs disagree with themselves all the time. A window bouncing off a white wall, a second lamp, a chrome curve throwing a highlight somewhere unexpected: a ten degree tolerance would flag half the genuine product shots on the internet. Thirty-five catches the composite where the product was lit from the left and the background was generated with the sun behind it, which is the failure that actually happens.

Table of the three believability axes with the comparison and threshold for each: light direction over 35 degrees apart, shadow quality two classes apart, perspective over 8 percent of picture height, plus the tool's fixed values of 4x magnification, a 30 pixel source window, a 120 pixel loupe canvas and a 14 pixel minimum arrow length.

The loupe, and why smoothing is off

The second check is about shadow edges, the one people skip because they think they can already see it. At 100 percent zoom on a 1400 px picture, they cannot. So the tool gives you two fixed 4x loupes: a 30 px window of source pixels blown up onto a 120 px canvas, placed by clicking, one for a subject edge and one for a background edge.

Two details there are load bearing. Smoothing is switched off, so the magnified pixels stay square: interpolated, every edge in every picture would look soft and the check would measure nothing but the resampling. And the loupes read the original canvas, not the shrunk preview on screen, so a 4000 px photo still magnifies real captured pixels.

You grade each edge yourself with a three-stage switch: soft, med, hard. Two classes apart is the finding, in either direction. A hard-edged product shadow sitting in a softly lit generated room is exactly as wrong as a soft product on a background full of knife-edged sun shadows, and both happen.

One thing to know before you place them: edge hardness is not constant within a single picture. The penumbra widens with the gap between the object and the surface it shadows. Sunlight spans about half a degree, which works out at roughly 9 mm of fuzz per metre of gap, which is why your own shadow is knife sharp at the feet and blurred at the head under the same sun. Put the two loupes on edges with a comparable gap, or you will grade the physics rather than the composite.

The horizon is where the camera was

The third check gives you a dashed horizon line you can drag, plus two vanishing lines with four green handles between them. You lay the vanishing lines along two edges in the background that are parallel in the real world: the long edges of a worktop, the sides of a doorway. Where they cross is a vanishing point, and in a correctly built picture that point lands on the horizon.

The crossing is solved affinely in fractions rather than in device pixels, so the answer arrives already expressed in picture heights and does not change if the preview is 600 px wide or 1200. More than an 8 percent band away from the horizon is the finding.

The horizon in any photograph sits at the camera’s eye level, full stop. Shoot the product sitting down with the phone 40 cm above the table and its perspective says the viewer is sitting. Render the background from standing height and its horizon is a third of the frame higher. No amount of scaling, rotating or shadow work fixes that, because it is not a placement error. It is two different cameras, and the fix is upstream, in the next prompt.

If your two vanishing lines end up parallel, the tool says so instead of guessing a number: parallel lines never meet, and that state produces no finding. Parallel edges usually mean the camera was square on to that surface, which is a legitimate way to shoot.

The contact shadow

All three checks can pass and the picture can still look like a sticker, and when that happens it is almost always the contact shadow. This is the small, dark, tight seam where the object meets the surface, and it exists for a reason unrelated to the key light: at the contact line almost no light from anywhere in the room reaches into the gap. It is darkest and hardest at the touch point, then widens and lightens as the gap opens.

Which means a contact shadow is there even on a flat overcast day when nothing casts a directional shadow at all. Leave it out and the product floats, however carefully you matched the sun. Put it in and a mediocre composite suddenly reads. Build it as two separate layers, both set to multiply: a tight dark ellipse hugging the base, and the long soft cast shadow running in the direction you just measured with the arrows. Keeping them apart lets you tune the seam without touching the throw, which is the whole argument for working non-destructively on a composite you will revisit. The rest of the anatomy, including why the default drop shadow in every tool looks wrong, is covered separately.

The loupe tends to catch one more thing: the cutout edge itself. Pixels along the boundary still carry a fringe of whatever they were shot against, so a product cut off white card and dropped on a dark generated wall gets a glowing white outline that reads as pasted-on before anything else does. That is an edge problem, not a lighting one, and it gets fixed at the mask.

Briefing the generator with the same three axes

The three things you check afterwards are the three to state in the prompt beforehand, because whatever you leave unstated the generator picks for itself, and it has never seen your product photo.

So read the light off the shot you already have. Where is the highlight on the product? That is the direction. How long is the shadow relative to the object? That is roughly the elevation. Zoom to 400 percent on the edge of the shadow the product casts on the card: crisp means a small hard source, gradual means a big soft one. Were you standing or sitting? That is the camera height. Four readings, two minutes, and now you can write them down.

Surface:  empty matte oak worktop, nothing in the middle third
Key:      upper left, about 40 degrees above the horizon
Quality:  large softbox, soft-edged shadows
Colour:   warm key around 3200K, cool fill from a window on the right
Camera:   table height, slight downward tilt, 35 mm
Exclude:  no product, no props, no people

Two lines there do quiet work. nothing in the middle third gives the product somewhere to stand instead of forcing you to clone out a bowl of lemons. table height is the horizon instruction, and it is the most effective line in the prompt, because perspective is the axis you cannot fix in post.

Two prompt panels side by side. The left panel shows a vague background prompt whose light direction, hardness, camera height and colour all come back as generator defaults. The right panel shows the same request with surface, key light direction and elevation, source size, camera height and focal length, and an empty middle third all stated explicitly.

Colour comes last, not first, and it is the one axis that genuinely is repairable afterwards. Once light, shadow and perspective agree, pulling the product’s white balance and contrast towards the background is a handful of deliberate moves, not a hunt. Doing it in the other order means grading a picture that was never going to work.

Keeping the whole thing in one document helps more than it sounds: WunderPaint’s AI Studio generates a background from your prompt straight onto a layer in the same file as the cut-out product photo, so both shadows live on layers in between and every one of them stays editable. Whatever you build it in, export at the size your shop template actually asks for rather than at whatever the canvas happens to be, since the three WooCommerce settings decide the crop long before your composite reaches a customer.

What the checks refuse to do

The tool judges nothing on its own. You point the arrows, you place the loupes, you grade the edges. It does the trigonometry, the intersection and the bookkeeping. That is why the verdict box is worded “nothing gave it away in these three checks” instead of anything resembling a certificate. A montage that passes has passed three craft checks performed by you. It has not been authenticated, and no browser tool looking at pixels can do that.

The thresholds sit where they sit, on purpose and consistently. Exactly 35 degrees apart passes, because that test is on the greater-than side. Exactly two shadow classes apart is a finding, because that one is on the at-or-more side. Both are documented and both are tested.

A few behaviours are worth knowing before they surprise you. The perspective step counts as checked the moment any one of its three lines moves, because unlike the arrows and the loupes those lines already exist and cannot be in a “not yet drawn” state. Skipping also counts as checked, which is the point of the Skip button: decline a check on a picture with no usable straight edges and you still reach a verdict built on the two that applied. The built-in 1000×700 example arrives with all three readings already taken and all three faults present, so a first-time visitor sees what a mismatch looks like before touching anything, and loading your own picture clears the lot back to empty. A file the browser cannot decode leaves your previous picture on screen with a message rather than blanking the tool.

What it will not do: run twice on one page, hand you a download, or reach the clipboard by any route other than the copy button. The report it produces is plain text carrying both angles, both shadow classes and the horizon and vanishing point positions, enough to paste into a note and compare against the next attempt.

Saying it out loud to customers

A real product on a generated background is a partially synthetic image, and the sensible position is to say so rather than wait to be asked. The European Commission publishes disclosure emblems for exactly this, in three flavours: a basic one, one reading “Fully AI-generated” and one reading “Partially AI-modified”. A composite like the one described here is the third. Good export dialogs offer them in black, white and half opacity, start on None, and never guess on your behalf: only you know what you made.

The other half is metadata. The IPTC digital source type is the field picture agencies and image search actually read, and writing it into the file means the picture keeps declaring its origin after somebody has cropped the emblem off the corner. It costs one checkbox at export.

Then there is the commercial line, which has nothing to do with regulation. A generated scene that implies scale is making a claim: a mug beside a laptop tells the customer how big the mug is, and a generated worktop that makes a matte finish look glossy tells them what they are buying. Backgrounds are fair game. Anything the product itself appears to promise is not, and returns cost more than a second photograph would have.

None of this is a rulebook for making pictures. It is a way of turning “it looks fake” into a number you can act on, which is the difference between iterating and guessing. Once you know the arrows are 62 degrees apart, you know the problem is the sun and not the shadow, and the fix belongs in the prompt rather than in another hour of masking.

The pattern that emerges after a few rounds is that almost every fix is upstream. Light direction, shadow hardness and camera height are all cheap to state in a prompt and expensive to repair in a composite, so the checks end up being less about grading finished work than about writing the next brief. The one thing that genuinely belongs downstream is the contact shadow, because no generator can put a shadow under a product it has never seen. Get those four right, label the result honestly, and a composite built on a kitchen table with a phone will sit on a product page without anyone squinting at it. Not a picture nobody can tell was assembled, but one where nothing quietly contradicts anything else.

AI Product Photos That Do Not Look Fake: Light, Shadow, Perspective

Table of Contents

Learn it by building something

Every week one thing you can make the same afternoon, from dynamic templates to 3D type. Written down step by step.

One mail a week, and then it ends.
Unsubscribe in one click.

WordPress Development

wp-config.php Explained: The Constants That Earn Their Place

wp-config.php is the first file WordPress reads that is specific to your install, and almost every fix you will ever be handed ends with "add this line to wp-config.php". Here is what the file actually does, which constants earn their place, and why the placement rule matters.

CSS & Front-End

CSS Gradient Generator: Gradients That Do Not Band

A gradient that looked smooth in the design tool grows stripes on the page. The cause is arithmetic: 8 bit colour, two similar colours and 1600 pixels to cover. How to count the steps before you ship, the three real fixes, and a builder that measures the banding for you.

Photo Editing

Blend Modes, Actually Explained: Six Formulas Worth Knowing

Most people click through the list until something looks nice. There is a small amount of maths underneath that turns the whole menu into a set of tools.

SEO & Structured Data

Redirect Rule Generator: The Rules That Never Fire

A redirect list rarely breaks. It accumulates: a broad prefix rule that kills every rule below it, a target missing a trailing slash that doubles your hop count, a 301 where a 308 was needed. Generate the Apache, nginx and CSV versions of your rules, then walk a URL through them and watch where it actually goes.

Security & Privacy

WordPress File Permissions: 644, 755 and When Something Else

chmod 777 makes the error disappear by handing write access to every process on the server. What the three digits mean, the standard WordPress set, and why ownership decides which digit even gets read.

SEO & Structured Data

WordPress OG Image: The Shop Window You Never See

WordPress core never writes an og:image tag, so a wrong or missing link preview is always somebody else's output. Here is the fallback chain a plugin walks, the registered size trap that makes a valid tag point at a missing file, and two curl commands that settle it.

Download the free WunderPaint Plugin for WordPress

The WunderPaint workspace with the layers panel, adjustment sliders, text style presets and the asset library along the bottom

The Image Editor & Design Studio

Everything described here can be done in the browser, on your own site. The live demo runs the full editor with nothing to install.

Free

Chaos Art

Autonomous painters make one-of-a-kind abstract art in 3D space - gestures, art movements, painterly media, and embeds that paint a new original for every visitor.

Pro

Particle Strokes

Paint with swarms of light: twenty-two movements, a stamp you draw yourself, and curves that give a stroke a shape - the swarm keeps painting for a few seconds after you let go.

Pro

City Diorama

Any place on earth as a miniature you could hold: real streets, water and building footprints raised into a 3D diorama - or wrapped around a sphere as your own tiny planet.

Free

Papercut Art

Layered paper pictures with real depth - a photo sliced along its actual depth into up to twenty layers, parametric landscapes, animals and clouds you can shape, letters with real counters, and a look that runs on three dials.

Pro

3D Earth Studio

A hyperrealistic globe - day and night with city lights, live clouds, atmosphere halo, country borders and highlights, click-to-place markers with flight-route arcs, satellite orbits, seamless rotation video and a live website embed.

Free

Mystic Studio

Turn a birth date into wall art - a real natal chart with houses and aspects, the moon of that night, zodiac and Chinese zodiac posters, numerology cards and a synastry wheel for two, in eight artful themes.

Free

Marble Bath

Marble paper on a virtual water bath - drop, rake and comb real Ebru patterns with gestures, flowers and classic recipes, razor-sharp at any size and re-editable as a layer.

Free

Day Ring

Turn a day into a beautiful circular schedule - colour-coded time blocks as arcs around a 24-hour clock, with concentric rings for overlaps, emoji, templates and a legend.

Free

Code Shot

Turn code into a gorgeous, share-ready image - syntax highlighting, editor themes, window frames and diff highlighting - then drop it into your design as a re-editable layer.

Pro

3D Solar System Studio

Build a date-accurate 3D solar system - real planet positions for any date, photoreal textures and one slider from artistic to true scale - then drop it into your design as an editable layer.

Pro

3D Molecule Studio

Build a real 3D molecule - from a curated library, the periodic table or a SMILES string - then style it, measure it and drop it into your design as an editable layer.

Pro

3D Textile Studio

Drop your design onto cloth that behaves like the material you pick: silk falls soft, felt holds its shape, flag fabric snaps in the wind. Hang it, blow it and drape it, then lay the finished drape back into your document as a picture.

Pro

3D Particle Studio

Point the engine at any layer and it becomes a cloud of particles that keeps its colours, flowing through a sphere, a galaxy or your own outline. Keep the frame you like as a still, or embed the running engine so it keeps moving on your page.

Free

Origami

Put your own picture on the paper and watch that very sheet fold itself into a crane or a box. Every step is a station you can stop at and turn around in 3D, which is exactly where printed diagrams leave you alone.

Pro

3D Flip Studio

A hardcover you can leaf through, a limp magazine, a strewn pile of sheets, a sticker peeling off its backing. The curl is real geometry, so the print never slides across the paper.

Free

Handwriting Fonts

Draw the alphabet here or fill in a printed sheet and photograph it. What comes out is a genuine font family, installed into your site and available in every picker.

Pro

Step Guides

Turn any picture into an instruction. Every mark is pinned to a place in the image, so arrows still point at the right thing after the callout has been dragged somewhere else.

Free

Text Art

One studio, sixteen art types: ASCII and emoji art, brick, dice, cube, sticky-note, LED, ceramic and keycap mosaics, word portraits, text flows, silhouettes, element tiles and more.

Free

Photo Mosaic

The classic photomosaic, computed in your browser: your main image emerges from many media-library photos via true structure matching - never a cheap overlay.