Seedream 5.0 Lite vs Seedream 4.5 on the Sume image API

Seedream 5.0 Lite lists $0.04375 and Seedream 4.5 $0.05 per image on Sume. Same ratios, same 10 references; the only catalog difference is price.

5 min readSume
All posts

On Sume, Seedream 5.0 Lite (bytedance-seed/seedream-5-lite) lists $0.04375 per image and Seedream 4.5 (bytedance-seed/seedream-4.5) lists $0.05, read 2026-10-03. Their catalog descriptors are identical: the same nine aspect ratios, n 1 to 4, up to 10 reference images and png, jpeg or webp output. If you are choosing between them for a Sume integration, the catalog gives you a price difference of $0.00625 per image and nothing else.

That is a statement about the catalog, not about image quality. Sume does not publish a ranking for either model, so treat the quality question as something to test with your own prompts.

Side by side

All three Seedream rows from the catalog, including 4.0 for reference.

Seedream descriptors and output_image price from the Sume image catalog, read 2026-10-03.
Field5.0 Lite4.54.0
Catalog idbytedance-seed/seedream-5-litebytedance-seed/seedream-4.5bytedance-seed/seedream-4
Price per image$0.04375$0.05$0.0325
aspect_ratio list9 ratios, no auto9 ratios, no autoauto plus the same 9
input_references0 to 100 to 100 to 10
n1 to 41 to 41 to 4
output_formatpng, jpeg, webppng, jpeg, webppng, jpeg, webp

Running the same prompt on both

The cheapest honest comparison is the same prompt, the same aspect ratio and n: 4 on each id, then a blind pick. Four images on each costs $0.175 on 5.0 Lite and $0.20 on 4.5. The loop below prints the URLs for both so you can open them side by side.

import os
import requests

prompt = "a bowl of ramen on a wooden counter, overhead shot"
for model in ("bytedance-seed/seedream-5-lite", "bytedance-seed/seedream-4.5"):
    resp = requests.post(
        "https://api.sume.com/v1/images",
        headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
        json={"model": model, "prompt": prompt, "n": 4, "aspect_ratio": "4:5"},
        timeout=60,
    )
    resp.raise_for_status()
    body = resp.json()["data"]
    print(model, "queued" if resp.status_code == 202 else [i["url"] for i in body])

Things both share

Neither row lists resolution or quality, so both reject those fields with 400 unsupported_parameter. Reference URLs must be public HTTPS. On an edit with no auto, set aspect_ratio yourself: omitting it is not the same as matching the source. A call that is still running after the 30-second wait returns 202 with a job envelope instead of 200, so check the status code before reading data; see Jobs and results.

Sources

Related posts

More in Comparisons

All Comparisons posts

Written by Sume