Nano Banana 2.1 text in images: posters and infographics on Sume

fal says Nano Banana 2.1 improves text rendering for posters and infographics. Sume runs it at $0.10 per 1K image; test your exact words before a print run.

5 min readSume
All posts

Treat it as a strong candidate, not a guarantee. fal's Nano Banana 2.1 page lists enhanced text rendering for posters and infographics among the model's features, and it supports 1K, 2K and 4K outputs. On Sume you can run it as google/nano-banana-2.1 for about $0.10 per 1K image, so a spelling test on ten candidate headlines costs about $1.00.

A cheap spelling test

No vendor page gives a guaranteed accuracy for your text, so run the words you will print. Keep headlines short, put the exact text in quotes, and compare the same prompt across rows. These rows list text-heavy use and are all on Sume.

Sume image catalog rows (list from the Sume repo, billed = list x 1.25), read 2026-10-13
Sume model idBilled per imageRatiosEdit refs
google/nano-banana-2.1$0.10 at 1K15, incl. 4:5Up to 10
ideogram/ideogram-v4.5$0.075 at medium15, incl. 3:1 and 1:3Up to 5
openai/gpt-image-2.5about $0.066 at high 10249, incl. 4:5Up to 16
black-forest-labs/flux.2-pro$0.037513Up to 10

Run the test

The script renders each headline on Nano Banana 2.1 and prints the URLs for a side-by-side check. It handles the 202 fallback by printing the job id instead of failing.

Read each picture for dropped letters, doubled letters and swapped words, and re-roll only the failures.

import os, requests

H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
for text in ["OPEN LATE FRIDAY", "Harvest Market 2026"]:
    r = requests.post(
        "https://api.sume.com/v1/images",
        headers=H,
        json={
            "model": "google/nano-banana-2.1",
            "prompt": f'poster, bold sans-serif headline exactly "{text}"',
            "aspect_ratio": "4:5",
        },
        timeout=60,
    )
    body = r.json()
    if r.status_code == 200:
        print(text, body["data"][0]["url"])
    else:
        print(text, r.status_code, body)

Where it fails

  • Small body text and long paragraphs are still the riskiest.
  • Fixed legal text should be added in your layout tool, not drawn.
  • Lock the final wording before you spend on 4K.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume