How to upscale an image to 3000x3000 (or any exact size)

Divide the target size by the current size to get the upscale factor, then run it: 1000×1000 at 3× is 3000×3000. Sume takes any factor from 1 to 4.

5 min readSume
All posts

To upscale an image to 3000x3000, divide the target by the current size and upscale by that factor: a 1000×1000 image needs 3×, a 1500×1500 image 2×, and a 1200×1200 image 2.5×. The image must already be square, because an upscale factor multiplies width and height by the same number; crop it to 1:1 first if it is not.

Sume's Image Upscale 1.0 takes that factor directly: upscale_factor is a number from 1 to 4, so 2.5 is a valid value. The request fields come from the OpenAPI document behind the Sume API reference, and the job routes from the API reference docs page, read on 2026-09-27.

How do I work out the upscale factor?

Factor = target edge ÷ current edge. Work it out for both edges: if the two answers differ, the shapes differ and you need a crop first. For common targets:

Factors are target ÷ current; the 1 to 4 upscale_factor range is from the Sume API reference, read 2026-09-27.
Current sizeTarget size`upscale_factor`
1000×10003000×30003
1500×15003000×30002
1200×12003000×30002.5
750×7503000×30004
500×5003000×30006: over 4, so two jobs
1280×7201920×10801.5
960×5401920×10802

How do I run the upscale?

Send the image's public HTTPS URL and the factor to POST /v1/image-upscale-1.0/upscale. output_format is png unless you ask for jpg or webp. The job runs async by default, so poll GET /v1/jobs/:id/status, then read GET /v1/jobs/:id/result.

  • Check the result: each artifact can report width and height. Rounding at fractional factors such as 2.5 is not documented, so confirm both numbers before you use the file.
  • The request has no target-size or crop field, so the factor is the only size control.
  • AI image upscaler API covers modes, webhooks, and results in more depth.
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/images/product-1000.png",
    "upscale_factor": 3,
    "output_format": "png",
    "mode": "async"
  }'

What if my image isn't square?

Crop it first. An upscale factor enlarges both edges equally, so a 1200×1000 image at 2.5× comes back 3000×2500, not 3000×3000. Crop it to 1000×1000 in an image editor, then upscale by 3. If a crop would cut off the subject, regenerate the image at the new shape instead, as in AI image aspect ratio changer.

Can I generate the exact size instead of upscaling?

Not at 3000×3000. The docs publish exact pixel rules for the ChatGPT Image models, which take custom pixels in image_size: both edges multiples of 16, a longest edge of 3840 at most, an aspect ratio of 3:1 at most, and 655,360 to 8,294,400 pixels. 3000×3000 fails twice: 3000 is not a multiple of 16, and 9,000,000 pixels is over the cap. 2000×2000 fits, and 2000×2000 at upscale_factor 1.5 is 3000×3000.

1920×1080 fails the same rule, because 1080 is not a multiple of 16. Generate 1280×720 and upscale by 1.5. AI image generation API aspect ratios covers image_size on other models.

How much does it cost, and what are the limits?

API pricing lists Image upscale at $0.20 per image, plus a 5.5% agent fee by default. The price is per image, so it is the same at factor 1.5 as at 4.

  • upscale_factor stops at 4. A bigger jump takes two jobs, each billed, or a larger source image.
  • Each job takes one image from a public HTTPS URL, not file bytes.
  • An upscaler enlarges the image; it can't recover detail the original never captured, so start from the sharpest source you have.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume