ByteDance Video Upscaler
The Video Upscaler That Returns an Image, and Other Schema Quirks
- image
ByteDance's hosted video upscaler, one node, no local GPU. You feed it a video by URL, path, or UUID and it returns a higher-resolution version - except here's the thing you need to know before you wire it up: this node's schema reports its output as IMAGE, not VIDEO. That's not a typo in your workflow; it's a quirk of how this pack classifies task types. Every upscale task in ComfyUI-Runware routes through the image output path, and this node is no exception even though it takes a video in. So don't expect a VIDEO socket to appear, and don't panic when the wire refuses to connect to your video preview node.
How it works
You provide the clip (video input, as a UUID or URL), the request runs on Runware's cloud with ByteDance's upscaler, and the result comes back through the pack's image path (urls_to_image on the returned media URL). The KB's upscaling essay makes the distinction worth repeating: upscaling is either more pixels (cheap, non-generative) or more detail (generative, rewrites content). This is ByteDance's hosted take on that job, so treat it as "the vendor's upscaler," not a specific family - the per-run price and the result quality are the real specs.
The inputs
It's a deliberately thin node:
- video (required) - the input clip as a UUID or URL. The tooltip adds no constraints beyond that, so don't over-think the input; it's the single wire into the node.
- outputFormat (MP4 / WEBM / MOV) and outputQuality (20–99) - delivery format and compression, same as the video family.
- ttl (toggle +
ttl_value) - only applies when output is served as a URL; ignore it for normal use.
That's the entire node. There's no upscale factor, no target resolution, no "which model" - the vendor decides. That's both the appeal (zero tuning) and the limit (zero control).
Wiring it up
The output is named image and typed IMAGE. In practice, that means: wire it into an image preview or save node if your ComfyUI accepts that, and if the upscaled clip isn't surfacing the way you expect, check your output folder - the pack saves media to ComfyUI/output when it can't wrap a native type, and with this node's classification the "image" path is what the schema promises. If you actually need the upscaled clip as a video file to drop into an editor, grabbing it from the output directory is the reliable route.
Install and setup
Standard pack install: ComfyUI Manager → "Runware" → install → restart, or clone and pip install -r ComfyUI-Runware/requirements.txt (runware-sdk, pillow, soundfile). API key in Settings → Runware API key, RUNWARE_API_KEY, or runware auth login, plus funded credits - the ~$20 minimum top-up with a card on file is the standing community friction.
Troubleshooting
- "Why is there no VIDEO output?" - schema quirk, explained above. It's an
upscaletask; the pack returnsIMAGE. Work with it or grab the file from the output folder. - Nothing comes back - confirm the
videofield is a real URL or a valid Runware media UUID. A local path you haven't uploaded won't resolve. - Quality differs from local upscalers - of course it does; it's a different model on different hardware. If you have specific upscale goals (more pixels vs. more detail), the KB's guidance still applies - match the tool to the job.
This is one of the few nodes in the pack where the schema fights your instinct, so the article is mostly a warning label. It works; it just returns an image, and you should know that before you build a workflow around it.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| video | STRING | Video input (UUID or URL). | |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | MP4 | File format for the generated video. |
| outputQualityopt | INT | 9520–99 | Compression quality of the output. Higher values preserve quality but increase file size. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |