Upscale before or after an image edit? Order and cost on Sume
Edit at working size, then upscale once. Sume's image upscale reserves 20 cents per image, so upscaling between every pass multiplies the bill.

Resolution is part of this season's image pitch. FLUX 3 Image is described as rendering at native 2K and 4K (Black Forest Labs, read 2026-10-04), and Ideogram 4.0 supports 256 to 2048 pixels per side (Ideogram, read 2026-10-04). On Sume you can also upscale a finished image with a separate call. The question is where it goes in an edit pipeline.
The rule: upscale last
Each edit pass may re-render the picture, so any detail added by an upscale can be changed or lost on the next pass. Edit at the size where the model works well, approve the result, then upscale once. The Sume image upscale takes a public HTTPS image_url and an upscale_factor from 1 to 4, at POST /v1/image-upscale-1.0/upscale.
| Plan | Edits at Nano Banana 2 1K (about $0.10 each) | Upscales at $0.20 reserved each | Total |
|---|---|---|---|
| Edit three times, upscale once | $0.30 | $0.20 | about $0.50 |
| Upscale after every edit | $0.30 | $0.60 | about $0.90 |
| Upscale first, then edit three times | $0.30 | $0.20 | about $0.50, and edits re-render the detail |
Where this does not apply
The $0.20 figure is the reserved amount in the Sume catalog (about 16 output megapixels), not a promise of the final charge.
- If the model can render the final size directly, as Nano Banana 2 can at 2K and 4K tiers in the Sume catalog, compare the tier price with edit plus upscale.
- If the image is destined for print, check the pixel count you need before you choose.
- Upscale reservations are held at the full figure and captured on completion, so read the final charge.
Upscale the approved image
Use the job's status and result URLs if the response is a job envelope instead of a finished image.
import os
import requests
r = requests.post(
"https://api.sume.com/v1/image-upscale-1.0/upscale",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
json={"image_url": "https://example.com/approved-edit.png", "upscale_factor": 2, "output_format": "png"},
timeout=60,
)
print(r.status_code, r.text[:300])
Sources
Related posts
More in Media tools
- WCAG 1.4.4 resize text: do burned-in captions need it?
WCAG 1.4.4 exempts captions and images of text, so burned-in captions need no resize. You still choose their size: use design.typography on Sume.
- WebP with transparency: output and import rules
Synthesia's editor now accepts WebP with transparency kept. On Sume, set output_format and background explicitly and check the result for alpha.
- WhatsApp Status 16 MB and 30 s: trim, then check size
A third-party guide lists WhatsApp Status video at 16 MB and 30 seconds. Cut to 30 seconds with Sume video trim, then measure the file size.
- YouTube Shorts 2x playback: will your burned-in captions still read?
Viewers can double the speed of a Short. Burned-in captions play at that speed too. Halve each phrase's time, then tune Sume caption phrasing to fit.
Written by Sume