Swap a character into an existing image with an Ideogram 4.5 edit

Put your mascot or character into a finished layout with Ideogram 4.5 on Sume: the layout image goes first, the character image second, one change per call.

5 min readSume
All posts

To swap a character into an existing image, send two images in input_references to Ideogram 4.5 on Sume: the finished layout first, because the first reference is the one that gets edited, and the character image second. Then write a prompt that names which figure to replace and what to keep, and make one change per call.

MindStudio's hands-on test of Ideogram 4.5 reports that when a reference character was swapped into an existing composition, the edit came through clean and the character rendered consistently rather than drifting into a generic version, and it also says a full verdict needs more testing across a wider range of edit types (read 2026-10-06, MindStudio). Treat that as one reviewer's two tasks, not a guarantee. The Sume docs say the model edits the first image and uses up to four more as references, five in total.

What goes where

Order matters. If you put the character first, that image becomes the canvas and the layout becomes a reference, which is the opposite of what you want. Keep a note of the order in your code so the call never flips by accident.

Reference order for an Ideogram 4.5 character swap on Sume, read 2026-10-06
PositionImageRole
1The finished layout or adEdited
2The character or mascotReference
3 to 5Extra poses or a logoOptional references

The edit call

Omit aspect_ratio so the output keeps the shape of the layout, as the docs describe. Medium quality is the default and is enough to test; the price list is $0.03, $0.06 or $0.22 per image by quality before Sume's 1.25 multiplier (read 2026-10-06, fal).

import os
import requests

def ref(url):
    return {"type": "image_url", "image_url": {"url": url}}

body = {
    "model": "ideogram/ideogram-v4.5",
    "prompt": (
        "Replace the person on the left of the first image with the "
        "character shown in the second image. Keep the background, the "
        "lighting, the pose and all text exactly as they are."
    ),
    "input_references": [ref(os.environ["LAYOUT_URL"]), ref(os.environ["CHARACTER_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])

Check the result

Compare the result with the layout. Look at the character's face and outfit against the reference, then at everything you asked to keep: text, background and lighting. A swap that changes the headline has failed even if the character looks right.

If the character is only close, add a second reference from another angle, which uses one of the four extra slots. If the layout moved, tighten the keep list rather than raising the quality. Raising quality costs more and does not make the model follow an instruction it did not understand; a clearer sentence usually does. When you have a prompt that works, save it with the two source URLs, so the same swap can be repeated for the next campaign without rediscovering the wording.

Prompt wording that helps

A swap prompt has two jobs: say what to change and say what to keep. Be explicit on both.

  • Name the target: the person on the left, the mascot on the sign.
  • Say the source: the character from the second image.
  • List what stays: the pose, lighting, background and all text.
  • Give one change per call; do outfit and background in separate passes.
  • Re-run from the original if the first result drifts, instead of editing the edit.

Cost and batching

One swap is one billed edit. At the default medium quality the list price is $0.06 per image, so Sume's rate is $0.075 per edit with its 1.25 multiplier (the catalog rounds a billed amount up to a whole cent, 8 cents), and a set of ten ad layouts costs $0.75 to $0.80 if each swap works first time. Budget for some retries. A good routine is to approve the swap on one layout, then run the same prompt over the other nine, then review each result. Run the calls in parallel with a small limit and keep the results keyed by layout, so a failed one can be retried alone without repeating the others.

Rights and honesty

Only swap in characters you own or have permission to use, and do not put a real person into an image without their consent. If the image will be published, check the platform's rules on AI-edited images. Sume makes the file; the decision to publish it is yours.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume