Midjourney edits only the selected pixels: repeat edits on Sume safely
Midjourney says targeted edits change only selected pixels. On Sume, mask edits and editing from the original keep repeated edits from degrading your image.
Midjourney's 9/24 update says that making targeted edits "will change only the pixels that you've selected", which reduces the quality loss from repeated edits. On the Sume image API you get the same property in two ways: pass a mask_url on ChatGPT Image 2.5, or keep your untouched original and apply each edit to it instead of to the previous edit.
The vendor claim
From Midjourney's update page.
| Item | What the page says |
|---|---|
| Targeted edits | Change only the pixels that you've selected. |
| Effect | More control and repeated edits without degrading image quality. |
Option 1: a mask on the Sume side
The Image API docs list an optional mask_url, a public HTTPS mask, for ChatGPT Image 2.5 edits (openai/gpt-image-2.5 and openai/gpt-image-2.5-sunburst). Both also take up to 16 image references. Other catalog models do not list mask_url, and sending it to them returns 400 unsupported_parameter.
A mask tells the model where to work; it does not guarantee byte-identical pixels elsewhere, so measure. The related pixel-diff post shows a check you can run.
Option 2: edit from the original, not the last edit
Without a mask, every edit is a fresh generation conditioned on the reference you send. If you feed each output back in as the next reference, small changes accumulate. A safer loop keeps the original as the reference for every pass and writes the full instruction set in the prompt.
- Keep
original.jpguntouched and public over HTTPS. - For each variant, send the original plus a prompt that states the single change and what must not move.
- Only chain passes when the next step truly depends on the last result, and stop after two or three.
Tracking which pass made which file
Put the pass number and parent in metadata, which Sume stores on the job and does not send to the provider. A list of your own job ids is then enough to rebuild the chain later. The docs' GET /v1/jobs accepts status and starting_after filters for paging through completed work.
Cost note
Edits are billed like any generation: completed images are billed in full and failed or cancelled generations are not billed. Budget the number of passes, not just the number of finals.
A worked example
Suppose you have a studio photo and want three colourways of a jacket. With a mask on ChatGPT Image 2.5, mark only the jacket, send the same original three times, and change the colour in the prompt each time. The background and model stay constrained to the unmasked area, and no variant depends on another.
Without a mask, send the original three times with a prompt such as "change only the jacket to forest green; keep the face, background and lighting unchanged". Review each result against the original rather than against its neighbour.
In both cases, resist the urge to feed variant one into variant two. That is how a slight shift in skin tone or shadow becomes a visible drift by the fourth pass.
Sources
Related posts
More in Use cases
- Midjourney V8.2 personalization profiles: the Sume substitute
Midjourney V8.2 builds personalization profiles from your image ratings. The Sume image API has none; a brand brief plus reference images does the same job.
- Translate text inside an image: one Nano Banana 2 edit per language
Google says Nano Banana 2 can translate and localize text within an image. Loop one edit per language through Sume POST /v1/images and keep the layout fixed.
- New York FAIR News Act: AI video labels and what is pending
New York's FAIR News Act would require a label on news video substantially made by generative AI. It awaits the governor; here is what the sources say.
- New York synthetic performer ad law: dubbing and audio-only exceptions
New York S8420A exempts AI used only to translate a human performer's language, audio-only ads and expressive works. What that means for a dubbed ad.
Written by Sume