Luma Dream Machine upscale: 540p to 4K per generation vs Sume

Luma upscales an existing generation to 540p, 720p, 1080p or 4k with POST /generations/{id}/upscale. What Sume offers instead, and what its docs do not say.

4 min readSume
All posts

Luma's Dream Machine API upscales a finished generation with POST /generations/{id}/upscale, a body of generation_type: "upscale_video" and a resolution of 540p, 720p, 1080p or 4k. Sume offers a video upscale tool of its own, video_upscale_create on hosted MCP, but its public docs do not list the resolutions or the price, so check the live OpenAPI before you build on it.

Luma's side is from the Upscale Generation reference, read on 2026-10-02. Luma's FAQ page says the current API docs are the Luma Agents API, so the endpoints on the older Dream Machine reference pages may not match what you call today. Sume's side is from Hosted MCP tools and gates and Video generation.

What does the Luma upscale call do?

You send the id of an earlier generation in the path and name the target. The call is asynchronous and returns a generation object with state (queued, dreaming, completed or failed), an assets object with video, image and progress_video URLs, the model (ray-2 or ray-flash-2) and the original request. callback_url is optional.

The page does not state a limit, a price or whether a 4k result needs a particular source resolution. A claim such as 'any clip goes to 4k for X' would be invented, so this post makes none.

Luma upscale request, read 2026-10-02
FieldAllowed valuesNotes
generation_typeupscale_videoFixed value
resolution540p, 720p, 1080p, 4kTarget of the upscale
callback_urlHTTPS URIOptional webhook
Path idGeneration idThe clip to upscale

What does Sume have for upscaling video?

Sume lists video_upscale_create among its paid hosted-MCP generation tools, next to image_upscale_create, and the API has a Video Upscale 1.0 route with the public model id sume/video-upscale-1.0. Paid tools need an idempotency_key over MCP, and you follow the job with jobs_wait and jobs_result.

What the public docs do not give is the accepted input, the output resolutions or a per-second price for that route. Do not assume it mirrors Luma's four targets. Read GET /v1/openapi.json, which is a public route, for the request schema, and send one small test job to see the reserved amount.

curl https://api.sume.com/v1/openapi.json | python3 -c "import json,sys;d=json.load(sys.stdin);print([p for p in d['paths'] if 'upscale' in p])"

Is it better to upscale or to generate at the target size?

Sume's other route is to ask for the resolution at generation time. POST /v1/videos takes resolution, and each model advertises the subset it accepts in supported_resolutions; the documented vocabulary runs 480p, 720p, 768p, 1080p, 1K, 2K, 4K. For minimax-h3, the docs say native output is 480p or 768p and that 2K and 4K upscales are priced if requested.

Upscaling after the fact lets you review the cheap version first, which is the main reason Luma's two-step flow exists. Generating at size avoids a second job. If you review before you commit, draft low and render once at the end, as in the Seedance 480p then 1080p workflow.

How should you decide?

Use Luma's upscale call if your clips already live in a Luma account and you want a 4k master from a draft. On Sume, start by reading supported_resolutions for your model; if it already reaches the size you need, submit once. Use the upscale tool only after confirming its schema and cost, and keep each job id so a retry does not pay twice.

Sume reserves the balance at submit and returns the billable amount in usage.cost, so test with a short clip before you queue a batch.

What should you check before a batch of upscales?

Upscale one clip first and compare it with the source at full size. Resolution is not the same as detail: a larger frame can still carry the softness of the draft, and neither vendor page here describes how the upscaler works, so judge the result by eye on your own footage.

Then price it. On Luma, read your credit balance before and after, since the Upscale page gives no figure. On Sume, send one test job and read usage.cost; reservations are made at submit and a failed job is shown in the ledger as a refund. Only after both numbers look right should you queue the batch.

Sources

Related posts

More in Comparisons

All Comparisons posts

Written by Sume