SF WaveSpeed Image Upscaler
A 4K-or-8K generative upscaler that runs entirely in someone else's cloud
- client
- upscaled_image
Most upscalers in ComfyUI want a model file, some VRAM, and a minute of your GPU. SF WaveSpeed Image Upscaler wants none of that - it sends your image to WaveSpeed's hosted upscaler and brings back a 2K, 4K, or 8K result as a tensor. If your card chokes on local upscaling, or you just don't want to babysit a tile pass, this is the "rent the compute instead" option.
Just be clear on the trade you're making. This is a generative upscaler - the creativity knob literally decides how much new detail the model is allowed to invent - so it's the "more detail" job from the upscaling playbook, not a simple pixel resize. Faces will subtly drift. For sharp sources that just need more pixels, a free ESRGAN model locally is still the right answer; for soft sources you want to enhance, this is a contender.
It's part of the comfyui-stillfront pack, and like every WaveSpeed node it's an API call, not a local model.
How it works
You feed it a URL to the image and it POSTs to WaveSpeed's image-upscaler endpoint with your resolution target and creativity level. The result comes back as a URL, which the node downloads and converts to an IMAGE tensor. Straightforward - the only moving parts are your WaveSpeed key and the image URL.
The one input that deserves real thought is creativity (-2 to 2, default 0). Negative values mean conservative, faithful upscaling; positive values mean more invented detail, which can look great on soft art and ruinous on anything with a face you care about. The tooltip is honest: higher values "may alter the image." Start at 0 and nudge up only if the result is too clean.
The other main dials: target_resolution (2k/4k/8k - 8K is a lot of pixels and a lot of cents, so only go there if you actually need it), output_format (jpeg/png/webp), and enable_sync_mode (default on, meaning wait for the job to finish before returning).
Output is a single upscaled_image (IMAGE). Wire it to a preview or save node.
Installing it
You need the pack plus a WaveSpeed key. Pack first:
cd ComfyUI/custom_nodes
git clone https://github.com/razvanmatei-sf/comfyui-stillfront
cd comfyui-stillfront
pip install -r requirements.txt
Then grab a key from wavespeed.ai. You can paste it into the SF WaveSpeed Client node's api_key field and wire that client into this node, or set WAVESPEED_API_KEY as an environment variable. Either way, restart ComfyUI after the install.
Troubleshooting
- "Unauthorized: Invalid API key." The client node is getting no key or a bad one. Check the client node's
api_keyfield, yourconfig.ini, and the env var - it checks them in that order. - The
image_urlinput won't accept your image. It takes a URL string, not an IMAGE tensor - the tooltip says to connect it from the Upload Image node (the one that hands you a hosted URL). If you're trying to drag a wire from a Load Image node, that's the mismatch. - Result looks plastic or over-smooth.
creativityis too high, or you're upscaling something already smooth. Drop creativity toward -2 and re-run. - Slow, or it feels like nothing happened. The upscaler runs on WaveSpeed's side; 8K jobs take real time. Leave
enable_sync_modeon so the node actually waits for the result.
One community note that's worth keeping in mind: WaveSpeed's web UI applies a noticeably stricter sensitivity filter than its API does. These nodes hit the API, which is the path that "supports broader content use cases" - but it's still a paid hosted service, so keep your commercial-license questions in mind before you put client work through it.
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 | — |