AI blog featured image at 16:9: 1536x864 passes, 1920x1080 does not
For a 16:9 blog featured image, gpt-image-2.5 accepts 1536x864 and 2048x1152 but not 1920x1080, because 1080 is not a multiple of 16. Checked in a table.

For a 16:9 blog featured image, ask openai/gpt-image-2.5 for 1536x864 or 2048x1152: both edges are multiples of 16 and the total is inside the allowed range. 1920x1080 is rejected because 1080 is not a multiple of 16.
If you do not need exact pixels, send aspect_ratio: "16:9" and resize in your build step. Custom pixels go on image_size, not on size, which is a shorthand for a resolution tier.
Sizes checked against the rule (read 2026-10-04)
The rule comes from Sume's Image API docs and matches OpenAI's image guide: edges in multiples of 16, maximum edge 3840, aspect ratio 1:3 to 3:1, and 655,360 to 8,294,400 pixels. Sizes above 2560x1440 are described by OpenAI as experimental.
| Size | Pixels | Legal for gpt-image-2.5 |
|---|---|---|
| 1280x720 | 921,600 | yes |
| 1536x864 | 1,327,104 | yes |
| 1792x1008 | 1,806,336 | yes |
| 1920x1080 | 2,073,600 | no: height is not a multiple of 16 |
| 2048x1152 | 2,359,296 | yes |
| 2560x1440 | 3,686,400 | yes |
Two ways to ask
The first request lets Sume pick the pixels for the ratio. The second names the pixels; the Image 1.0 page documents image_size as { width, height } or WIDTHxHEIGHT on models that accept custom pixels, so read the model's descriptor before pinning one.
{
"model": "openai/gpt-image-2.5",
"prompt": "Flat illustration of a desk with a laptop and a coffee cup, plenty of empty space on the left for a headline",
"aspect_ratio": "16:9"
}
{
"model": "openai/gpt-image-2.5",
"prompt": "Flat illustration of a desk with a laptop and a coffee cup, plenty of empty space on the left for a headline",
"image_size": {"width": 1536, "height": 864}
}Check any size yourself
This prints the same verdicts as the table.
def legal(w, h):
return (
w % 16 == 0 and h % 16 == 0
and max(w, h) <= 3840
and max(w, h) / min(w, h) <= 3
and 655_360 <= w * h <= 8_294_400
)
for w, h in [(1280, 720), (1536, 864), (1920, 1080), (2048, 1152)]:
print(w, h, legal(w, h))Headline in the page, not the image
Leave the left third empty and set the post title as HTML text. It stays crisp at every screen size, it is searchable, and you never regenerate an image to fix a typo.
Sources
Related posts
More in Use cases
- AI board game tokens: transparent PNG art, circle-cropped at 300 dpi
Make board game character tokens: one anchor style, a transparent PNG per character from gpt-image-2.5, then crop to a circle in Pillow at token size.
- AI bookmark design via API: the tall 1:3 and 1:4 ratios on Sume
Bookmarks are tall strips. Only Ideogram lists 1:3 and Nano Banana 2 lists 1:4 on Sume's image catalog. A catalog check, a request and a crop to your template.
- AI cake design preview for a bakery order: photo reference and mask
Show a customer their cake before baking: pass a photo of the plain cake as a reference, edit the top with mask_url, and keep the order text in code.
- AI character sheet with turnaround and expressions via API
Build a character sheet with front, side, back and expression views: pick one anchor image, then feed it back as a reference per view on gpt-image-2.5.
Written by Sume