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.

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.
| Route | Calculation | Total |
|---|---|---|
| Cutouts once | 45 x $0.0225 | $1.0125 |
| Plates, one per size, low | 6 x $0.02475 | $0.1485 |
| Compose 270 ads | local | $0 |
| Plate and cutout route, total | $1.161 | |
| Generate all 270 at low | 270 x $0.02475 | $6.6825 |
| Generate all 270 at medium | 270 x $0.055625 | $15.01875 |
| Generate all 270 at high | 270 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
- 47 minutes of footage in 30 s chunks: upscale, trim and join $31.96
Upscale 47 minutes of archive footage on Sume: 94 chunks of 30 s, $25.38 of upscale, $1.88 of trims and $4.70 of timeline renders. Total $31.96.
- $50 of video: 1,111 seconds at Vidu Q4 540P, 133 at Sume Omni 4K
How many seconds of AI video $50 buys at Vidu Q4 Preview's 540P and 4K rates, with and without 30% off, and at five Sume rows.
- 50-second avatar video with inline captions: $12.25 at Plus
Inline captions on a Sume avatar video do not create a separate billed caption job. A 50-second Plus clip is 50 x $0.245 = $12.25 with or without them.
- 100 game icons at 512px on Nano Banana 2.1: $7.50 on Sume
Nano Banana 2.1 at 0.5K bills about $0.075 an image on Sume, so 100 square icons cost $7.50. Steps for a consistent set, plus the 4K upgrade cost.
Written by Sume