Kakao Moment image ad sizes with GPT Image 2.5: 4:5, 9:16, 2:1

Kakao's native image sizes (800x1000, 720x1280, 1200x600) against GPT Image 2.5's multiple-of-16 rule: which fit, and the nearest valid size for the rest.

4 min readSume
All posts

Of Kakao Moment's native image sizes, only 720x1280 (9:16) can be requested as exact pixels from GPT Image 2.5, because Sume's docs require both edges to be multiples of 16. 800x1000 fails on the height (1000 is not a multiple of 16), 1200x600 fails on 600, and 500x500 is below the 655,360-pixel floor. Because Kakao writes its sizes as "or more", you can step up to the nearest valid size at the same ratio: 832x1040 for 4:5 and 1216x608 for 2:1.

What sizes does Kakao list?

Kakao's creative page lists native image sizes by the date they were added. Each is a minimum with a 500 KB limit and JPG, JPEG or PNG. The 4:5 promotional image was added on August 26, 2025, the 9:16 one on August 30, 2023, and the 1:1 and 2:1 sizes on February 21, 2023. Profile images are 300x300 or more (1:1) in all of them. Check Kakao's ad manager for which formats are currently open.

Kakao Developers, Kakao Moment: Ad creation, Display creative (Image native), and the Sume Image API rules for ChatGPT Image 2.5, read 2026-10-03.
Kakao promo image (min)RatioExact pixels valid on GPT Image 2.5?Nearest valid size, same ratio
800x10004:5No (1000 is not a multiple of 16)832x1040 (865,280 px)
720x12809:16Yes (921,600 px)720x1280
500x5001:1No (250,000 px, below 655,360)816x816 (665,856 px)
1200x6002:1No (600 is not a multiple of 16)1216x608 (739,328 px)

What is the size rule on the Sume side?

The Image API docs say ChatGPT Image 2.5 (openai/gpt-image-2.5, Flare, and openai/gpt-image-2.5-sunburst) accepts image_size as a named preset, auto, or custom pixels. For custom pixels both edges must be multiples of 16, the maximum edge is 3840, the aspect ratio can be at most 3:1, and the total is 655,360 to 8,294,400 pixels. All four sizes in the table pass the ratio and the maximum edge; the other two rules are what removed three of them.

This rule is stated for the GPT Image 2.5 models. Other models take aspect_ratio and a resolution tier (512, 1K, 2K, 4K); the docs list 4:5 and 9:16 among the ratios and say a model accepts only what its catalog descriptors list. The docs also note that Banana Pro sends aspect_ratio: "4:5" at a native size of about 928x1152 at 1K, which is above Kakao's 800x1000 minimum on both edges.

How do you find the valid size for any ratio?

The script below walks up the ratio until both edges are multiples of 16, both clear Kakao's minimum, and the pixel count passes Sume's floor. It reproduces the table above, so you can reuse it for another ratio or minimum.

from math import gcd

def smallest(rw, rh, min_w, min_h):
    g = gcd(rw, rh)
    a, b = rw // g, rh // g
    for k in range(1, 4000):
        w, h = a * k, b * k
        if w % 16 or h % 16:
            continue
        if w < min_w or h < min_h or w * h < 655_360:
            continue
        if max(w, h) > 3840 or max(w, h) / min(w, h) > 3:
            continue
        return w, h, w * h

for ratio in [(4, 5, 800, 1000), (9, 16, 720, 1280), (1, 1, 500, 500), (2, 1, 1200, 600)]:
    print(ratio, smallest(*ratio))

What about the 500 KB limit?

Kakao limits each image file to 500 KB. The Image API docs list output_format as png, jpeg, webp or svg, and say output_compression is not served in v1, so sending it returns 400 unsupported_parameter. That means you cannot tune JPEG quality through Sume. Request jpeg, measure the file, and if it is over 500 KB, re-encode it outside Sume or ask for a size nearer the minimum. Do not rely on a size estimate; check the actual bytes before you upload.

Request the size with image_size for GPT Image 2.5, then confirm the returned width and height. A call to POST /v1/images blocks for up to 30 seconds and returns 200; slow settings can degrade to a 202 job envelope, so check the status code, not the body shape. The GPT Image 2.5 guide covers quality and references.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume