Fix one typo in an AI-generated image: quote the old and new text

Send the image as the first input_references entry and name the wrong text and the right text in quotes. Ideogram 4.5 on Sume costs $0.0375 to $0.275 per try.

4 min readSume
All posts

To fix a typo in a generated image, send the image as the first input_references entry and write the prompt as a replacement: change the text "OPEN 24 HORUS" to "OPEN 24 HOURS" and leave everything else as it is. On Ideogram 4.5 through Sume a try costs $0.0375 at low and $0.075 at the default medium, so the cheap route is to try low first.

A prompt that works as a pattern

Name the wrong text, the right text, and what must not move. Use straight quotes around both strings and one change per edit.

Keep the original generated image and its prompt next to the fixed one. If the fix breaks something else, you can go back to the original and try again with a shorter keep list, instead of editing the broken version.

  • Say where: "on the sign above the door".
  • Quote the old text and the new text exactly, including case.
  • End with a keep list: "Do not change the lettering style, colours, layout or any other word."
  • Send no aspect_ratio, so the picture keeps its shape (Image API docs).

What each try costs

Fal's list prices are by quality, not by size (read 2026-10-05), and Sume bills list x 1.25.

Cost of typo-fix attempts on Ideogram 4.5 via Sume (read 2026-10-05)
QualityPer tryThree tries
low$0.0375$0.1125
medium$0.075$0.225
high$0.275$0.825

The loop in code

Try low once, look at it, and move up only if the letters are wrong.

import os, requests

def fix(url, quality):
    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 text "OPEN 24 HORUS" to "OPEN 24 HOURS". Change nothing else.',
            "input_references": [{"image_url": {"url": url}}],
            "quality": quality,
        },
        timeout=120,
    )
    r.raise_for_status()
    return r.json()

body = fix("https://example.com/sign.png", "low")
print(body["data"][0]["url"])

When to stop editing

If two tries at high still garble the word, stop. Every pass is a new render, and an edit loop can fix one word and change another. For text that must be exact, such as a price or a legal line, leave the area empty in the picture and add the words in code, as you would for a label or a sign.

Picking the right tier

A typo fix is a small, local change, so start at low. If the letters are right but the style of the letters shifted, that is a drift problem and high may help. If the letters are wrong, a higher tier is not a guarantee, and a prompt with fewer instructions often does better.

Do not ask for the typo fix and a style change in the same edit. Two changes in one pass make it hard to tell which instruction caused a problem, and you pay for the attempt either way.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume