Dark mode hero image: one Ideogram 4.5 edit keeps the text
Make a dark-theme twin of a light hero on Sume with one Ideogram 4.5 edit: the background changes, the headline and layout stay, and the shape matches.

To make a dark mode version of an existing hero image, send the light image as the only reference to Ideogram 4.5 on Sume and ask for a dark background while keeping the headline, layout and subject exactly as they are. The result keeps the source shape when you omit aspect_ratio, so the two files drop into the same slot.
Ideogram 4.5 fits this job because the work is an edit with text in it. fal's page describes the model as built for posters and logos with accurate text rendering (read 2026-10-06, fal), and a hands-on review says the update is about precise edits such as fixing text without regenerating the image (read 2026-10-06, MindStudio). The Sume docs say that with input_references the model edits the first image, and an edit without aspect_ratio keeps the shape of the source.
Light to dark in one call
Write the prompt in three parts: the new background, the elements that must not change, and the contrast rule for text. Quote the headline so the model knows which words to preserve. Keep the instruction to one change; if you also want a new product angle, do that in a separate edit.
| Quality | Billed per edit | Use it for |
|---|---|---|
| low | $0.0375 | First pass to test the prompt |
| medium | $0.075 | Most heroes |
| high | $0.275 | Final art with fine detail |
The request
The call sends the light hero and no ratio. If the headline is long, copy it into the prompt exactly.
import os
import requests
body = {
"model": "ideogram/ideogram-v4.5",
"prompt": (
'Change the background to a deep navy, almost black. Keep the '
'headline "Ship faster" and every other element in the same '
"position. Make the headline white so it stays easy to read."
),
"input_references": [
{"type": "image_url", "image_url": {"url": os.environ["LIGHT_HERO_URL"]}}
],
"quality": "medium",
}
r = requests.post(
"https://api.sume.com/v1/images",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
json=body,
timeout=60,
)
print(r.status_code)
print(r.json()["data"][0]["url"] if r.status_code == 200 else r.text[:300])What to check on the dark version
A dark version is not only a color swap, and a short review catches most problems before they ship.
- Text is still the same words and still readable against the new background.
- Logos and product edges have no light halo left from the old background.
- Shadows and highlights make sense for a dark scene.
- The image still looks right next to your dark theme's surface color.
- The two files have the same dimensions, so your picture element can swap them.
Serving the pair
Serve the two files with a picture element and a prefers-color-scheme media query, so the browser picks the right one without script. Keep the file names parallel, such as hero-light.png and hero-dark.png, and store both next to the prompt that made the dark one. When the light hero changes next quarter, rerun the same edit on the new image and the pair stays in step. Download the files and host them yourself; do not hotlink a generation URL in a long-lived page.
Why edit instead of regenerate
Regenerating from the original prompt gives you a new picture that happens to share a theme. An edit starts from the exact pixels of the approved light hero, so the layout, the subject and the wording stay put and only the background changes. That matters when the light version has already been reviewed by design and legal, since a regenerated version would need a full review again.
It also helps with consistency across a set. If you have a dozen landing pages with heroes, running one edit prompt over each gives dark twins that read as a family, which a dozen independent generations rarely do.
- Keep the edit prompt in version control next to the light image.
- Run low quality first to test the wording, then medium for the final.
- Compare both files at the same zoom before shipping.
A note on contrast
Dark backgrounds make small type harder to read, not easier. If the headline was dark gray on white, ask for it to become white or a pale tint, and view the result at the size it will appear on a phone. Check the contrast ratio with a standard checker; do not rely on how it looks on a large monitor.
An edit can alter more than you ask, so compare the two images carefully. If the model changes the product or the type, try again with a firmer keep sentence, not a higher quality. If the logo has a transparent background, a pure edit may not give you the clean cutout you need; for that, see the transparent options in the Image API docs.
Sources
Related posts
More in Use cases
- Digital gift card art via API: generate the art, print the code
Make digital gift card artwork with GPT Image 2.5 on Sume, leave a clear text band, then print the amount and code in Pillow so no model ever types a real code.
- Product hero video: pin the first frame to your own packshot
Use frame_images with first_frame on sume/auto so a 6-second product video opens on your exact packshot, not a regenerated lookalike.
- Graduation announcement card art at 4:5, name and year added in code
Generate graduation card art on Sume at 4:5 with a clear middle, then add the graduate's name and year in code so the details are exact and easy to change.
- Homebrew beer label art with an API: the name and ABV added in code
Generate square label art on Sume with no text, then draw the beer name, style and ABV in code so every batch gets exact numbers on the same artwork.
Written by Sume