FLUX 3 pixel-exact local edits vs the Sume mask_url edit
FLUX 3 Image edits several marked elements in one request. Sume's mask_url edit is documented for ChatGPT Image 2.5 only; here is how to run a local edit.
Black Forest Labs' release notes for October 1, 2026 describe FLUX 3 Image with pixel-exact local edits: mark the element to change and keep the rest as it was, across several elements in one request. On the Sume image API, a documented mask edit is mask_url, listed for ChatGPT Image 2.5. Whether FLUX 3 is in the catalog is something you read from GET /v1/images/models, not from this post.
What the vendor says
From BFL's release notes.
| Item | What the page says |
|---|---|
| Edits | Pixel-exact local edits; recolour, replace, move, resize or remove several elements in a single request. |
| References | Up to ten; name each by its position in the prompt. |
| Resolution | 768sq at $0.041 up to 4k at $0.607 per image. |
| Mode | The prompt decides whether to generate or edit; there is no mode field. |
The Sume route for a local edit
The Image API docs say ChatGPT Image 2.5 supports up to 16 references and an optional mask_url, a public HTTPS mask. Pair it with aspect_ratio: "auto" so the output keeps the source shape. For several elements, send one mask that covers them all, or edit one element per call from the original.
Edit with a mask
Replace the URLs with your own public files.
import os, requests
r = requests.post(
"https://api.sume.com/v1/images",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
timeout=60,
json={
"model": "openai/gpt-image-2.5",
"prompt": "Recolour the masked jacket to forest green; leave all else unchanged.",
"aspect_ratio": "auto",
"mask_url": "https://example.com/jacket-mask.png",
"input_references": [
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
],
},
)
print(r.status_code, r.json())Limits
Pixel-exact is the vendor's claim for its own model. Do not assume the same of another model; compare the unmasked area of an output with the source before shipping. Sume does not publish an equivalent guarantee.
Sources
Related posts
More in Developers
- FLUX API 402, 403 and 503 errors, and Sume's equivalents
BFL returns 402 for credits, 403 for key permission, 503 for load. Sume returns 402 insufficient_credits and 503 provider_capacity_exceeded. What to do.
- Gemini API video upload limits vs how Sume takes media inputs
Gemini accepts video inline under 100 MB or through the File API up to 20 GB paid and 2 GB free. How Sume's video routes take URLs, and where they refuse.
- Gemini Omni Flash provisioned throughput vs Sume plan concurrency
The Gemini API lists provisioned throughput as unsupported for Omni Flash; Google Cloud says it is rolling out. Sume's capacity is a plan concurrency limit.
- Gemini prefixItems tuple schema: Sume rejects it, use an object
Gemini lists prefixItems for tuple-like arrays. Sume's output_schema allowlist omits it and returns unsupported_keyword; model each slot as a named property.
Written by Sume