Each image is the setting's own front shot (spin frame 1) for that shape, with the render's sample stone swapped for a real diamond photo at its certificate size. The ring stays the same size (US 6); only the center stone, its prongs and its basket change. Everything is built in code: no image generation, no paid calls.
5 mm
Setting
Shape
Metal
Carat
Real diamonds, certificate size
How it's built
Per image
Remove the render's stone, prongs and basket.
Smaller stone: the shoulders slide in to meet it and the plain band stretches, so the ring's ends stay put. Any small gap left is filled from the band itself.
Lay in the shopper's diamond photo at certificate mm, centred where the render's stone was, then the render's own prongs and basket scaled about that centre. Whatever sat under the old stone is rebuilt from the band.
Scale: the render's ring width = a US 6 ring's outer diameter (19.71 mm).
Checks and limits
1,038 / 1,038 pass: nothing outside the ring moves; every stone matches its certificate width and length (±0.01 mm); the stone's centre stays on the same pixel at every carat.
One-time setup per setting × shape: the stone's edges and its prongs, marked by hand on a grid (about 5 minutes each). Automatic detection kept grabbing the band.
Known flaws: Hayden's small hearts look washed out (that heart's studio photo is low-contrast) with a fill smear beside them; a soft smudge behind small stones on Hayden; big emerald and radiant stones show the render's dark gallery shadow under the stone.
Shapes: every shape each ring is sold in (Linda 9, Marie 10, Hayden 10). Hayden pear and marquise exist only in yellow and rose. Fancy stones resize by certificate width and length separately; prongs re-seat on the new stone's outline.