Ideogram material swap API: 4 masks vs Sume's one mask_url
Ideogram's material-swap tool takes up to 4 masks and material images. Sume's images API has one optional mask_url plus up to 16 references.

Ideogram's POST /v2/tool/material-swap is a dedicated tool: one product photo, up to 4 masks and the material images to apply. Sume's images API has no such tool. It has one optional mask_url on ChatGPT Image 2.5 edits, plus up to 16 image references and a prompt, so a 4-region swap becomes a prompt that names each region.
Ideogram facts are from its API reference and Sume facts from Image generation, both read 2026-10-01.
What does Ideogram's material swap accept?
The endpoint is multipart. image is required (max 25MB); masks holds up to 4 files, each with the same pixel dimensions as the photo; materials holds reference images whose color, texture, pattern scale and orientation are applied to the masked regions, paired by position. It returns a generation_id to poll, or delivers to a webhook_url.
What does Sume offer instead?
| Need | Ideogram material-swap | Sume POST /v1/images |
|---|---|---|
| Masks | Up to 4 masks files | One optional mask_url (public HTTPS), ChatGPT Image 2.5 edits |
| Material images | materials, one per mask | Up to 16 image references on ChatGPT Image 2.5 |
| Region-to-material pairing | By position | Not a parameter; describe it in the prompt |
| Result | Poll generation_id or webhook | data[].url, Sume-hosted and signed |
How do I do a multi-region swap on Sume?
Send the product photo and the material images as input_references, set mask_url to one mask that covers the regions you want changed, and say in the prompt which material goes where. Treat the pairing as a prompt instruction, not a guarantee: the docs define no per-mask pairing. For edits, the docs also say to prefer aspect_ratio: "auto" to match the reference, and note that omitting the field is not the same as auto.
If you need strict one-mask-one-material control, run one edit per region and feed each result into the next. Compare that against Ideogram 4.5 precise edit limits if you are weighing masks.
What happens if I send a parameter Sume does not list?
It is rejected, not dropped. The docs say a request that sets a parameter the selected model does not list is rejected with 400 unsupported_parameter. Read the model's capability descriptors from GET /v1/images/models first, since mask_url is documented for ChatGPT Image 2.5 only.
Sources
Related posts
More in Developers
- Ideogram API upload limits (10, 25, 50 MB) vs Sume image URLs
Ideogram caps uploads per endpoint at 10MB, 25MB or 50MB, multipart only. Sume takes public HTTPS image URLs and lists 413 and 415 errors for bad bodies.
- Ideogram Reframe aspect_ratio snaps to 1K; Sume's WxH mapping
Ideogram Reframe with Nano Banana 2 resolves aspect_ratio to the closest 1K size the model supports. Sume maps WxH on Nano Banana to the native aspect_ratio.
- Ideogram remove-background 200 with an error body vs Sume errors
Ideogram's remove-background can return HTTP 200 whose body holds error and status_code. Check the body, not just the status. Sume reports failures on the job.
- Ideogram API seed for repeatable results vs Sume's 400
Ideogram endpoints take an optional seed for repeatable results. Sume's image schema has seed, but no model advertises it, so it returns 400.
Written by Sume