Add a logo to a product image: Ideogram 4.5 with two input references

Send the product photo first and the logo second in input_references on Sume, and say which is which in the prompt. Order matters: the first image is edited.

5 min readSume
All posts

To put a logo on a product photo with Ideogram 4.5, send two entries in input_references on POST /v1/images: the product photo first and the logo second. Sume's Image API docs say that with references the model edits the first image and uses up to 4 more as references, 5 in total. So the order is not cosmetic: put the logo first and the model will try to edit the logo.

A partner page, Morphic's Ideogram 4.5 page (not the vendor), lists up to 4 reference images per edit. Sume's own cap, 5 images including the edited one, is the number to build to.

The request

The prompt has to tell the model what each image is. Do not leave it to guess.

curl -X POST https://api.sume.com/v1/images \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: logo-on-mug-001" \
  -d '{
    "model": "ideogram/ideogram-v4.5",
    "quality": "medium",
    "prompt": "Image 1 is the mug photo to edit. Image 2 is the logo. Print the logo on the mug body, centered, following the curve. Keep everything else in image 1 identical.",
    "input_references": [
      {"type": "image_url", "image_url": {"url": "https://example.com/mug.jpg"}},
      {"type": "image_url", "image_url": {"url": "https://example.com/logo.png"}}
    ]
  }'

Placement words that work

Be concrete about where and how big. "Centered on the front of the mug, about a third of the mug width" gives the model a target; "add the logo" does not. Use physical words for the surface: "printed", "embossed", "embroidered", "stamped", "on the label". If the product is curved, say it follows the curve. If the logo should not be rotated or recolored, say that too.

For a set of products, keep the logo prompt identical and change only the product image and the product name. That makes the outputs comparable and the batch easy to script: one function, a list of product URLs.

Two quick tests

Run these before a batch. First, swap the order of the two images on one run and see what happens. It confirms for yourself that the first image is the one that gets edited. Second, run the same prompt at low and high on one product and see whether the logo detail improves enough to justify the tier. The docs list the tiers as low, medium and high, with medium the default when you omit the field.

Checklist before you send

  • Both URLs are public HTTPS. The docs say Sume rejects localhost, private-network and non-HTTPS URLs before submission.
  • The logo is a clean file: flat background or transparency, no screenshot border.
  • The photo shows the area where the logo will go, facing the camera.
  • You leave out aspect_ratio, so the result keeps the shape of image 1.
  • You do not send mask_url. The docs list it for ChatGPT Image 2.5 edits.

What the model will and will not keep

Treat the logo as an interpretation. A model can redraw thin lines, small type or exact brand colors. If the logo must be exact, composite the real file onto the result yourself, and use the model only to make the scene. The same applies to barcodes and QR codes.

Check three things on the output: the logo spelling, the colors against your brand file, and the product edges around the logo. Run a draft at quality: low first; promote the prompt that works.

Remember the limit on the reference list. The Image API docs say an edit takes the first image as the one to change and up to four more, five in all. A logo job needs two. That leaves room to add a third reference, such as a photo of the finished packaging style, but each extra image is one more thing the model has to weigh, so add references one at a time and keep the ones that help. Keep the scope of this advice in view. It rests on the Sume docs and the vendor pages named in the sources, read on 2026-10-05, and on nothing measured by Sume. Where a behavior depends on your own images, such as how a model redraws a certain typeface, run a small pilot at the low quality tier and judge the result yourself before you plan a batch. Write down the prompt, the model id and the quality tier you used, so the run can be repeated. When the catalog or the docs change, re-read them; the live catalog is the contract, and a post is only a snapshot of it.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume