AI storefront sign mockup from a shop photo: quote the sign text

Show a new shop sign on your real storefront photo with a Sume image edit: put the exact words in quotes, keep the facade fixed, and proofread the lettering.

4 min readSume
All posts

A sign mockup is an edit with exact words

A sign maker or a shop owner wants to see new lettering on the actual front of the shop before paying for fabrication. Photograph the storefront, then edit the photo so only the fascia sign changes.

Two things decide whether the result is usable: the model has to keep the facade, and the words have to be spelled right. OpenAI's image generation guide says its model can still struggle with precise text placement and clarity, so plan to proofread every render.

Sume's catalog also lists Ideogram 4.5 as ideogram/ideogram-v4.5. With input_references it edits the first image and uses up to four more as references, five in total. Ideogram's API overview says pixels an edit does not touch are copied exactly from your image. That makes it a second model to try on the same photo.

Put the words in quotes and say where they go

Write the exact sign text in quotation marks, give the font style in plain words, and name the position: centered on the fascia above the door, one line. Short text behaves better than long text. A shop name and a short descriptor is realistic; a paragraph of opening hours belongs on a window decal you set in a design tool.

import os
import requests

REFS = [
    "https://example.com/shop.jpg",
]
resp = requests.post(
    "https://api.sume.com/v1/images",
    headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
    json={
        "model": "openai/gpt-image-2.5-sunburst",
        "prompt": "Replace the fascia sign with white hand-painted serif "
                  "lettering on dark green that reads \"HOLLOWAY BAKERY\". Keep "
                  "the brick, windows, door and pavement unchanged.",
        "aspect_ratio": "auto",
        "input_references": [
            {"type": "image_url", "image_url": {"url": u}} for u in REFS
        ],
    },
    timeout=60,
)
print(resp.status_code)
print(resp.json())

Two catalog models for a sign edit

Run the same prompt on both, read the sign at full size and compare. Spelling errors are easy to see and a failed generation is not billed.

Two models for a sign edit (Sume docs and Ideogram docs, read 2026-10-03)
Model id on SumeReferencesQuality setting
openai/gpt-image-2.5-sunburstUp to 16auto, low, medium, high, xhigh, max
ideogram/ideogram-v4.5First is edited, up to 4 morelow, medium, high

Keep the real design file separate

The mockup shows the idea. Fabrication needs vector artwork, and Sume's image models return raster images, so give the sign maker the approved lettering as a design file and use the render only to agree on placement and color.

Sync, jobs and the bill

Treat the response code as the switch. 200 means the image body is in the response. 202 means a job was created because the 30-second wait ran out, and the image is read later from GET /v1/jobs/{id}/result.

A completed image is billed in full and a failed or cancelled one is not. The charge shown in usage.cost is provider list price times 1.25, so you can log it per edit and sum a batch from those numbers.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume