What do 50 AI image cards cost at low, medium and high quality?

Fifty Ideogram 4.5 images cost $1.875 at low, $3.75 at medium and $13.75 at high by Sume's catalog line. Read usage.cost on each result to confirm.

4 min readSume
All posts

On Sume's Ideogram 4.5 row, fifty images cost $1.875 at low quality, $3.75 at medium and $13.75 at high. The numbers come from the catalog: Fal list prices of $0.03, $0.06 and $0.22 per image, billed at list times 1.25. Those prices do not change with image size, according to the docs.

That is the planning figure. The real one is the usage.cost field on each completed response, so total that, not this table.

The table

Fifty images on ideogram/ideogram-v4.5, from the Image API docs read 2026-10-06
QualityBilled per image50 imagesWhere the number comes from
low$0.0375$1.875$0.03 list x 1.25
medium$0.075$3.75$0.06 list x 1.25, the default
high$0.275$13.75$0.22 list x 1.25

Where the money goes

The gap between medium and high is almost four times, so the quality choice matters more than the count. A sensible split is low for layout drafts, medium for the version you show a client, and high only for the final that gets printed or enlarged.

The Image API docs say failed or cancelled generations are not charged and completed ones are billed in full. A batch that you throw away still costs what it cost. Review at low quality before you pay for high.

Total the bill from the responses

A short loop makes the first three calls and adds up usage.cost. Raise the range once you have seen the numbers match your expectation.

import os, requests

key = os.environ.get("SUME_API_KEY")
if not key:
    raise SystemExit("set SUME_API_KEY")
total = 0.0
for i in range(3):
    r = requests.post(
        "https://api.sume.com/v1/images",
        headers={"Authorization": f"Bearer {key}", "Idempotency-Key": f"cards-{i}"},
        json={"model": "ideogram/ideogram-v4.5", "quality": "low",
              "prompt": f"Greeting card number {i + 1}, flat colors, large type"},
        timeout=60,
    )
    if r.status_code != 200:
        print(i, r.status_code)
        continue
    cost = r.json().get("usage", {}).get("cost", 0)
    total += cost
    print(i, cost)
print("total", round(total, 4))

What is not in the number

  • Credits, plan fees and any workspace discount are not in this table.
  • Other image models on Sume price differently. Call the model's endpoints route for its pricing lines.
  • Retries that fail are free, but retries after a completed result are new generations.

A budget rule for a batch

Set a ceiling before you start. Multiply the count by the billed price for the quality you chose, add a margin for the images you will regenerate, and stop the loop when the running total from usage.cost passes that line. A runaway loop with a high-quality setting is the expensive mistake here, and a check inside the loop is one line of code.

Sources

Related posts

More in Pricing

All Pricing posts

Written by Sume