Going Stellar

Home/Methods

E-commerce · Product images

How to check product images before they go live: the traps in automated packshots and infographics

Every serious product-image fault we found passed our automated checks: a clean packshot missing half the product, an infographic with correct dimensions drawn over another product, a sharp file that turned blurry once cropped. The method is to open every image and compare it with an independent reference for the physical product, not with other pictures from the same supplier pack.

Updated

What to check, and against what

To check an automated product image, open it and compare it with an independent reference for the physical product, such as the supplier's SKU reference, the label on the box or the item in the warehouse, rather than trusting the metrics the image pipeline reports. A packshot is a photo of the product alone on a plain, usually white, background; a product infographic is a product image with dimensions or features written on it. Both are now often produced or cleaned by scripts, and both fail in ways that numbers do not show.

The faults below come from listing and relisting products across several online stores and from a warehouse scanning app that shows a product photo at picking. Each one looked correct to a script.

Anchor on the product, not on the pictures

One product had a title with one set of dimensions while its URL and file names carried another. We found the same item on a marketplace with a dimensioned technical drawing matching the second set, and, decisively, the same photo as our first image. We changed the dimensions everywhere. It was wrong: the supplier's reference showed that the photos belonged to a different product, and the drawing described that other product perfectly.

The lesson is to ask whether a piece of evidence passes through the artefact under dispute. URL, file names, declared volume and the outside drawing all came from one supplier pack: four signals, one source. The closer the match (the very same image), the more surely it confirms the wrong thing. Anchor instead on something a marketing pack cannot copy: the box label with SKU, colour and barcode, or the physical product. A wrong brief poisons a search the same way: a first search on 6 tracks failed because we had described a single-pitch roof on a product with two.

Infographics: correct numbers over the wrong drawing

On one product the title, description and specification table all said the door slides, and 4 of 5 photos showed a sliding door. The fifth, the dimensions infographic, had all 11 dimensions correct and a rendering of a hinged double glass door with a handle: another product. A text audit finds nothing, because the numbers reconcile perfectly. Suppliers put your product's dimensions over a stock rendering, and only opening the image and looking at the mechanism reveals it. We then checked all 6 products in that category and found the same class of fault, including a sketch that dimensioned a door at 1.5 m when the specification said 0.61 m, a factor of 2.5.

Measure colour, do not judge it. On neutral renderings, red minus blue above 25 reads as warm brown and below 15 as neutral taupe or grey. One gallery measured 28 to 35 while the supplier reference measured 12, so the difference was not lighting.

Never regenerate an image that carries text. An AI image model will redraw the dimension labels. We repair the faulty region with texture taken from the same image and restore the original text pixels through a mask; the proof is a pixel difference of zero on the text areas. For recolouring we shift chroma in LAB colour space through a hue mask, with a 9 px morphological opening that spares thin dimension lines. Check the resulting hue, not only that the step ran: one extra pass caught grass pixels at the mask edge and turned a wall green.

Packshots: the cleaning step that amputates

Our packshot script cleaned a product-on-white image by keeping only the largest connected component and whitening the rest. On a shower set made of visually separate parts it cut off the column and the rain head and left only the mixer. It happened twice on the same product: once caught by an adversarial reviewer, once only because we looked at the image before uploading. The result looked perfect, clean and well framed, and it showed a different product.

Our quality metrics (share of white, framing at 97%, edge variance) were all compatible with half the product missing; none asks whether the product is still whole. The rule now: count connected components in the source, and if there is more than one, do not use the component filter. Whiten only the near-white background, for example green channel at or above 244 set to 255, and frame all the content.

Resolution depends on the crop, not the file

We downloaded source images with a width parameter of 1100 although the originals on the store CDN were 2048 pixels wide. For a product that fills the frame, scaling to a 1200 px output meant enlarging 1.06 to 1.29 times, which nobody sees. One hero image came from an inset, the product on white placed over a lifestyle photo: 462 by 648 real pixels, enlarged 1.80 times, and the blur was obvious. Downloaded at 2048, the inset became 860 by 1206, 1.86 times more pixels, and the enlargement fell to 1.05.

Download originals without a width parameter; they cost a few megabytes. Before upload, compute for each hero image the product's width in the source divided by the output width; above about 1.3, find another source.

When normalising framing across a collection, we scale the product to 0.86 of the frame height, add a 3.5% buffer at the top so caps and spray heads are not cut, keep 2000 px and save JPEG at quality 95 without chroma subsampling. Many stores reuse one media file on many products; on one store we found 72 files across 54 products, one of them on 22. Renaming a shared file renames it everywhere, and a theme that references images by file name breaks. Back up every original first.

Variants and SKUs: the right photo for the right item

In the warehouse scanning app, red and blue variants of the same product showed the same photo, because the app read the product image rather than the variant image. The correct variant image already existed in a daily-synced table that nothing read. Of 164 SKUs with a variant image, 99 had been showing something else. Sizes of the same colour correctly share one photo, so a rule that splits everything that looks alike would break the good cases. Preferring the store's photo instead would have changed 745 products to fix 82.

Our own measurement also misled us. Images passed through an app proxy, and cutting URLs at the question mark made all proxied images look identical: 2,673 SKUs apparently shared a photo, while the real figure, after decoding the proxy parameter, was 255 groups and 958 SKUs.

One SKU can be two physical products. 178 of 1,933 SKUs with a barcode (9.2%) carry different barcodes in different stores, because simple catalogue numbers are reused across brands. Treat a SKU as an ambiguous key: resolve the product through the barcode, and refuse a write when the barcodes lead to different products.

Generated images and matching by image

For generated lifestyle or detail shots, pass 1 to 3 real reference photos so the model keeps the exact product; without them it invents one. Use generated images for scenes, never for dimension infographics or anything that must be measurable.

To match the same product across two catalogues when barcodes are unreliable, we combine a perceptual hash (Hamming distance at or below 12 means a near-identical photo) with CLIP image embeddings (cosine similarity at or above 0.925 means the same product in a different photo). On white-background commodity goods CLIP scores different products around 0.92, so CLIP-only matches must also share 2 name tokens and pass an attribute gate on pack count, dimensions and wattage. After that tuning we saw no false positives, but recall was only 15 to 35% when both sides had re-shot their photos, so image matching supplements other methods rather than replacing them.

Where we were wrong, and the limits

We trusted evidence that passed through the disputed photos, we trusted metrics that never asked whether the product was whole, and we almost shipped a rule that would have broken correct images. In each case a person looking at the image caught what the checks missed. The method does not replace that look; it tells you where to look.

Mismatched images also carry a policy risk. Google Merchant Center can restrict a whole account for misrepresentation. In our case the cause was fake urgency widgets and benefit badges copied onto the wrong product, such as a skin-safety badge on a pair of scissors, not photos. But the review rule is the same: you get one request in the warning window, so fix everything before you ask.

Checklist

Before upload: open every image; compare it with the supplier's SKU reference or the box label, not with other images from the same pack; check the mechanism and colour, not only the numbers; count connected components before any packshot cleaning; compute the enlargement ratio from the crop.

In the catalogue: back up originals before renaming or reframing; use variant images for variants; treat SKUs as ambiguous; never regenerate images that carry dimensions.

Questions and answers

How do I check that an AI-cleaned packshot still shows the whole product?

Look at it, and count the connected components in the source image before cleaning. If the product is made of several visually separate parts, such as a shower column and a mixer, a filter that keeps only the largest component will cut parts off. In that case whiten only the near-white background and frame all the content. Metrics such as white share or framing percentage do not detect a missing part.

Can I use AI to fix a product infographic with dimensions?

Not by regenerating it: an image model redraws the text and the dimension labels change. Repair the faulty region with texture taken from the same image, then restore the original text pixels through a mask, and prove the result with a pixel difference of zero on the text areas. Use generated images for lifestyle scenes, with 1 to 3 real reference photos so the product stays faithful.

Why does my product image look blurry on the store when the file is large?

Because the resolution that matters is the region you crop, not the file. A product that fills the frame survives a small source, but a product taken from an inset can end up enlarged 1.80 times. Download originals without a width parameter, and compute the product's width in the source divided by the output width; above about 1.3, find a better source.

Why do all colour variants show the same photo?

Usually because the system reads the product image instead of the variant image. Check whether a variant image already exists in your catalogue data before building a new rule. Keep in mind that different sizes of the same colour should share a photo, so a rule that separates every identical image breaks correct cases.

How can I match the same product across two catalogues without reliable barcodes?

Combine a perceptual hash, which finds near-identical photos, with CLIP image embeddings, which find the same product in a different photo, and add an attribute gate on pack count, dimensions and wattage plus shared name tokens. On white-background goods CLIP alone scores different products as similar. Expect high precision and modest recall when both sides re-shot their photos.

How to cite this

Going Stellar (2026). How to check product images before they go live: the traps in automated packshots and infographics. GOING STELLAR S.R.L..
https://goingstellar.ro/methods/product-images-packshots-infographics-traps/

Read as Markdown

All methods

Contact

Tell us what is not working

Write in English or Romanian. A person reads it — usually the same person who would do the work — and answers within one business day.