Ideogram 4.5 banner translation, then animation: $0.70 per language
Edit the text in one banner image per language with Ideogram 4.5 ($0.075), then animate it with Omni Flash 1.1 (5 s, $0.625). Python code and the cost math.

To localize an ad banner and animate it, edit the headline in the still image with Ideogram 4.5, then send the edited image to an image-to-video model. On Sume that costs about $0.70 per language: $0.075 for a medium-quality edit and $0.625 for a 5-second Gemini Omni Flash 1.1 clip at 720p.
The order matters. You fix and approve the text once, in an image you can read, and the video step only adds motion. That is the safer way to ship a sale price in five languages.
What is claimed, and what Sume lists
Ideogram announced 4.5 on 2026-09-30 as the most precise edit model, one that eliminates artifact buildup so that multi-turn editing is possible (Ideogram on X, read 2026-10-05). A partner page, Morphic (read 2026-10-05, not the vendor), lists native 2K, translation of text in place, and copying unchanged pixels from the source. I treat both as vendor-side claims and I did not measure them.
On Sume the model is ideogram/ideogram-v4.5. Without references it generates from text. With input_references it edits the first image and uses up to four more as references. Quality is low, medium (default) or high, and the resolution is 1K or 2K. An edit without aspect_ratio keeps the shape of the source image. The Image API docs list the fal list prices as $0.03, $0.06 and $0.22 per image by quality, and Sume bills the list times 1.25.
The animation step
Omni Flash 1.1 is a good animator for this job because it takes a first frame and has native audio always on. The Video Router docs list image_to_video with image_url and an optional end_image_url, 3 to 10 seconds, 360p to 4K, 16:9 or 9:16. Google's launch post (read 2026-10-05) describes first and last frame control. Audio is generated with the clip, so check the sound before you publish, or replace the track.
| Step | Rate | Per language |
|---|---|---|
| Ideogram 4.5 edit, medium | $0.075 per image | $0.075 |
| Omni Flash 1.1, 720p, 5 s | $0.125 per second | $0.625 |
| Total per language | $0.70 | |
| Five languages | $3.50 | |
| Ten languages, high-quality edit ($0.275) | $9.00 |
The two calls in Python
The script below translates, then animates, for three languages. Replace the source URL with your own public HTTPS banner. Each animate call carries its own Idempotency-Key, so a retry cannot create a second paid job.
import os
import requests
H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
SRC = "https://example.com/banner-en.png"
def translate(lang: str) -> str:
r = requests.post("https://api.sume.com/v1/images", headers=H, json={
"model": "ideogram/ideogram-v4.5",
"prompt": f"Translate the headline into {lang}. Change nothing else.",
"input_references": [{"type": "image_url", "image_url": {"url": SRC}}],
"quality": "medium",
})
r.raise_for_status()
return r.json()["data"][0]["url"]
def animate(image_url: str, key: str) -> dict:
r = requests.post("https://api.sume.com/v1/video-router/generate",
headers={**H, "Idempotency-Key": key}, json={
"model": "gemini-omni-flash-1.1", "image_url": image_url,
"prompt": "Slow push-in, confetti drifts down, text stays still",
"resolution": "720p", "duration": 5, "aspect_ratio": "9:16",
"mode": "async"})
r.raise_for_status()
return r.json()
for lang in ["Spanish", "German", "French"]:
print(lang, animate(translate(lang), f"banner-{lang.lower()}"))
Handling the response and the risks
The image call is synchronous by default on this route and waits up to 30 seconds, then falls back to a job envelope. In production, handle both: read data[].url when it is present, and poll the job when the call returns a 202. The video call is async and returns a job to poll with GET /v1/jobs/{id}/status.
Do not trust the translation. Ideogram can place the text, but it does not know your market. Have a speaker read the edited still before you animate it. And check that your source banner has room for the longer languages: German and French headlines usually run longer than English, so leave padding.
Finally, pull a frame from the finished clip and confirm that the text is unchanged after animation. The prompt above says the text stays still, but a motion model can still shift it. If it does, animate a version of the banner with the text removed and add the text back as a caption or overlay.
Order the work by stage
Batch the work by stage, not by language. Run all the edits first, review the stills as a contact sheet, fix the one or two that need a retake, and only then start the animation jobs. That way a text error never reaches a paid video render.
For a holiday campaign, the language list is a business decision. Start with the markets where you actually ship before Black Friday, since a translated banner for a country you cannot deliver to is wasted spend. Five languages cost $3.50 through this route, so the money is not the constraint. The review time is.
If the offer differs by market, put the price in the prompt for each language rather than relying on translation of a number. 'Translate the headline into German and change the price to 24,90 EUR' is a precise instruction, and the still you review will show whether the model followed it.
Sources
Related posts
More in Use cases
- Index-Translate is Apache-2.0: what to check for commercial captions
Bilibili lists Index-Translate under Apache-2.0 on GitHub and Hugging Face. Check the license text, the public API terms and your own markets before shipping.
- Indie game trailer: 40 s of Omni with 3-second gameplay references
Trim 3-second gameplay captures with Sume video trim and feed them to Gemini Omni 1.1 Flash as video references for a 40-second trailer. Steps and cost.
- Instagram Feed 1:1 and 4:5 ads: keep bottom and sides clear
Meta says 9:16 ads keep all four edges clear, while non-9:16 Instagram Feed ads (1:1, 4:5) keep the bottom and sides clear. What that changes for Sume captions.
- Instagram Feed video ad primary text: 125 characters, 30 hashtags
Meta's Instagram Feed video ad page lists primary text at 125 characters and 30 hashtags at most. Check bulk-generated copy against both before upload.
Written by Sume