Link card 1200x628 from an Ideogram 4.5 edit: ask 2:1, crop 63 px
Ideogram 4.5 on Sume has no 1.91:1 ratio. Ask for 2:1 (1408x704 on a 1K edit), then crop about 63 px of width with Pillow to reach 1200x628.

Ideogram 4.5 on Sume does not list 1.91:1, the shape of a 1200x628 link card. Ask for the nearest native ratio, 2:1, and crop the result: a 1K edit returns 1408x704, and fitting that to 1200x628 trims about 63 px from the width (4.5 percent) and nothing from the height.
The numbers
A pixel size sent as image_size or aspect_ratio is snapped to the nearest native ratio, so 1200x628 is read as 2:1. I checked this on 2026-10-05 by calling the Sume size resolver directly, which makes no paid call.
If you send the shape as a pixel string, the same snap applies on every Ideogram 4.5 call, and edits with no shape at all keep the source size.
| Step | Result |
|---|---|
| Requested | 1200x628 (ratio 1.911) |
| Snapped ratio | 2:1 |
| 1K edit size | 1408x704 |
| Crop width to hit 1.911 | 1345 px, so 63 px removed |
| Final file | 1200x628 after resize |
Crop in Pillow
ImageOps.fit crops to the target ratio first and then resizes, so no stretching happens. Keep important text away from the left and right 5 percent of your composition, because that is the part that can go.
Run the crop on a copy and keep the original file from the API. Then you can redo it with a different centering, for example (0.4, 0.5), if the first crop trims the wrong side of a logo.
from PIL import Image, ImageOps
im = Image.open("edit.png").convert("RGB")
print("returned", im.size)
card = ImageOps.fit(
im, (1200, 628), Image.Resampling.LANCZOS, centering=(0.5, 0.5)
)
card.save("link-card.jpg", quality=90)
print("saved", card.size)Why not send 1200x628 and trust it
You can, and the call will succeed. But the snap changes the shape, so you still need the crop, and this way you know the crop amount before you spend anything. If you want the exact shape in the image itself, a model that accepts the ratio natively is a better fit. See Sume's Image API docs for the per-model aspect_ratio values, or read the live list at GET /v1/images/models.
When not to crop
If the image carries edited text near the edges, such as a headline set by the model, cropping can cut letters. Move the text inward in your prompt, or composite the text yourself after the crop. Also, a source image you want left as is should not get any shape request at all. Leave aspect_ratio out and the edit keeps the source geometry.
Where text can sit
A 63 px trim is small, but only if nothing important is near the edges. For a link card, keep any headline within the central 90 percent of the width and ask for the subject at the middle in the prompt.
After the crop, view the card at 1200x628 and at a thumbnail size, because that is where link cards are seen. Text that is readable at full size can still be lost at the small size.
Sources
Related posts
More in Media tools
- ImageMagick: turn a Sume WebP into a 1080x1350 JPEG
One magick command resizes to fill, center-crops to 1080x1350 and writes a stripped JPEG. Use it on a Sume 4:5 image whose native size is not exactly 1080x1350.
- Media import allows about 2 GB, but trim and filter stop at 300 MiB
Sume media import has a practical size cap near 2 GB, while video trim and filter reject sources over 300 MiB with source_too_large. How to plan around the gap.
- invalid_segment_timing: the two causes in a 3-minute Short timeline
invalid_segment_timing means a slot start is not after the previous start, or a slot ends over 0.5 s past audio.duration_seconds. Check starts, then ends.
- Is a reference Short silent? Reference ingest audio gate at -60 LUFS
Reference ingest marks audio.silent when integrated loudness is -60 LUFS or lower. Silent means plan new music and skip STT; the manifest also reports beats.
Written by Sume