Ideogram 4.5 output_format png returns 400 on Sume: omit it

On Sume, Ideogram 4.5 lists no output_format values, so even png is a 400. A table of which image models take png, jpeg or webp, and Recraft's webp-only.

4 min readSume
All posts

If you send output_format: "png" with model: "ideogram/ideogram-v4.5" on Sume, you get 400 invalid_request with details.supported: []. The model's catalog entry lists no output formats, so any value is refused, even the common one. Leave the field out and read the media_type on each returned image to see what you received.

This is the same rule the Image API page states for every parameter: a field a model does not list is rejected rather than silently dropped. What is surprising is that output_format is on that list of checked fields even when the allowed set is empty. The table below comes from the catalog in Sume's repository, run on 2026-10-03.

Which image models accept which output formats?

Most catalog rows list png, jpeg, and webp. Two exceptions matter for a pipeline that sets the field on every call.

output_format descriptors from the image model catalog, run 2026-10-03. Read GET /v1/images/models for the current values (docs.sume.com/models/images).
Model idoutput_format values
openai/gpt-image-2, openai/gpt-image-2.5, openai/gpt-image-2.5-sunburstpng, jpeg, webp
google/nano-banana-2, google/nano-banana-propng, jpeg, webp
bytedance-seed/seedream-5-lite, seedream-4.5, seedream-4png, jpeg, webp
x-ai/grok-image, qwen/qwen-image, qwen/qwen-image-maxpng, jpeg, webp
black-forest-labs/flux.2-pro, flux.2-flex, ideogram/ideogram-v3png, jpeg, webp
recraft/recraft-v4webp only; png returns 400 with supported: ["webp"]
ideogram/ideogram-v4.5, higgsfield/soulnone listed; any value returns 400 with supported: []

What should I send instead?

For those two rows, omit output_format and let the response tell you. The image response carries media_type per item (for example image/png or image/webp), and a finished job's result.artifacts[] carries content_type. Read that value rather than assuming a file extension from your request.

If you need a specific format from a model that lists none, convert after download. A short Pillow call (Image.open(...).save("out.jpg")) is enough; keep the Sume-hosted URL as your source of truth, since the page says results are Sume-hosted rather than inline.

How do I avoid this in a multi-model script?

Build the payload from the catalog. Read supported_parameters.output_format for the model you chose, and add the field only when your preferred value is in values. The same pattern protects quality and resolution, which are also model-specific.

Two related notes from the same page: output_compression is in the schema but no model advertises it yet, so it returns 400 unsupported_parameter; and svg is part of the documented vocabulary but is not on the GPT Image rows above.

Why does an empty list still reject png?

The check is a membership test against the descriptor's values. When the list is empty, nothing is a member, so every value fails. The error is a plain invalid_request with details.field: "output_format" and details.supported: [], which is how you can tell this case from an unknown model (404 model_not_found) or a parameter the model does not advertise at all (400 unsupported_parameter).

If your builder writes output_format into every payload by default, that default is the bug. Make it conditional on the catalog, and keep a short allowlist of models where you know the field is safe.

Sources

Related posts

More in Models

All Models posts

Written by Sume