NSWaveSpeedRunwayUpscale
Upscale a video with Runway's model — no local render farm
- client
- upscaled_video_url
Video upscaling is the most annoying kind of upscale: it's a model doing frame-by-frame work, it wants more VRAM than you have, and it takes forever. This node skips all of it - you hand it a video URL, WaveSpeed runs Runway's upscale model on their side, and you get back a URL to a higher-quality version.
It's part of the Symbiotica pack's neuralsins/WaveSpeed family. It's about as thin as a node gets: two required inputs, one output, no dials to turn. That's the pitch - the whole job is outsourced, including the judgment calls about how to clean each frame.
How it works
video_url in, upscaled_video_url (STRING) out. It POSTs to WaveSpeed's /api/v3/runwayml/upscale-v1 - note it's a Runway endpoint, not the plain wavespeed-ai path - with the video URL in the payload, then waits or polls depending on enable_sync_mode (on by default).
The two inputs:
video_url- the source video, hosted somewhere WaveSpeed can fetch. The tooltip says "connect from Upload Video node," which in practice means: a reachable URL. Local file paths won't cut it.enable_sync_mode- wait inline for the result (default) or submit-and-poll. Given that video upscaling is minutes of work, either is defensible; the node's poll runs with a generous 600-second timeout.
The output is a URL string, not frames - you'll need a video-loading node downstream to pull it onto the canvas as tensors.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/symbiotica-ai/comfyui-nodes.git symbiotica
pip install -r symbiotica/requirements.txt
Restart, or search Symbiotica in ComfyUI Manager. An NS WaveSpeed Client node with your WAVESPEED_API_KEY feeds the client socket.
Common issues
- URLs in, URLs out. You can't feed it a local clip and you don't get a tensor - both ends of this node are strings. The pipeline is: host the source, upscale, load the result from the returned URL.
- It's minutes, and it's metered. A video upscale is a big job. Budget the wait and the bill; don't re-queue casually to compare settings - there are no settings to compare.
- No controls, by design. There's no resolution target, no strength, no format picker. Runway's model decides. If you need fine-grained control, this isn't the node - it's the "I just want it done" node.
- Big files, slow fetch. If the source URL is a huge MP4 on a slow host, the whole job slows before the model even starts.
The honest take: this node exists to convert "I need this video bigger and cleaner" into a single button press. It's the least configurable node in the WaveSpeed family, and that's a feature - the decision was made for you, which is exactly what you want when the alternative is building a frame-by-frame tiled upscale workflow.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| client | WAVESPEED_AI_API_CLIENT | — | |
| video_url | STRING | URL of input video for upscaling (connect from Upload Video node) | |
| enable_sync_mode | BOOLEAN | true | Wait for upscaling to complete before returning |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| upscaled_video_url | STRING | — |