Nodes/ComfyUI Razv WaveSpeed Nodes/WaveSpeedAI Image Upscaler
ComfyUI Node

WaveSpeedAI Image Upscaler

The hosted AI upscaler that needs zero VRAM

By razvanmatei-sf·Created 12 months ago·Updated 9 months ago· 0
WaveSpeedAI Image Upscaler
  • client
  • upscaled_image
image_url
target_resolution4k
creativity0.0
output_formatjpeg
enable_sync_modetrue

Upscaling has a reputation for being the most confusing corner of this hobby, and it's mostly earned: the word covers everything from instant pixel interpolation to full generative restoration, and people argue past each other about which is "real." This node sidesteps the whole local toolbox - no ESRGAN model downloads, no tile sizes, no VRAM budget - by sending your image to WaveSpeed AI's upscaler and bringing back the result. It's the "more detail" kind of upscaling (generative, adds plausible detail), not the "more pixels" kind, and understanding that is the entire game.

What it is

A hosted image upscaler: in goes an image_url, out comes an IMAGE tensor at your chosen target_resolution - 2k, 4k, or 8k. The model is WaveSpeed's, and the one setting that defines its behavior is creativity, a float from -2 to 2. Lower values stay faithful to the source; higher values add more invented detail, at the cost of changing the image. The tooltip says it plainly: "higher values add more detail but may alter the image."

How it works

You connect the client from the WaveSpeedAI Client node, and the node POSTs {image, target_resolution, creativity, output_format} to the upscaler endpoint. The result is returned as a URL and then downloaded back to your machine as an IMAGE tensor - so like the other image nodes in this pack, generation happens remotely but the download happens on your box. Keep enable_sync_mode on (default) and it blocks until the upscaled image is in your graph.

The inputs that matter

  • target_resolution - 2k, 4k, or 8k. Bigger is not automatically better: an upscaler can't invent detail from a soft source, and 8k of blur is still blur.
  • creativity - the dial that matters. Start at 0. Go negative if the model is changing things you wanted kept; go positive if the output looks flat. People who get burned here almost always turned this up first.
  • output_format - jpeg, png, or webp. PNG if you need a lossless round-trip.
  • enable_sync_mode - default on; turn off for batch work.

Output name is upscaled_image, type IMAGE.

Install & setup

Same pack, same steps:

cd ComfyUI/custom_nodes
git clone https://github.com/razvanmatei-sf/razv-wavespeed.git
cd razv-wavespeed
pip install -r requirements.txt

or ComfyUI Manager → "razv-wavespeed" → Install, then restart. API key from wavespeed.ai in config.ini / the Client node / WAVESPEED_API_KEY. Deps: requests, pillow, numpy<2.0.0, torch.

Common issues

  • Upscaled image looks smeared - you asked a generative upscaler to fix something that was already sharp; it re-rendered. Lower creativity, or if your source is already clean and just small, you wanted a plain pixel upscaler (free, instant, local) instead of this node.
  • "No output received" - unreachable source URL, or the task timed out.
  • 401 - key problem.

Be honest about your use case. If your image is clean and just needs to be bigger, a free local 4x ESRGAN is the right answer and this node is overkill. If the source is soft or damaged and you want detail rebuilt into it, this hosted upscaler is a perfectly good way to get it without a local SUPIR install. The creativity slider is the whole difference between those outcomes.

CategoryWaveSpeedAI

Inputs (6)

NameTypeDefaultDescription
clientWAVESPEED_AI_API_CLIENT
image_urlSTRINGURL of the image to upscale (connect from Upload Image node)
target_resolutionCOMBO4kTarget resolution for upscaling
creativityFLOAT0.0-2–2Enhancement level (-2 to 2). Higher values add more detail but may alter the image
output_formatCOMBOjpegOutput image format
enable_sync_modeBOOLEANtrueWait for upscaling to complete before returning

Outputs (1)

NameTypeDescription
upscaled_imageIMAGE