Nodes/comfyui-stillfront/SFWaveSpeedRunwayUpscale
ComfyUI Node

SFWaveSpeedRunwayUpscale

Video upscaling with no GPU, no ffmpeg, no patience

By razvanmatei-sf·Created 9 months ago·Updated 7 months ago· 0
SFWaveSpeedRunwayUpscale
  • client
  • upscaled_video_url
video_url
enable_sync_modetrue

This is the thinnest node in the whole SF WaveSpeed family, and honestly that's its selling point. You feed it a video URL, it upscales on RunwayML's servers via the WaveSpeed API, and it hands you back a URL to the result. No model to download, no VRAM to fight over, no frame-by-frame stability tricks to babysit.

Video upscaling is a different beast from image upscaling. Every frame has to agree with its neighbors, or you get that shimmering, breathing mess that ruins an otherwise fine clip - the KB's upscaling essay calls it "more pixels over time," the category with the least settled local answer. Running it as an API call sidesteps the whole problem: RunwayML's upscale model handles temporal consistency server-side. If you mostly do local generation but have one clip that needs to be presentable, this is the node you reach for instead of renting a GPU box or installing a video-restoration stack you'll use once.

How it works

The node POSTs your video to /api/v3/runwayml/upscale-v1 and returns the first result from the API's output list. That's the entire mechanism. It comes from Stillfront/comfyui-sf-nodes ("SF ComfyUI Nodes") alongside the other WaveSpeed nodes, so the same rules apply: it needs an SF WaveSpeed Client node with a valid API key, and it bills against your WaveSpeed credits.

The inputs

There are effectively two knobs on this node:

  • client - required, the shared SF WaveSpeed Client connection.
  • video_url - the input video as a URL (the tooltip says connect from ComfyUI's Upload Video node). This is required too.
  • enable_sync_mode - whether the node waits for the upscale to finish before returning. Leave it on for a normal workflow; flip it off and the node still blocks while polling, it just submits the job first.

Output is a single upscaled_video_url (STRING). Note what that means: you get a hosted URL, not a file in your output folder. Wire it into a download node or paste it in a browser. There's no resolution knob, no strength slider, no before/after - the node is deliberately opinionated, which is either refreshing or frustrating depending on how you like your workflows.

Install

Standard for the pack - ComfyUI Manager, search "SF ComfyUI Nodes", install, restart. Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/Stillfront/comfyui-sf-nodes.git
cd comfyui-sf-nodes
pip install -r requirements.txt

Then add an SF WaveSpeed Client node and drop your WaveSpeed key into it (or set it in config.ini under [API] api_key, or the WAVESPEED_API_KEY env var). No model downloads, no heavy dependencies - the pack's requirements are requests, pillow, numpy, torch, pydantic and the Google SDKs.

Troubleshooting

  • "No output received" - usually means the input video URL isn't reachable from WaveSpeed's servers. Localhost or private-network URLs get rejected; host the file somewhere public first.
  • Unauthorized (401) - the client key is wrong or missing. Check the Client node widget before suspecting the node.
  • It's slow - upscaling is a long job; async mode polls for up to 600 seconds. Sync mode is fine for most cases, just don't expect it to be instant.

One honest caveat: there's no preview of what the upscaler will do to your source, and per-minute cloud upscaling is real money. Send your best source, not a draft. If you're on an RTX card and just need a quick 2x on a decent clip, the free local NVIDIA VSR nodes might be all you ever needed - this node is for when those don't cut it.

CategoryStillfront/WaveSpeed

Inputs (3)

NameTypeDefaultDescription
clientWAVESPEED_AI_API_CLIENT
video_urlSTRINGURL of input video for upscaling (connect from Upload Video node)
enable_sync_modeBOOLEANtrueWait for upscaling to complete before returning

Outputs (1)

NameTypeDescription
upscaled_video_urlSTRING