Video Upscaler · Upscale
The cheap way to make a 480p render look finished
- video_url
- video
- task id
Video upscaling is the hard one, and it's the one people actually need
Still-image upscaling is a solved-ish argument. Video is where the KB's essay stops being diplomatic: every frame has to agree with its neighbours, and it has the least settled answer in mid-2026. SeedVR2 for low-resolution sources, FlashVSR for speed, NVIDIA's two-pass RTX path on consumer cards, Topaz as the paid benchmark - and each of them drags in VRAM, tiling decisions and a config that changes the output more than the model does.
This node sidesteps the whole debate. One clip in, an MP4 out at 720p, 1080p, 2K or 4K, from $0.006 per second - a 20-second clip is about 12 cents. Length, aspect ratio, motion, cuts and the audio track all stay as sent, and there's no prompt.
How it works
The clip is uploaded (90 MiB ceiling) and spicyapi/video-upscaler-v1/upscale returns the enlarged version as a ComfyUI VIDEO. No local model, no tiling to configure, no 12-minute wait on a rented GPU.
The input that matters
video_url (VIDEO) - the clip, 3 to 60 seconds. Load Video or a video output from another node. Clips outside that range are rejected before any charge.
resolution - 720p, 1080p, 2k or 4k, default 1080p. Read the tooltip before you pick, because it explains the actual behaviour: it's a pixel budget with the aspect ratio kept, not a target width. The example given is the useful one - an 832×480 clip at 1080p comes back at 1896×1094. Ultrawide and vertical sources get their own sensible answers rather than being squashed into 1920×1080.
It also sets the per-second rate, so the badge on the node changes as you change it. That's the number to watch: 4K is the expensive tier and it's the one people leave selected by accident.
Outputs: video (VIDEO, to Save Video) and task id (STRING). No seed - the run isn't reproducible.
Install
Manager → search SpicyAPI, or:
cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi
Restart. No pip install, no model download, no GPU - the pack's dependency list is empty and everything runs server-side. Python 3.10+ and a ComfyUI with the V3 node API. Key in Settings > SpicyAPI (or SPICY_API_KEY), one restart so the node list comes from your account, and set Max cost per run before you touch a 4K job.
When to use it, and when not to
- Use it for output. A 480p Wan or LTX render upscaled to a clean 1080p is the single highest-value six cents per second in this pack. This is the node that makes low-res drafts presentable.
- It's not a restoration tool. Heavy compression, noise and blur are a different job - the local answer there is SUPIR-class restoration, and this node is not claiming to be that.
- The audio is preserved, which is the detail that makes it usable as a final stage: upscale the finished clip, don't re-render it.
- Faces are the known weak spot of every generative upscale. On a talking-head clip, expect skin that's slightly too smooth or slightly too sharp, and budget a face pass if it matters.
- Cost scales with length, so trim while you test. Six cents a second is cheap, and a careless loop on a 60-second clip is 72 cents a pass.
- Cancelling stops your wait, not the render. If it finishes server-side it's billed, and the result is in your console for up to 14 days.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| video_url | VIDEO | The clip to upscale, 3 to 60 seconds long. Length, motion and the audio track are kept; clips outside that range are rejected before any charge. | |
| resolution | COMBO | 1080p | Output tier: a pixel budget with the clip's aspect ratio kept, so an 832x480 clip at 1080p comes back at 1896x1094. Sets the per-second rate. |
| seed | INT | 00–2147483647 | This model takes no seed, so the number is never sent. Changing it makes ComfyUI run the node again: set 'control after generate' to randomize for a new result on every run; every run is billed. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| task id | STRING | The SpicyAPI task id, for the console logs or support. |