Fix extra fingers in an AI image: a masked GPT Image 2.5 edit
Fix a bad hand in an AI image with a mask_url edit on openai/gpt-image-2.5: mask only the hand, keep the rest, and budget about $0.0835 per try at high.

To fix extra or fused fingers in an AI image, send the image and a mask that covers only the hand to POST /v1/images with model: "openai/gpt-image-2.5", and ask for a natural hand with five fingers in the same pose. Of the Sume image models, only ChatGPT Image 2.5 (both variants) accepts mask_url. A one-reference 1024x1024 edit at high is billed at $0.0835 in Sume's pricing fixtures, so even five attempts cost $0.4175.
The cheap way to work is to treat the hand as a small region, try it at a low tier first, and escalate only if the shape is still wrong.
Why a mask beats a full re-prompt
If you ask for a whole new image with better hands, you get a different image. A mask tells the model which pixels it may change, which keeps the face, the clothing and the background you already approved. The Sume docs describe mask_url as an optional public HTTPS URL for ChatGPT Image 2.5 edits. They do not publish the colour convention, so confirm it on your own sample before a batch: make a mask, edit at low, and compare.
Make the mask a little larger than the hand. A tight outline leaves the broken contour in place and the model has to blend into it. Include the wrist and a margin of background, but not the face.
The request
Send the image as the one input reference and the mask as mask_url. Keep aspect_ratio on auto so the frame is the same as your source.
curl -X POST https://api.sume.com/v1/images \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-image-2.5",
"prompt": "Redraw the hand inside the mask as a natural right hand with five fingers holding the cup. Do not change anything outside the mask.",
"input_references": [
{"type": "image_url", "image_url": {"url": "https://example.com/portrait.png"}}
],
"mask_url": "https://example.com/hand-mask.png",
"aspect_ratio": "auto",
"quality": "medium"
}'Cost of the retry loop
The numbers below are the billed amounts in the pricing fixtures for one 1024x1024 edit with one input image. A failed generation is not billed; a completed one is, so a hand you dislike still costs money.
| Quality | Per attempt | Five attempts |
|---|---|---|
| low | $0.009375 | $0.046875 |
| medium | $0.021 | $0.105 |
| high | $0.0835 | $0.4175 |
Reading the result
Hands fail in predictable ways: a thumb that merges with the palm, a sixth finger tucked behind the cup, nails that point the wrong way, a wrist that is thicker than the forearm. When you review an edit, zoom to 200 percent on the hand and count the fingers first, then look at the seam where the new pixels meet the old ones. A visible halo around the mask edge usually means the mask was too tight or the prompt asked for a lighting change the surrounding image does not have.
If the image is going to print or to a large banner, review at the size it will be seen. A small thumbnail hides what a 4K print shows. Run Image Upscale 1.0 only after the hand is right, since upscaling a bad hand just makes the mistake larger, and the upscale is a separate $0.20 job.
A practical order of attempts
Start at low to see whether the mask and prompt are right. If the fingers are close, move to medium. Use high only for the keeper, because that is the version you will publish. Always read the whole image afterwards: edits can leak outside a mask, and a ring or a sleeve cuff at the wrist is where it shows first.
- Mask the hand and a margin of background, never the face.
- Name the pose and what the hand holds in the prompt.
- Diff the result against the source and look for changes outside the mask.
- Keep the winning URL; there is no
seedon Sume to reproduce it later.
When to start over instead
If three attempts at medium still give a wrong hand, regenerating the whole picture with a prompt that hides the hand (in a pocket, behind a cup) is cheaper than a fourth round. Sume's text-to-image calls on the same model are priced lower than edits because there is no input image, so a fresh draw at medium is $0.0165 in the same fixtures.
Sources
Related posts
More in Models
- FLUX 3 Image 5456x3072 at 300 dpi: print size vs Sume pixel caps
BFL shows FLUX 3 Image at 5456x3072 (16.8 MP). At 300 dpi that prints 18.19 x 10.24 in. Here is what Sume models give at the same dpi.
- gemini-3.1-flash-image is deprecated: move to Nano Banana 2.1
Google deprecated gemini-3.1-flash-image on Oct 6 with no shutdown date and named gemini-nano-banana-2.1 as the replacement. What to change, and what Sume does.
- Gemini TTS 24/16/8 kHz vs Sume TTS six sample rates up to 48 kHz
Gemini 3.8 Flash TTS offers 24000, 16000 and 8000 Hz. Sume TTS 1.0 accepts six rates from 8000 to 48000 Hz. Which rate suits video, phone and web.
- Is Gemini 3.8 Flash TTS in the Live API? No, per Google's model page
Google's model page marks the Live API unsupported for Gemini 3.8 Flash TTS. For live voice use Gemini 3.8 Live; Sume TTS is for async audio jobs.
Written by Sume