How many Sume image rows list mask, background, quality, resolution
mask_url and background list on GPT Image 2.5 only, quality on three row types, resolution on a handful. A count of catalog rows by parameter, with a script.

Image parameters on Sume are narrower than the request schema suggests. The schema of POST /v1/images has many fields, but each catalog row lists only the ones it takes, and a field outside the list returns 400 unsupported_parameter. Of the image rows, mask_url and background are documented for GPT Image 2.5 only, quality appears on three row types, resolution on a handful, and aspect_ratio and n on every row.
Count by parameter
The counts below follow the catalog code and the Image API page. Rows are public ids from GET /v1/images/models. Use the live endpoint if you need the exact count today, since rows are added and retired.
| Parameter | Rows that list it | Where |
|---|---|---|
| prompt, aspect_ratio, n, input_references, output_format | every row | Text-only rows list input_references as 0 to 0 |
| image_size | GPT, Seedream, Flux, Qwen, Recraft rows | Custom-pixel families |
| quality | GPT Image 2.5, 2.5 Sunburst, GPT Image 2, Ideogram 4.5 | Enums differ |
| resolution | Nano Banana 2.1, Nano Banana Pro, Imagen 4 Ultra, Soul, Ideogram 4.5 | Tiers such as 512, 1K, 2K, 4K |
| mask_url, background | GPT Image 2.5 rows | As documented |
What it means for a shared client
A client that serves many models should not send one fixed body. Build the body per row. Required fields go always. Optional ones go only when the descriptor lists them. When a user picks a mask on a row without mask_url, tell them to switch rows instead of dropping the mask.
Two other rules do not vary. The only provider.only value is sume, and stream, seed and output_compression are unsupported on every row.
Counting it yourself
This script counts, for each parameter, how many catalog rows list it.
import os, requests
from collections import Counter
H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
r = requests.get("https://api.sume.com/v1/images/models", headers=H, timeout=30)
r.raise_for_status()
rows = r.json()["data"]
c = Counter(p for m in rows for p in m["supported_parameters"])
print(len(rows), "rows")
for name, n in sorted(c.items()):
print(f"{name:20} {n}")Examples of per-row bodies
A GPT Image 2.5 edit can carry input_references, mask_url, background and quality. The same intent on Flux 2 Pro can carry input_references and image_size, and nothing else of those four. On Recraft V4 or Qwen Image Max the body has no references at all, because those rows list zero input slots.
- GPT Image 2.5: up to 16 references, mask_url, background, quality auto to max.
- Ideogram 4.5: up to 5 references, quality low to high, resolution tiers.
- Seedream, Flux, Qwen Image: up to 10 references, image_size, no quality.
- Recraft V4 and Qwen Image Max: no references, WebP only on Recraft.
Keep the check in one place
This is cheap to do and removes a whole class of 400 errors from production. Put the descriptor lookup in a single function and call it before each send. A cached copy of GET /v1/images/models is enough, since the catalog changes rarely, but refresh it on a 400 unsupported_parameter so a new release does not leave you stale.
Sources
Related posts
More in Developers
- Which Sume MCP URL? mcp.sume.com/mcp, not the dev host or Studio
Add https://mcp.sume.com/mcp as the connector. The dev host is internal, and Studio Agent is a separate product, not the hosted MCP connector.
- Which MCP server lets Claude Code or Cursor generate video and images?
MCP servers that let Claude Code and Cursor make video and images: Sume, fal, Replicate, Runway, Higgsfield. Endpoints, sign-in, billing, setup.
- Idempotency keys for AI video APIs: retry without paying twice
An idempotency key makes a retried create return the original run or job instead of a second paid one. How Sume's Idempotency-Key works on each API.
- Signed webhooks for Sume video runs: events, retries, verification
Sume sends one HMAC-SHA256 signed POST when a Format, Action, or Agent Completion run completes or fails. Verify the raw body and dedupe on request_id.
Written by Sume