NS WaveSpeed Image Upscaler
Upscaling to 8K with zero local VRAM — the WaveSpeed upscaler
- client
- upscaled_image
Every upscale workflow in ComfyUI eventually hits the same wall: your 8GB card can't hold a 4K pass, so you tile, or you buy time on someone else's GPU. This node is the third option - a hosted WaveSpeed upscaler that takes a URL and hands back a bigger, cleaner image without ever touching your VRAM.
It's part of the Symbiotica pack's neuralsins/WaveSpeed family. The pitch is simple: for the occasional "this one render needs to be huge" moment, per-call upscaling beats babysitting tiled diffusion. For batch work, it gets expensive fast and you should stay local. The KB's upscaling doc makes exactly this point - hosted generative upscalers are a job fit, not a default.
How it works
You hand it an image_url, it POSTs to WaveSpeed's /api/v3/wavespeed-ai/image-upscaler, and the returned image comes back as a tensor in upscaled_image (IMAGE). Straightforward. The three inputs that matter:
target_resolution-2k,4k, or8k. Defaults to 4k. This is the whole reason the node exists; 8k locally is a tiling project, here it's a dropdown.creativity--2to2, default 0. Higher values let the model invent detail ("add detail but may alter the image", per the tooltip). Lower is safer, truer to the source. Think of it as the generative-ness dial.output_format-jpeg,png, orwebp. Pick png if you'll edit further, jpeg if it's a deliverable.
Plus enable_sync_mode, on by default so the node waits and returns the finished image rather than handing you a task id to babysit.
One honest note on expectations: this is a generative upscaler, not a pixel pusher. It's closer in spirit to the "add detail and clean up" end of the upscaling spectrum than to an ESRGAN-style sharpener. On a clean source that's great. On a heavily compressed or noisy source, the local winners like SeedVR2 or SUPIR generally repair better - this node's advantage is that it needs no GPU at all, not that it's the best restoration tool.
Installing
Install the pack once, then wire it up:
cd ComfyUI/custom_nodes
git clone https://github.com/symbiotica-ai/comfyui-nodes.git symbiotica
pip install -r symbiotica/requirements.txt
Restart ComfyUI (or search Symbiotica in ComfyUI Manager). Then add an NS WaveSpeed Client node and paste your key - from Settings → Symbiotica, the WAVESPEED_API_KEY environment variable, or directly on the node. Feed that client into the client socket.
Common issues
- "Connect from Upload Image node" -
image_urlis a URL string, not a tensor. You can't wire a local Load Image into it; you need something hosted and reachable. - 8k is slow. This is a big generation, not a resize. The poll can run toward the timeout on a busy queue - be patient or run it async.
- Image changed color or texture. Turn
creativitydown toward -2. The detail it's adding is what's moving things around.
The one trap to avoid is using this on everything just because it's easy. Per-call cost means the meter is always running - reserve it for the renders that genuinely need the resolution.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| client | WAVESPEED_AI_API_CLIENT | — | |
| image_url | STRING | URL of the image to upscale (connect from Upload Image node) | |
| target_resolution | COMBO | 4k | Target resolution for upscaling |
| creativity | FLOAT | 0.0-2–2 | Enhancement level (-2 to 2). Higher values add more detail but may alter the image |
| output_format | COMBO | jpeg | Output image format |
| enable_sync_mode | BOOLEAN | true | Wait for upscaling to complete before returning |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| upscaled_image | IMAGE | — |