Draft at 1K, finish at 2K: read the image resolution descriptor
Sume's resolution tiers run 512 to 4K, but each model lists its own. A script that reads the descriptor, then a draft-then-final pattern for ad images.

Sume's Image API names resolution tiers of 512, 1K, 2K, and 4K, but a model accepts only the values its catalog descriptor lists. Read supported_parameters before you pin a tier, draft at the smaller tier, and render the final at the larger one.
Tier choice is a live question: Ideogram 4.5 is listed on Higgsfield at 1K or 2K, and FLUX 3 Image up to native 4K (Higgsfield changelog, read 2026-10-02). Sume's models list their own.
What does the catalog say?
The normalized resolution tiers are 512, 1K, 2K, and 4K, and size is shorthand for a tier. Do not put custom pixels on size: use image_size or aspect_ratio. Explicit pixel size is in the schema but advertised by no model in v1.
| Field | Rule |
|---|---|
resolution | Tier: 512, 1K, 2K, 4K |
size | Shorthand for a tier; no custom pixels |
image_size | Presets or custom pixels on models that accept them |
quality | auto, low, medium, high, xhigh, max; catalog-gated |
How do I read what a model accepts?
List the catalog, then print the resolution values for the models you care about. If the descriptor is absent, the model does not take the parameter, and sending it returns 400 unsupported_parameter.
import os
import requests
r = requests.get(
"https://api.sume.com/v1/images/models",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
timeout=30,
)
r.raise_for_status()
for model in r.json().get("data", []):
params = model.get("supported_parameters", {})
tiers = params.get("resolution", {}).get("values")
print(model["id"], tiers or "no resolution descriptor")What is the draft-then-final pattern?
Run the copy and layout at a low tier and quality: "low", review, then rerun the winner at the final tier. Sume's docs say to escalate quality for finals, dense text, or packaging. Each rerun is a new paid job, so use a new idempotency key for the final and keep the draft's job id in your log. Image generation bills only on completion, so a failed draft costs nothing. See the Image API docs.
Sources
Related posts
More in Developers
- Dry run a 30-second AI video before paying: Sume MCP generate_video
Preview a 30-second clip's cost with dry_run and max_spend_usd on Sume's hosted MCP before you submit. Which models reach 30 s and what the gates do.
- Dub a 20-minute video: audio detach 900 s cap, STT 600 s, TTS 1,200 s
A 20-minute video needs chunking before a dub: audio detach outputs at most 900 s, STT reservation tops out at 600 s, and TTS fails past 1,200 s.
- ElevenLabs Music force_instrumental and seed vs Sume prompt-only
ElevenLabs Compose has force_instrumental and seed fields. Sume's Music Router has neither: you write no vocals into the prompt and check the audio.
- ElevenLabs Music output_format list vs the file Sume returns
ElevenLabs Compose lists MP3, PCM, mu-law, A-law and Opus formats. Sume's music request has no format field; get wav through Timeline audio.
Written by Sume