Does PNG, JPEG or WebP change the price of an AI image on Sume?
No. On Sume's Image API, output_format picks the file type, not the price: per-image cards and GPT Image 2.5 token math ignore it. Which models list which.

Output format does not change what an image costs on Sume's image API. output_format selects png, jpeg or webp for the file you get back; the price comes from the model, the quality tier, the size and the number of images. A WebP and a PNG of the same request bill the same, so choose the format for file size and downstream tooling, not for cost.
That is a statement about how Sume prices these models, not a general rule about image generation. The two price shapes on the catalog are a flat per-image card and, for the GPT Image family, a token estimate. Neither takes the output format as an input.
Where the price actually comes from
Most catalog rows are flat cards per image. Seedream 5.0 Lite lists at $0.035, Seedream 4.5 at $0.04, FLUX.2 Pro at $0.03, Grok Imagine at $0.02, and each is multiplied by 1.25 for the billed amount. Nano Banana 2.1 and Nano Banana Pro vary by resolution tier. Ideogram 4.5 varies by quality. ChatGPT Image 2.5 and ChatGPT Image 2 are priced from quality and size.
Across those rules the one request field that never appears is the file type. The cost you read back in usage.cost is the billed USD amount, and you can check it against the per-model pricing line from GET /v1/images/models/{id}/endpoints before you spend anything.
| Model family | Flat card per image | Resolution tier | Quality tier | Size or ratio | output_format |
|---|---|---|---|---|---|
| Seedream 5.0 Lite, 4.5, 4.0 | Yes | No | No | No | No |
| FLUX.2 Pro and Flex | Yes | No | No | No | No |
| Nano Banana 2.1 and Pro | By tier | Yes | No | No | No |
| Ideogram 4.5 | By quality | No | Yes | No | No |
| ChatGPT Image 2.5 and 2 | Token estimate | No | Yes | Yes | No |
Which formats each model lists
The catalog descriptor output_format is an enum per model. Most rows list png, jpeg and webp. Higgsfield Soul lists none, because the provider chooses the format and returns PNG. Ideogram 4.5 documents the same: the provider selects the output format and the request does not accept the field. A model that does not list a parameter returns 400 unsupported_parameter; Sume does not silently drop it. The public vocabulary also contains svg, but no v1 model advertises it, so it is rejected per model.
Check the descriptor before you hard-code a value: read supported_parameters.output_format.values from GET /v1/images/models, and fall back to omitting the field if it is absent.
When the format still matters to your bill
Indirectly, yes. A lossless PNG of a 2K image is a much larger file than a WebP, which changes your storage, your egress and the time a client needs to load it. Sume returns data[].url pointing at a Sume-hosted copy, so there is no base64 body to inflate either way. Pick webp or jpeg for thumbnails and web pages, and png when you will edit the image again, because each lossy pass loses detail.
Also note what output_compression does: nothing yet. The field is in the schema, but no model advertises it in v1, so sending it returns a 400. If you need a smaller file, re-encode on your side.
curl -s -X POST https://api.sume.com/v1/images \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"openai/gpt-image-2.5","prompt":"A paper crane on a desk",
"quality":"low","output_format":"webp"}' | jq '.usage.cost, .data[0].media_type'Check the price yourself before a batch
Every catalog model has an endpoint record with its billable lines. Read it once, multiply by your image count, and compare with usage.cost on the first real response. The call below reads Seedream 5.0 Lite; swap in any id from the catalog.
The pricing array is a list of {billable, unit, cost_usd} objects, and cost_usd is already the amount Sume charges, margin included, so you pay cost_usd times n. If you ever see a difference between that product and usage.cost, stop the batch and look at the quality, resolution or reference inputs of the request, because those are the fields that legitimately move the number. The file type is not one of them.
Keep in mind that every figure here is a billed price from Sume's catalog on the date in the table caption. Prices and limits can change, so before a large run, read the endpoint record for the exact model id and compare it with your plan. A one-minute check costs nothing, and it is the only way to be sure the number in your budget is the number on the invoice.
curl -s https://api.sume.com/v1/images/models/bytedance-seed/seedream-5-lite/endpoints \
-H "Authorization: Bearer $SUME_API_KEY" | jq '.endpoints[0].pricing'Sources
Related posts
More in Developers
- duration vs duration_seconds on each Sume video route
/v1/videos takes duration; motion control and lip-sync take duration_seconds; recast and edit read the source clip. One table of what each does.
- Fade in and out on a Timeline render: output fade seconds 0 to 5
Set output.fade_in_seconds and fade_out_seconds (0 to 5 s, sum within the render length). The music bed has its own fade_out_seconds, up to 10.
- Fast-cut Shorts in Timeline: eight chained fades, then a hard cut
Timeline refuses more than 8 adjacent fades with too_many_chained_transitions. Transitions must be 1 s or less and half the shorter neighbour. How to plan cuts.
- Fix an underexposed photo: curves first, AI edit only if needed
Underexposed photo? Try Pillow autocontrast and gamma for free, then an ideogram/ideogram-v4.5 edit at $0.075 only if noise or colour needs more.
Written by Sume