Demand Gen 4:5 image size 960x1200: request it directly
Google lists 960x1200 as the recommended 4:5 Demand Gen image. Both edges are multiples of 16, so a GPT Image 2.5 custom image_size can ask for it exactly.

Send image_size: "960x1200" to POST /v1/images with a GPT Image 2.5 model. Google's Demand Gen spec, read 2026-09-30, lists vertical 4:5 images at "Min. size: 480x600, Recommended: 960x1200", and 960 and 1200 are both multiples of 16, which is the custom-size rule in Sume's docs.
Why does 960x1200 pass the custom-size rule?
The image docs say custom pixels need both edges to be multiples of 16, a maximum edge of 3840, an aspect ratio of at most 3:1, and 655,360 to 8,294,400 total pixels. 960 is 60 x 16 and 1200 is 75 x 16, with 1,152,000 pixels at a ratio of 1.25.
What does the request look like?
image_size wins over aspect_ratio when both are sent, so send only the size. Use the model slug from GET /v1/images/models.
curl -sS -X POST "https://api.sume.com/v1/images" \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: dg-4x5-hero-v1" \
-d '{
"model": "openai/gpt-image-2.5",
"prompt": "Vertical product hero, studio light, clean background",
"image_size": "960x1200",
"output_format": "png"
}'Which models give exact 960x1200?
Only models that take custom pixels can honor the exact size. The Image 1.0 page lists GPT, Seedream, Flux, Qwen and Recraft as accepting WIDTHxHEIGHT, with the multiples-of-16 rule spelled out for GPT. On Nano Banana the size is mapped to a native ratio instead. Read supported_parameters for the model before you rely on exact pixels.
| Route | What you get |
|---|---|
GPT Image 2.5 with image_size: "960x1200" | The size you asked for, if it passes the pixel box |
| Nano Banana with a WxH size | Mapped to the native 4:5 ratio; exact pixels are a post-step via job target_pixels |
aspect_ratio: "4:5" alone | The shape only; 4:5 means Instagram portrait (1080x1350), not 4:3 |
What about 1080x1350?
1350 is not a multiple of 16, so that size cannot be sent as a custom size; see the 1080x1350 custom size rule. For Demand Gen images, 960x1200 is the recommended 4:5 size in the spec, so you do not need it. Google's file rules in the snapshot are .jpg or .png, up to 5 MB, for images, so request png or jpeg rather than webp.
Sources
Related posts
More in Use cases
- Demand Gen 4:5 video 1080x1350: the API has 3:4, not 4:5
Google recommends 1080x1350 for 4:5 Demand Gen video, but Sume's video aspect_ratio list has 3:4 and no 4:5. Use the Slideshow Format or a crop step.
- Demand Gen 9:16 image ad size for YouTube Shorts
Google lists 9:16 Demand Gen images at 600x1067 minimum, 1080x1920 recommended. On Sume, request 1088x1920 (a multiple of 16) and crop 4 px per side.
- Demand Gen image max file size: 5 MB, JPG or PNG
Google lists Demand Gen images as .jpg or .png at up to 5 MB (logos 150 KB). Set output_format to jpeg or png on Sume and skip webp for these uploads.
- Google Ads image size 1200x628 and Sume's multiple-of-16 rule
Google's recommended Demand Gen landscape image is 1200x628, but 628 is not a multiple of 16. Request 1200x640 from Sume, then crop 6 px top and bottom.
Written by Sume