Multimodal
Image upscaling
Same POST /v1/images endpoint as
generation — pass
input_references (exactly one
image) to an upscaler model and get back a higher-resolution version of that same image. Unlike
image editing,
no prompt is required — these
models take an image and (usually) a scale_factor,
nothing else.
import requests
resp = requests.post(
"https://videorouter.sh/api/v1/images",
headers={"Authorization": "Bearer llmr_sk_live_..."},
json={
"model": "fal/clarity-upscaler/fal",
"scale_factor": 2,
"input_references": [
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
],
},
).json()
print(resp["data"][0]["url"], resp["usage"]["cost"])
scale_factor (a number, typically
1–4) defaults to 2 when
omitted. Real price depends on the OUTPUT size, which this platform computes itself from your input
image's real dimensions × scale_factor —
never guessed, never billed on a size we haven't confirmed (a handful of flat-priced rows below ignore
scale_factor entirely and bill
the same regardless of size, noted per-row). That cost already includes our 2% platform
fee — see Pricing &
billing.
Which models
11 models across 2 providers — fal.ai and Atlas Cloud.
fal/seedvr2-upscale-imagefal.ai$0.0025/output MPclarity-upscalerfal.ai$0.03/output MPfal/recraft-crisp-upscalefal.ai$0.004/image flatfal/recraft-creative-upscalefal.ai$0.25/image flatfal/aura-srfal.aibilled by real GPU compute time, fixed 4xfal/topaz-upscale-image-generativefal.ai (Topaz)$0.08 per started 8MPfal/topaz-upscale-image-precisionfal.ai (Topaz)$0.08 per started 24MPfal/topaz-upscale-image-creativefal.ai (Topaz)$0.08 per started 2MPatlascloud/image-upscalerAtlas Cloud$0.01/image flatatlascloud/tencent-image-upscalerAtlas Cloud$0.024/image flatatlascloud/photo-cleanupAtlas Cloud$0.02/image flat — dust/scratch/noise restoration, not a resolution upscalerEvery model here also shows up under the Image Upscale filter on the models catalog.
Not yet supported
Mask-based/region-restricted upscaling isn't supported — every model here upscales the whole image.
Every Topaz row is fixed to its family's flagship sub-model (e.g. Wonder 3.5 for the "generative" row) —
picking a specific Topaz sub-model isn't exposed as a request parameter.
stream: true is rejected outright,
same as generation.