500 SKUs with 6 images each: what a marketplace catalog costs on Sume
3,000 listing images for a 500-SKU catalog cost $22.13 on gpt-image-2.5 low, $131.25 on Seedream 5 Lite and $300 on Nano Banana 2.1. Table and budget guard.

A 500-SKU catalog with six images per SKU is 3,000 images, which costs $22.125 on gpt-image-2.5 low at 1024, $131.25 on Seedream 5 Lite and $300.00 on Nano Banana 2.1 through Sume.
With many images per listing, the per-image price decides the plan.
3,000-image bill
| Model row | Per image | Per SKU (6) | 500 SKUs (3,000) |
|---|---|---|---|
| gpt-image-2.5 low, 1024 | $0.007375 | $0.04425 | $22.125 |
| gpt-image-2.5 medium, 1024 | $0.0165 | $0.099 | $49.50 |
| grok-image | $0.025 | $0.15 | $75.00 |
| qwen-image | $0.025 | $0.15 | $75.00 |
| flux-2-pro | $0.0375 | $0.225 | $112.50 |
| seedream-5-lite | $0.04375 | $0.2625 | $131.25 |
| nano-banana-2.1, 1K | $0.10 | $0.60 | $300.00 |
Batch loop with a spend ceiling
Sume reserves the price at submit and a short balance returns 402 insufficient_credits, as described in Generation admission. Stop the loop on that status rather than retrying.
import os, requests
H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
skus = ["tee-001", "tee-002"]
angles = ["front", "back", "detail", "flat lay", "on model", "in a box"]
for sku in skus:
for a in angles:
r = requests.post("https://api.sume.com/v1/images", headers=H, timeout=60, json={
"model": "openai/gpt-image-2.5", "quality": "low",
"image_size": {"width": 1024, "height": 1024},
"prompt": f"Cotton t-shirt {sku}, {a} view, white background",
})
if r.status_code == 402:
raise SystemExit("out of credits")
print(sku, a, r.status_code)Keep the work cheap
Use n (1 to 10 per call; each model has a lower ceiling, so read its n descriptor in the catalog) for variants in one call, draft at the cheapest row, and spend on a higher row only for the hero image. For video listings, stitch the stills with Timeline.
Planning notes
- Draft pass at gpt-image-2.5 low for all 500 SKUs: $3.6875.
- Final pass on the best angle only (500 images) at medium: $8.25.
- Rate and concurrency limits apply when workers pick up jobs; see Generation admission for queue capacity.
- Read
GET /v1/images/models/{model_id}/endpointsfor the livepricingline before a large run: prices are catalog data and can change.
Sources
Related posts
More in Pricing
- $5,000 of Omni Flash on Sume: 40,000 seconds at 720p, 11 hours
$5,000 buys 40,000 seconds (11.1 hours) of gemini-omni-flash-1.1 at 720p on Sume, or 26,666 seconds at 1080p. All four resolutions in one table.
- 52 weeks of a 59-second Short plus a 15-second teaser: $16.64
One 59-second Short with burned captions ($0.30) and a 15-second teaser trim ($0.02) each week is $0.32, or $16.64 over 52 weeks, on Sume's flat media prices.
- 60 vs 180 seconds: what a longer Short costs by video model
A 60-, 120- and 180-second Short built from Wan 3.0, Seedance 2.5 or Gemini Omni Flash clips plus a Timeline render, priced from Sume's estimators.
- 600 Fabric replies on Startup: $562.50 total, $45 held at once
At $0.1875 per audio second, 600 five-second Fabric clips cost $562.50. Startup accepts 48 jobs, so at most $45.00 is reserved at a time.
Written by Sume