Ideogram ad localizer API: exact_copy vs a Sume edit prompt

Ideogram's ad-localizer takes one language per call and an exact_copy mapping. On Sume you send the ad as a reference and spell out the copy in the prompt.

4 min readSume
All posts

Ideogram's POST /v2/tool/ad-localizer rebuilds an ad in one target language, and exact_copy pins wording with one original => replacement mapping per line. Sume has no localizer tool or exact_copy field: you send the ad in input_references, write the replacement text in the prompt, and make one call per language.

Ideogram facts are from its API reference; Sume facts from Image generation, read 2026-10-01.

What does the localizer do?

The source ad goes in as image (max 25MB). Layout, logos, brand type and product are preserved, so no size is needed. language is required and each request covers one language. Without exact_copy, all visible marketing copy is translated; with it, listed elements are set character for character and unlisted ones stay as in the source. An optional prompt can add direction such as keeping a badge in English.

How do the controls compare?

Ad localization controls, read 2026-10-01.
ControlIdeogram ad-localizerSume POST /v1/images
Source adimage fileinput_references (up to 16 on GPT Image 2.5)
Target languagelanguage enum, one per requestIn the prompt; one call per language
Fixed wordingexact_copy mapping linesQuote the exact strings in the prompt
Variationsnum_imagesn up to 10
Provider optionsNot applicableNone: passthrough list is empty in v1

How do I write the prompt?

List each line the way exact_copy would: the original text, then the replacement, one per line, and tell the model to leave everything else unchanged. Set aspect_ratio: "auto" so the output matches the source ad. Sume does not enforce character-for-character placement, so check every output for typos before shipping.

For single-string fixes rather than a full rebuild, see changing text in an image.

Can I pass provider-specific options?

No. The docs say allowed_passthrough_parameters is empty for every endpoint in v1, so provider.options must be omitted or empty.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume