gpt-image-2.5 smallest custom size: the 655,360-pixel floor

gpt-image-2.5 on Sume rejects images under 655,360 pixels. Why 512x512 and 768x768 fail, which small sizes pass, and the other edge rules to check first.

4 min readSume
All posts

The smallest custom image_size you can send to gpt-image-2.5 on Sume is 655,360 pixels in total, for example 1024x640 or 800x832. A 512x512 thumbnail (262,144 pixels) or a 768x768 square (589,824 pixels) is below the floor, so request a larger size and downscale afterwards.

OpenAI's own image generation guide, read on 2026-10-02, lists the recommended sizes (1024x1024, 1536x1024, 1024x1536) and the custom-size rules: WIDTHxHEIGHT, both edges a multiple of 16, an aspect ratio between 1:3 and 3:1, and a maximum of 3840 pixels per edge. It does not state a minimum total pixel count on that page. Sume's Image API documents one for the ChatGPT Image 2.5 models, and this post is about that extra rule.

What are all the size rules on Sume?

Sume serves GPT Image 2.5 as openai/gpt-image-2.5 (Flare) and openai/gpt-image-2.5-sunburst. Per the Image API docs, image_size accepts named presets, auto, or custom pixels, and custom pixels must satisfy every rule in the table below. A request that breaks one is a validation problem you should catch before you submit, not after.

Custom image_size rules for gpt-image-2.5 on Sume (docs read 2026-10-02)
RuleValueSource
Edge multipleBoth edges a multiple of 16Sume Image API and OpenAI guide
Maximum edge3840 pixelsSume Image API and OpenAI guide
Aspect ratioAt most 3:1 (OpenAI states 1:3 to 3:1)Sume Image API and OpenAI guide
Total pixels655,360 to 8,294,400Sume Image API

Which small sizes pass and which fail?

Work the arithmetic. Multiply width by height and compare with 655,360. Values below the floor are common in thumbnail and icon workflows, which is why this surprises people who start from a 512 or 768 square.

Small sizes against the 655,360-pixel floor (arithmetic, read 2026-10-02)
SizePixelsMultiple of 16Passes floor
512x512262,144YesNo
768x768589,824YesNo
1024x640655,360YesYes, exactly at the floor
1024x10241,048,576YesYes
1000x700700,000No (1000 is not divisible by 16)Fails the edge rule

How do I get a small final image anyway?

Generate at a compliant size, then resize in your own pipeline or with a Sume video or media tool if the final asset is a clip. For stills, a 1024x1024 generation downscaled to 512x512 is the simple path, and it also gives you a sharper result than asking a model for a tiny canvas.

If you only need a standard preset, skip custom pixels entirely: the docs say named presets are accepted, and auto lets the model choose. Presets without a verified GPT-specific pixel mapping reserve the output token upper bound, which matters for your balance check, as covered in reserved cost for auto quality.

What should I validate in code?

A five-line pre-flight check saves a failed call. The sketch below mirrors the documented rules and nothing more.

def size_ok(w, h):
    if w % 16 or h % 16:
        return False
    if max(w, h) > 3840:
        return False
    if max(w / h, h / w) > 3:
        return False
    return 655_360 <= w * h <= 8_294_400

for s in [(512, 512), (1024, 640), (3840, 2160), (3840, 2400)]:
    print(s, size_ok(*s))

What does Sume not do here?

Sume does not resize for you when you break a rule, and it does not silently round to the nearest legal size. The Image API reports a rejected parameter as an error rather than dropping it. Read supported_parameters from GET /v1/images/models before pinning a size, and see the size validator post for the longer version.

Last check on the upper end: 3840x2160 is 8,294,400 pixels, exactly the cap, while 3840x2400 is 9,216,000 and fails, as the script above prints.

Sources

Related posts

More in Models

All Models posts

Written by Sume