Ideogram 4.5 headline variants from one ad: 4 edits for about $0.30

Four headline edits of one approved ad on ideogram/ideogram-v4.5 at medium quality cost about $0.30 by Sume's catalog line. Python that runs them in parallel.

4 min readSume
All posts

Four headline variants of one approved ad cost about $0.30 at medium quality on Sume's Ideogram 4.5 row. That comes from the catalog line: the Fal list price for medium is $0.06 per image, and the docs and code price it at list times 1.25, which is $0.075 per image, so four images is $0.30. Read usage.cost on each response for the real figure, since the docs treat that as the billed amount.

The point of Ideogram 4.5 for this job is that an edit without aspect_ratio keeps the source geometry, so the layout stays put while the words change.

Run four edits at once

Each variant starts from the same source, so the edits do not depend on each other and can run in parallel. The source must be a public HTTPS URL. With references, the first image is the one that gets edited.

import asyncio, os, requests

KEY = os.environ.get("SUME_API_KEY")
SRC = os.environ.get("AD_URL")
if not KEY or not SRC:
    raise SystemExit("set SUME_API_KEY and AD_URL")
HEADS = ["Spring sale", "Two days left", "Free shipping", "New arrivals"]

def edit(i: int, text: str) -> str:
    body = {"model": "ideogram/ideogram-v4.5", "quality": "medium",
            "prompt": f'Change the headline to read "{text}". Keep everything else.',
            "input_references": [{"type": "image_url", "image_url": {"url": SRC}}]}
    h = {"Authorization": f"Bearer {KEY}", "Idempotency-Key": f"ad-head-{i}"}
    r = requests.post("https://api.sume.com/v1/images", headers=h, json=body, timeout=60)
    if r.status_code != 200:
        return f"{r.status_code} {r.text[:120]}"
    d = r.json()
    return f"{d['data'][0]['url']} cost={d.get('usage', {}).get('cost')}"

async def main() -> None:
    out = await asyncio.gather(*(asyncio.to_thread(edit, i, t) for i, t in enumerate(HEADS)))
    print(*out, sep="\n")

asyncio.run(main())

Cost per quality, from the catalog

Ideogram 4.5 on Sume, Fal list price and billed line, read 2026-10-06
QualityFal list price per imageBilled per image (list x 1.25)Four edits
low$0.03$0.0375$0.15
medium (default)$0.06$0.075$0.30
high$0.22$0.275$1.10

What to watch

  • A 202 means the edit outran the 30-second wait. Poll the status_url instead of resending.
  • Failed or cancelled generations are not billed. Completed ones are, even if you do not like the result.
  • Keep the instruction short and name only the headline. Longer instructions give the model more room to change other things.
  • Save each output yourself. Do not feed a variant back as a new source unless you want to stack edits.

Sources

Related posts

More in Models

All Models posts

Written by Sume