AI wall art canvas: gpt-image-2.5 pixels per inch, 8x10 to 24x36
The biggest 2:3 image gpt-image-2.5 can send is 2336x3504, which is 97 pixels per inch at 24x36. Here is the dpi for five canvas sizes and when to upscale.
The largest 2:3 image openai/gpt-image-2.5 can be asked for is 2336x3504 pixels, so a 24x36 inch canvas gets only about 97 pixels per inch from one call. For canvas prints, pick the print ratio first, take the biggest legal size for that ratio, compute the pixels per inch, and add an upscale step when the number is too low.
The limit is not the 3840 maximum edge; it is the 8,294,400-pixel total. A 3840-pixel long edge on a 2:3 print would need 9,830,400 pixels.
The rule the sizes come from
Sume's docs state the custom pixel rule for gpt-image-2.5, and OpenAI's image guide states the same one: both edges multiples of 16, a maximum edge of 3840, aspect ratio at most 3:1, and a total between 655,360 and 8,294,400 pixels. OpenAI adds that resolutions above 2560x1440 are experimental, so test a print-size output before you build a product on it.
Pixels per inch for five canvas sizes (read 2026-10-04)
Each row is the largest legal size at the print's exact ratio. Check it yourself with the script below.
| Largest legal size | Pixels | Pixels per inch | |
|---|---|---|---|
| 8x10 in | 2560x3200 | 8,192,000 | 320.0 |
| 12x16 in | 2448x3264 | 7,990,272 | 204.0 |
| 16x20 in | 2560x3200 | 8,192,000 | 160.0 |
| 18x24 in | 2448x3264 | 7,990,272 | 136.0 |
| 24x36 in | 2336x3504 | 8,185,344 | 97.3 |
Check a size before you send it
The function below applies the documented rule and prints the largest legal size at any ratio.
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
)
def largest(ratio_w, ratio_h):
best = None
for w in range(16, 3841, 16):
h, rem = divmod(w * ratio_h, ratio_w)
if rem == 0 and legal(w, h):
best = (w, h)
return best
for name, (rw, rh), inches in [("8x10", (4, 5), 8), ("24x36", (2, 3), 24)]:
w, h = largest(rw, rh)
print(name, w, h, round(w / inches, 1), "px/in")When the number is too low
Large canvases are viewed from a distance, so a lower pixel density can be acceptable, but that is a judgement for your printer's file guide, not a number from this page. If you need more pixels, treat generation and upscaling as two steps: Sume's hosted tool list names an image_upscale_create tool, and the Image API's request parameters include no upscale factor.
Sources
Related posts
More in Use cases
- AI wine label design via API: artwork from the model, text from code
For a wine label, generate only the artwork with gpt-image-2.5, ask for a clear panel, and set the name, vintage and regulatory lines in code so they are exact.
- Four shoppable videos per ASIN: demo, how-to, lifestyle, unboxing
Amazon allows up to 4 shoppable videos per ASIN for sellers with a professional account and three months of history. A four-clip plan batched on Sume.
- Amazon allows four shoppable videos per ASIN: eligibility and plan
Amazon allows up to four shoppable videos per ASIN for professional sellers with three months of history. A demo, how-to, lifestyle and unboxing plan.
- Amazon Posts 9:16 video: render a vertical product clip
Set aspect_ratio 9:16 on a Sume video request and animate a product still as the first frame.
Written by Sume