Nodes/ComfyUI/WaveSpeed Image Upscale
ComfyUI Node Runs on cloud

WaveSpeed Image Upscale

WaveSpeed Image Upscale is a hosted upscaler wearing a node costume

By Comfy-Org·Created 4 years ago·Updated about 15 hours ago· 130,663
WaveSpeed Image Upscale
  • image
  • IMAGE
model
target_resolution

Your GPU didn't get asked, and that's the whole point

The name makes it sound like a local node, but the first thing to know about WaveSpeed Image Upscale is that the heavy lifting happens somewhere else. This is an API node baked into ComfyUI core: you hand it an image, it uploads that image to WaveSpeed's servers, a hosted model upscales it to 2K, 4K, or 8K, and the result comes back as a normal IMAGE tensor that plugs straight into your workflow. No VRAM consumed, no model files downloaded, no install. Your graphics card is demoted to spectator.

Why reach for it? Because one of the two models is SeedVR2 - the generative detail upscaler that's been the community's "add real detail" answer since late 2025, the Apache-2.0 model everyone runs locally. This node gives you that exact model as a hosted service, priced per call, with no GPU or dependency wrangling. And because it's async: a local SeedVR2 run pins your card for a couple of minutes, while the hosted version frees you to keep generating.

Be honest about what it isn't. It's the "more detail" job of upscaling, not the "more pixels" job. If your source is already sharp and you just need it bigger, a free local ESRGAN or Lanczos pass is still the right tool - faster, free, and it can't invent anything. This node is for when you want a model to reconstruct detail that was never there.

How it works

Mechanically it's a small async client. Your image gets uploaded to Comfy's proxy, which POSTs it to WaveSpeed's API at /proxy/wavespeed/api/v3/wavespeed-ai/{model}, polls the job every ten seconds or so until it's done, then downloads the result into an image tensor. Failures come back as plain Python errors naming the code and message.

Two model choices, and they're very different animals:

  • SeedVR2 - ByteDance's open video-restoration architecture applied to single images, and the model the community overwhelmingly prefers for adding genuine detail (pores, lashes, fabric weave). Since it's open-source and widely run locally, it's the known quantity.
  • Ultimate - WaveSpeed's own hosted upscaler, their premium tier. The docs describe the models as "different quality and pricing tiers," and the price badge updates live as you switch - expect Ultimate to cost noticeably more per call.

You'll also pick a target_resolution: 2K, 4K, or 8K. Which model you pick is the real decision.

The inputs that matter

Only three inputs, all required, and two of them are dropdowns:

  • model - SeedVR2 or Ultimate, as above.
  • image - your input. Exactly one. Feed it a batch and the node raises ValueError: Exactly one input image is required. So don't wire a batch directly in; if you have a folder of images, process them one at a time.
  • target_resolution - 2K, 4K, or 8K. Start at 4K; 8K is a bigger bill for a marginal gain unless you're printing.

The output is a single IMAGE tensor - wire it straight into a Save Image, or keep it in the graph for further passes.

Getting it and paying for it

It ships with ComfyUI core, added in January 2026 - no install, no Manager. It also needs nothing in your models folder; the models live on WaveSpeed's infra.

The catch is the account. The hidden inputs include your ComfyOrg auth token (or API key), so you have to be signed into a Comfy account in the frontend, with credits loaded. It's billed per call, model-dependent - the exact price floats, so read the badge in the node header rather than trusting any number you see quoted. And the obvious implication: your image leaves your machine and goes to a third party. Fine for test renders; a real consideration if the image is sensitive, unreleased work, or NSFW.

Where people get burned

  • Batching. The "exactly one image" rule is the most common trip. Loop single images, don't feed a batch.
  • Judging SeedVR2 on the wrong source. The open model it wraps lifts contrast and rewrites faces on close-ups - the corpus's bluntest take is "human to lizard upscaler." If a portrait matters, don't trust a single generative pass; give the face its own pass. That's a property of the model, not a node bug, and the cloud version won't save you from it.
  • Paying for the wrong job. If your image is already sharp and just small, this is overkill and overpriced. Use the free local rung.

Honestly, this node's audience is narrow but real: you want SeedVR2-class results, your GPU or patience won't cooperate, and the per-call cost is worth it for the jobs that matter. For everything else, the local stack is still king - this is the paid shortcut, and it knows it.

Categorypartner/image/WaveSpeed

Inputs (3)

NameTypeDefaultDescription
modelCOMBO2 options: SeedVR2, Ultimate
imageIMAGE
target_resolutionCOMBO3 options: 2K, 4K, 8K

Outputs (1)

NameTypeDescription
IMAGEIMAGE