9:8 aspect ratio image: which Sume rows list it

Of Sume's 19 image rows, only the three ChatGPT Image rows list 9:8, along with 5:4 and 4:5. What the other rows do with 9:8 and how to crop.

4 min readSume
All posts

Answer

Only the ChatGPT Image rows (openai/gpt-image-2, openai/gpt-image-2.5 and openai/gpt-image-2.5-sunburst) list 9:8 among Sume's 19 image models on 2026-10-04. Their full set is auto, 1:1, 16:9, 9:16, 4:3, 3:4, 5:4, 9:8 and 4:5.

9:8 is a near-square landscape, 12.5 percent wider than tall. It suits some cards and album covers where 5:4 is too wide. Every other row lacks it and returns a 400 if you ask.

Near-square ratios by Sume image family (read 2026-10-04)
Family1:15:4 / 4:59:8
ChatGPT Image 2 and 2.5yesbothyes
Seedream, Flux, Qwen, Recraftyesbothno
Ideogram V3 and 4.5yesbothno
Nano Banana 2 and Proyesbothno
Imagen 4 Fast and Ultrayesneitherno
Grok Imagineyesneitherno

If your row lacks 9:8

  • Request 5:4 and crop the width: a 1350x1080 image becomes 1215x1080 when you trim 135 pixels.
  • Or request 1:1 and crop the height: a 1080x1080 image becomes 1080x960.
  • Pick a ChatGPT Image row and send aspect_ratio: "9:8" directly. At $0.065875 catalog price, 2.5 is the cheaper of the two.

Request

curl -X POST 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":"an album cover, one red chair on a pale floor","aspect_ratio":"9:8","quality":"medium"}'

Check the aspect_ratio descriptor with GET /v1/images/models before pinning a ratio. Docs: Sume Image API.

Before a large run

Prices and descriptors change when the catalog changes, so confirm them before you spend. Call GET /v1/images/models/{id}/endpoints for the row you plan to use and read its pricing line and supported_parameters; both come back in one response.

Then run a pilot of three to five images and read usage.cost on each response. Multiply by your planned count for a forecast you can trust. Completed generations are billed in full and failed or cancelled ones are not, so a pilot that errors costs nothing.

For big batches, use mode: "async" or mode: "webhook" with a public HTTPS webhook_url, so no request waits on the 30-second sync limit. Poll GET /v1/jobs/{id}/status and fetch GET /v1/jobs/{id}/result when the job completes.

Sources

Related posts

More in Models

All Models posts

Written by Sume