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.

4 min readSume
All posts

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.

Upscale placement for a three-edit job, Sume catalog costs at origin/main, read 2026-10-04
PlanEdits at Nano Banana 2 1K (about $0.10 each)Upscales at $0.20 reserved eachTotal
Edit three times, upscale once$0.30$0.20about $0.50
Upscale after every edit$0.30$0.60about $0.90
Upscale first, then edit three times$0.30$0.20about $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

All Media tools posts

Written by Sume