# Shot guide A marketplace pack shot is boring on purpose. The product is the only thing in the frame, it is true to life, and it looks the same as every other listing on the platform. The skill is in the details. ## Why the product is cut out, not regenerated An image model asked to "put this on white" redraws the product. Labels drift, stitching changes, a green sole turns olive. A cut-out keeps the photographed pixels and only scales them. The model is used for the matte (the mask) and nothing else. ## Choosing and prepping the source photo - One product, whole in frame, in focus, not cropped by the photo edge. - Even light with no coloured cast. Daylight from a window is fine. - Contrast with the surface helps the matte: a white shoe on a wood floor cuts cleanly, a white shoe on white paper does not. - Shoot from slightly above (about 20 to 30 degrees) for shoes, bags and boxes. Straight-on for bottles, tubes and cans. - Remove the hands, price stickers and clutter before you shoot. The matte cannot remove something that touches the product. ## Marketplace rules the script targets | Platform | Rule | What the script does | |---|---|---| | Amazon | Pure white (RGB 255,255,255) background, product fills 85% or more of the frame, 1000 px minimum, 2000 px+ enables zoom | White flatten, 85% fill, 2000 px | | Shopify | Consistent square images, 2048 px recommended | 2000 px square | | Etsy, eBay | White or light neutral, product large in frame | Same square image | | Instagram shop | 4:5 portrait also works | `--ratio 4:5` | Check the platform's current rules before submitting a listing. They change. ## The shadow The shadow is the difference between "pasted on" and "photographed". It is built from the product's own underside, in two layers: - A tight contact shadow, 14 px band, light blur: where the sole touches the table. - A wide ambient shadow, 60 px band, heavy blur: the soft darkness a product casts on a sweep. `--shadow` sets the strength (0 to 0.8, default 0.45). Use 0.3 for light products and bottles, 0.55 for very light products that need grounding. Marketplaces that demand "no shadows" (some Amazon categories) want `--shadow 0`. ## Fill and position The product's longer side is scaled to 85% of the frame (`--fill`, 0.5 to 0.92). It sits about 1% above centre so the shadow has room. The product never touches the edge. ## When the matte goes wrong | Symptom | Cause | Fix | |---|---|---| | Jagged or fringed edge | Low-resolution photo | Use the original file, not a screenshot. Use the original file at full size; the model works at 2048 px already | | Part of the product missing | Same colour as the background | Re-shoot on a contrasting surface | | Transparent parts filled in (glass, thin straps) | Matte treats them as background | Use the cleanup fallback (about $0.20, regenerates product pixels, say so), or accept and say so | | Halo of the old background | Light spill on shiny edges | Re-run with `refine_foreground` true (default) | | Dull, greyish whites | Underexposed phone photo | `--normalise` on compose-white.mjs (levels only, light products only); re-check the colour | | Shadow looks like a smear | Product floats in the photo, bottom edge is not the floor | Lower `--shadow`, or crop the source so the bottom edge is the contact point | ## Product types and materials | Product | What to expect | What to do | |---|---|---| | Shoes, bags, boxes | Cut cleanly, strong contact edge | Defaults. Shoot 20 to 30 degrees from above | | Bottles, tubes, cans | Straight edges, often reflective | Shoot straight-on. Use `--shadow 0.3` | | Glossy or metallic (watches, jewellery, cookware) | The photo contains reflections of the old room, which stay on the product | Re-shoot with a white card or tent around the product; the cut-out cannot remove reflections | | Transparent or glass (bottles, glasses) | The matte fills clear areas with the old background | Accept a solid fill and say so, or use the cleanup fallback (about $0.20, regenerates product pixels, say so) and compare with the original | | White on white (the same as the sample, a white sneaker on a pale surface) | The edge disappears against a white page | Shadow does the work: use `--shadow 0.5` so the outline is readable; check the edge zoomed in | | Dark or black products | Edge fringes show on white | Keep `refine_foreground` on and zoom to 200% | | Fabric, fur, hair, fine straps | Soft or wispy edges | Expect some loss; check zoomed in | | Very small items (rings, earbuds) | Fill rule makes them huge and soft | Source photo must be at least 1500 px on the product; use `--fill 0.7` | | Very tall or very wide items | The fill is set by the longer side | Use 4:5 for tall items; the checker accepts the longer side at 80 to 92% | | Sets of several items | One cut-out for the group | Cut them out together, never separately | ## What not to do - Do not brighten, sharpen or recolour the product to "make it pop". The listing must match what arrives. - Do not add reflections or props. - Do not return a shot where the product is cropped, tilted unnaturally or smaller than 80% of the frame.