Grok Imagine on Sume: 1080x1350 snaps to 2:3, 4:5 is a 400
On Sume, an exact size like 1080x1350 is snapped to Grok Imagine's nearest ratio (2:3), while aspect_ratio 4:5 is rejected. See which models keep 4:5.

Ask Sume for x-ai/grok-image with aspect_ratio: "4:5" and you get a 400 invalid_request, because Grok Imagine's catalog list has no 4:5. Send the exact size image_size: "1080x1350" instead and the request is accepted, but it is snapped to the nearest ratio the model has, which is 2:3. Neither path produces a 4:5 image on Grok. If you need Instagram portrait, pick a model whose list contains 4:5.
The Image API page says 4:5 is Instagram portrait (1080×1350), not 4:3. The snapping behavior below comes from running Sume's normalizer on 2026-10-03; per-model lists are published through GET /v1/images/models, as described on the Image API page.
Why is one 400 and the other accepted?
Models whose catalog is a fixed list of ratios treat the two inputs differently. An explicit aspect_ratio must be in the list, so 4:5 fails. An exact pixel size is treated as a hint: Sume reduces it to a ratio and moves it to the closest entry in the model's list, keeping the same family when one exists. For 1080×1350 the ratio is 4:5, Grok has no 4:5 entry, and the closest is 2:3.
Because the request is accepted, nothing in the status code warns you. Check the returned image's dimensions, or read the model's aspect_ratio descriptor before you ask for a size.
| Request | x-ai/grok-image | ideogram/ideogram-v3 | ideogram/ideogram-v4.5 |
|---|---|---|---|
aspect_ratio: "4:5" | 400, not in list | 4:5 | 4:5 |
image_size: "1080x1350" | 2:3 | 4:5 | 4:5 |
image_size: "1200x628" | 2:1 | 2:1 | 2:1 |
image_size: "1920x1080" | 16:9 | 16:9 | 16:9 |
Which models keep 4:5?
On the same run, both Ideogram rows kept 4:5 for a 1080×1350 request. GPT Image models list 4:5 too: the catalog comment maps it to a legal custom box of 1024×1280, because 1080 is not a multiple of 16 and so is not a valid GPT custom edge. Nano Banana Pro and Nano Banana 2 also list 4:5; the Image API page notes that exact 1080×1350 on Nano Banana is a documented post-step through the job's target_pixels.
So the rule of thumb is to match the target ratio to the model, not the other way round. For a 4:5 feed asset, choose a model that lists 4:5 and resize or crop to the final pixels afterward.
What should I do in a pipeline?
Fetch the catalog once, read supported_parameters.aspect_ratio.values for the model you plan to use, and fail your own validation when the target ratio is missing. For models with a fixed list, treat image_size as a preference rather than a guarantee, and compare width / height of the output with what you asked for.
If the shape drifts on an edit, pass aspect_ratio: "auto" on models that list it, so the result follows the reference. Grok's list has no auto entry, so send a ratio from its list.
What does this mean for a 1080x1350 deliverable?
If the file must be exactly 1080 by 1350, the order of work is: pick a model whose list has 4:5, request that ratio, then resize or crop the output to the final pixels in your own pipeline. Grok can still be the right model for another job; it just cannot be the source for a 4:5 asset without a crop.
A crop from 2:3 to 4:5 removes about 17 percent of the height (a 2:3 frame is 1.5 times taller than wide, a 4:5 frame is 1.25 times). Put the subject and any text well inside the middle of the frame if you must go that way, and check the crop before you publish.
Sources
Related posts
More in Models
- Grok Imagine Image 2.0 policy review: cost of a refused image
xAI says generated media gets content policy review. Sume's docs say failed image generations are not billed; here is what is and is not documented.
- Grok Imagine Image 2.0 returns up to 10 images: n on Sume
xAI's docs say up to 10 images per request at a flat per-image price. On Sume, the Grok row has its own n ceiling, so read it before you batch.
- Design an episode's opening frame with Grok Imagine, then animate it
Make the first frame with x-ai/grok-image (9:16, about $0.025 a still on Sume), approve it, then pass it as first_frame to a video model. Costs and code.
- Hebrew and Georgian text to speech API: he and ka on Sume TTS
Cartesia lists Hebrew (he) and Georgian (ka) on Sonic 3.6, 3.5 and 3. What to send to Sume TTS, why the library has no voice for them, and what a script costs.
Written by Sume