Fix wrong text on a product label with ideogram-v4.5 and references

ideogram-v4.5 edits the first image and takes up to four more as references, five in total. Send a label photo plus a type sample; cost per edit by quality.

3 min readSume
All posts

To fix lettering on a product photo with Ideogram 4.5 on Sume, send the photo as the first input_references entry and describe the exact text you want. The first image is edited and up to four more are used as references, five in total, per the Image API. An edit costs $0.0375, $0.075 or $0.275 depending on quality.

Request

Without aspect_ratio an edit keeps the shape of the source image. Quote the text and say where it goes.

import os, requests

r = requests.post(
    "https://api.sume.com/v1/images",
    headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
    json={
        "model": "ideogram/ideogram-v4.5",
        "prompt": 'Change the label text to "BATCH 07 - OAT & HONEY". Keep the jar, light and shadow.',
        "quality": "medium",
        "input_references": [
            {"type": "image_url", "image_url": {"url": "https://example.com/jar.png"}},
            {"type": "image_url", "image_url": {"url": "https://example.com/label-font-sample.png"}},
        ],
    },
    timeout=60,
)
print(r.status_code, r.json())

Cost per quality tier

Price follows quality, not size: the resolution choice of 1K or 2K does not change it.

Sume price, ideogram-v4.5, read 2026-10-08
QualityPer editPer 50 labelsPer 500 labels
low$0.0375$1.875$18.75
medium$0.075$3.75$37.50
high$0.275$13.75$137.50

Practical notes

  • References must be public HTTPS URLs; localhost and private addresses are rejected before submission.
  • Compare the result against the string you asked for in your own code. Text rendering is a request, not a guarantee, so keep the check cheap and automatic.
  • mask_url is a gpt-image-2.5 field. On Ideogram 4.5 the edit is prompt-driven, and a mask returns a 400.

Workflow for a whole catalog

Loop over SKUs, submit each edit at low, compare the label text in your own check, and re-run only the failures at medium or high.

  • Send an Idempotency-Key per SKU so a retry cannot double-bill.
  • Handle a 202 response by polling the status_url from the job envelope.
  • Store the output URL next to the SKU; generated media URLs are signed Sume-hosted links.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume