Ideogram 4.5 with n=4 on Sume: one write, four times the price
A POST /v1/images with n=4 spends one request from the write budget but bills cost_usd x n. Worst-case table for low, medium and high quality.

Two budgets apply to an image call and they count different things. The rate limit counts requests: a POST /v1/images is one write whether n is 1 or 10. The wallet counts images: the image docs say endpoint pricing lines already include the Sume margin, so you pay cost_usd x n. Ideogram 4.5 (ideogram/ideogram-v4.5) accepts n from 1 to 10.
So a loop that raises n to save requests saves nothing on cost and only trims the write count.
Worst case by quality
The docs list Ideogram 4.5 at $0.03, $0.06 or $0.22 per image for quality low, medium or high (medium is the default), at 1K or 2K. Treat these as the ceiling for planning and read the live number from GET /v1/images/models/ideogram/ideogram-v4.5/endpoints, where pricing[].cost_usd is the billed rate.
| Quality | Per image | n=1 | n=4 | n=10 |
|---|---|---|---|---|
| low | $0.03 | $0.03 | $0.12 | $0.30 |
| medium | $0.06 | $0.06 | $0.24 | $0.60 |
| high | $0.22 | $0.22 | $0.88 | $2.20 |
Sample
The key includes quality and n, so changing either is a deliberate new job rather than an idempotency_conflict.
import json, os, urllib.request
PRICE = {"low": 0.03, "medium": 0.06, "high": 0.22} # per image, from the Sume docs
def worst_case(quality: str, n: int) -> float:
return round(PRICE[quality] * n, 4) # one request, cost_usd x n
def generate(prompt: str, quality: str, n: int) -> dict:
req = urllib.request.Request(
"https://api.sume.com/v1/images",
data=json.dumps({"model": "ideogram/ideogram-v4.5", "prompt": prompt,
"quality": quality, "n": n}).encode(),
headers={"x-api-key": os.environ["SUME_API_KEY"],
"content-type": "application/json",
"idempotency-key": f"poster-v1-{quality}-n{n}"},
)
with urllib.request.urlopen(req, timeout=40) as res:
return {"status": res.status, "body": json.load(res)}
for quality in PRICE:
print(quality, "n=4 ->", worst_case(quality, 4), "USD, 1 write against the rate limit")What else changes with n
- The route waits up to 30 seconds and returns
200withdata[].url. Largenand highqualityare the configurations most likely to come back as202with a job envelope, so branch on the status code. - The response
usage.costis the billed amount, which you can add to your own ledger. - Failed or canceled generations are not billed.
Sources
Related posts
More in Pricing
- Image-to-image edit cost: what $8 per 1M image input tokens adds
OpenAI lists image input at $8.00 per 1M tokens for GPT Image 2.5, so every 1,000 input tokens adds $0.008 list ($0.010 on Sume) on top of the output price.
- Is a 540x960 preview render cheaper? Not on Sume Timeline
Sume prices Timeline 1.0 per whole output minute with no resolution term in the docs. Use the free plan to check a Short instead of paying for a small preview.
- Kling 3 Pro 10-second clip: audio on $2.10, off $1.40
On Sume a 10-second Kling v3 Pro clip costs $2.10 with audio and $1.40 without. Per-second rates and when silent is worth it.
- Kling 3 Pro 12-second clip: audio on $2.52, off $1.68
On Sume a 12-second Kling v3 Pro clip costs $2.52 with audio and $1.68 without. Per-second rates and when silent is worth it.
Written by Sume