Remove the background and upscale an image: which order?

Upscale first, then remove the background, so the file you keep is the RMBG PNG with alpha. Sume's docs do not say the upscaler keeps transparency.

5 min readSume
All posts

Upscale first, then remove the background. The cutout is then the last step, and the last step is the one whose output the docs describe as a PNG with an alpha channel. Sume's Image Upscale 1.0 reference does not say whether the upscaler preserves transparency, so a cutout-then-upscale order is a guess until you test it on your own image.

Both steps are jobs on Sume's API. Their fields come from the Sume API reference; job polling from Jobs and results. Read 2026-09-29.

How do I chain the two calls?

Submit the upscale, wait for the job to finish, read its result, and pass the resulting image URL to the background remover. Both take a public HTTPS image_url.

curl -X POST https://api.sume.com/v1/image-upscale-1.0/upscale \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image_url": "https://example.com/product.png",
       "upscale_factor": 2, "output_format": "png"}'

curl https://api.sume.com/v1/jobs/job_123/result \
  -H "Authorization: Bearer $SUME_API_KEY"

curl -X POST https://api.sume.com/v1/rmbg-1.0/remove \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image_url": "https://media.sume.com/artifacts/example/upscaled.png"}'

What does each step take and return?

Jobs and results says to use the Sume media URLs from a completed job's result. The RMBG reference's own webhook example passes a media.sume.com artifact URL as image_url, so a URL from an earlier Sume job is a documented kind of input for that step.

From the Image Upscale 1.0 and RMBG 1.0 entries in the Sume API reference, read 2026-09-29.
Image Upscale 1.0RMBG 1.0
RoutePOST /v1/image-upscale-1.0/upscalePOST /v1/rmbg-1.0/remove
Inputimage_url, public HTTPSimage_url, public HTTPS
Optionsupscale_factor 1 to 4 (default 2); output_format png, jpg, or webp (default png)None for the image itself
ResultA completed job lists its artifacts under result.artifacts, each with a media.sume.com URLMirrored PNG artifacts with alpha

Which output format should the upscale step use?

Leave it at the default, png. A JPEG cannot hold transparency, and the background remover creates the transparency anyway, so the format of the middle file only matters for what the remover reads. Sume's docs do not compare formats, so keep the lossless default and choose the delivery format after the cutout. In current code a webp request to this step can fall back to PNG, so do not count on WebP from it.

How much do the two steps cost?

Two jobs, two prices. API pricing lists background removal at $0.0225 per image and image upscale at $0.20 per image, each plus a 5.5% agent fee by default. Read those rows on the page before you budget a batch.

Each job is billed on its own. If the upscale job fails, do not send its result URL onward; poll until the job is terminal and read the result only then.

What are the limits?

What the two contracts leave out:

  • Each request takes one image_url.
  • Localhost, private-network, and non-HTTPS URLs are rejected.
  • upscale_factor stops at 4. A cutout of a small image needs the upscale step, not a larger factor.
  • No documented statement that the upscaler keeps an alpha channel, so run the cutout last.
  • See Remove background API and AI image upscaler API for each endpoint's modes and webhooks.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume