GPT Image 2.5 custom size: 1920x1080 fails, use 1920x1088
Edges must be multiples of 16, so 1080 is out. 1920x1088, 1280x720 and 3840x2160 pass the Sume rules; 1080x1350 does not, 1088x1360 does.

On Sume, openai/gpt-image-2.5 takes custom pixels on image_size only if both edges are multiples of 16, the longest edge is at most 3840, the ratio is at most 3:1, and the area is 655,360 to 8,294,400 pixels. 1080 is not a multiple of 16 (1080 / 16 = 67.5), so 1920x1080 fails the rule and 1920x1088 passes. 1280x720 and 3840x2160 both pass.
Common sizes checked against the rules
The rules come from the Image API docs. I computed each row by hand: edges divisible by 16, longest edge at most 3840, ratio at most 3:1, pixels in range.
| Size | Divisible by 16 | Pixels | Passes |
|---|---|---|---|
| 1920x1080 | No (1080) | 2,073,600 | No |
| 1920x1088 | Yes | 2,088,960 | Yes |
| 1280x720 | Yes | 921,600 | Yes |
| 3840x2160 | Yes | 8,294,400 | Yes (at the cap) |
| 1080x1350 | No (1080) | 1,458,000 | No |
| 1088x1360 | Yes | 1,479,680 | Yes |
| 512x512 | Yes | 262,144 | No (under 655,360) |
Send it
Put custom pixels on image_size, not size; size takes a tier and rejects WxH. Then crop the 8 extra rows if you need an exact 1920x1080 in your own pipeline.
For Instagram portrait, aspect_ratio: "4:5" is the native route and avoids the arithmetic.
curl -s https://api.sume.com/v1/images \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"openai/gpt-image-2.5","prompt":"product banner","image_size":{"width":1920,"height":1088},"quality":"medium"}'Cost note
Credits scale with output size and quality for ChatGPT Image 2.5. The listed catalog rate is high quality at 1024 output, about $0.0527 list; larger sizes cost more. Read the rate card before a batch.
Sources
Related posts
More in Developers
- GPT Image 2.5 quality xhigh and max: which rows accept them on Sume
Only ChatGPT Image 2.5 (both variants) accepts xhigh and max; omit quality and it runs at high. Other rows reject them. Credits scale with quality.
- Grok Imagine Video 1.5 in TypeScript: first frame, poll, download
A Node 18+ script that animates one still with grok-imagine-video-1.5 on POST /v1/videos, polls the job, and saves the MP4. Fields Sume refuses are listed.
- AI image edit changed my crop: aspect_ratio auto vs omitted on Sume
On edit calls, aspect_ratio auto matches the reference; leaving the field out is not the same thing. Ideogram 4.5 keeps the source shape when you omit it.
- Stream partial images from the Sume Image API? 400, use async events
stream: true returns 400 streaming_not_supported and every catalog row reports supports_streaming false. For progress, submit async and read job events.
Written by Sume