45 SKUs by 6 ad sizes: 270 composites from 45 cutouts for $1.16

Cut out 45 SKUs once ($1.0125), make one low-quality plate per ad size ($0.1485), compose 270 ads locally: $1.161, against $6.68 to generate all 270.

5 min readSume
All posts

Forty-five SKUs in six ad sizes make 270 ads. Cut each product out once at $0.0225 (45 x $0.0225 = $1.0125), generate one backdrop plate per size at GPT Image 2.5 low ($0.02475 x 6 = $0.1485), and compose all 270 ads in code. The bill is $1.161. Generating each of the 270 as a new image at low quality would be 270 x $0.02475 = $6.6825.

Why the numbers scale this way

A cutout is a property of the product, so it is paid for once, not once per size. A plate is a property of the size, so it is paid for once per size. The composite is Pillow on your machine. The product of the two, 45 x 6 = 270, costs nothing extra in API calls.

Generating each ad as a new image multiplies the model price by 270 and also asks the model to redraw each product, which can change its shape or label between sizes.

45 SKUs x 6 sizes, Sume list prices, as of 2026-10-08
RouteCalculationTotal
Cutouts once45 x $0.0225$1.0125
Plates, one per size, low6 x $0.02475$0.1485
Compose 270 adslocal$0
Plate and cutout route, total$1.161
Generate all 270 at low270 x $0.02475$6.6825
Generate all 270 at medium270 x $0.055625$15.01875
Generate all 270 at high270 x $0.2225$60.075

Choosing the six sizes

Pick the sizes by placement: a square feed ad, a 4:5 portrait feed ad, a 9:16 story, a 16:9 video thumbnail, a wide banner and a tall banner. The Image API supports named aspect ratios such as 1:1, 4:5, 9:16, 16:9, 21:9 and 1:4, so plates can be asked for at the shape each placement needs. Check the model's listed descriptors before you pin a ratio.

For GPT Image 2.5 the custom-pixel rules are that both edges are multiples of 16, the longest edge is 3840, the ratio is at most 3:1, and the pixel count is between 655,360 and 8,294,400.

Where the plan needs care

The product sits in the same position relative to the plate in every size unless your composer says otherwise. Write one layout function per size with the product's anchor point and a safe margin, then run it for all 45 cutouts. Look at the first three results for each size before you run the rest.

If a SKU has a second photo angle, that is another cutout at $0.0225. Adding a second angle for all 45 is $1.0125 more and still keeps the total near $2.17. See the order of operations if a size also needs an upscale.

A composer outline

Keep the composer as a table of sizes. For each size, store the canvas width and height, the product's maximum box, an anchor point and a margin. Loop over the cutouts and the sizes, scale each cutout to fit its box, paste it with its own alpha, and save a JPG or PNG named by SKU and size.

Because 270 files come out of that loop in seconds, you can afford to change the layout and run it again. Re-running the composer is free, while re-running the API is not. That is the real saving of this approach: layout changes cost nothing.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume