Nodes/Replicate Select/SUPIR Upscale (Replicate)
ComfyUI Node

SUPIR Upscale (Replicate)

SUPIR without the 16GB VRAM bill — but the faces still get rewritten

By Pharma-Lobby·Created 2 months ago·Updated 2 months ago· 0
SUPIR Upscale (Replicate)
  • image
  • image
model_nameSUPIR-v0Q
upscale1
min_size1024.00
edm_steps50
use_llavatrue
a_promptCinematic, High Contrast, highly detailed, taken using a Canon EOS R camera, hyper detailed photo - realistic maximum detail, 32k, Color Grading, ultra HD, extreme meticulous detailing, skin pore detailing, hyper sharpness, perfect without deformations.
n_promptpainting, oil painting, illustration, drawing, art, sketch, oil painting, cartoon, CG Style, 3D render, unreal engine, blurring, dirty, messy, worst quality, low quality, frames, watermark, signature, jpeg artifacts, deformed, lowres, over-smooth
color_fix_typeWavelet
s_stage1-1
s_churn5.00
s_noise1.00
s_cfg7.50
s_stage21.00
linear_CFGfalse
linear_s_stage2false
spt_linear_CFG1.00
spt_linear_s_stage20.00
seed0

SUPIR is a generative upscaler with a split personality. Run it locally and it needs 10–12GB of VRAM minimum, 16GB+ to be comfortable, which puts it out of reach of a whole tier of machines. This node runs the same cjwbw/supir model on Replicate's hardware, so you get the restoration power without the VRAM. That's a genuinely good trade for the machine-poor.

But know what you're buying. SUPIR doesn't just upscale - it restores. It captions your image with LLaVA and regenerates toward what that caption describes, which is how it fixes compression artifacts, heavy noise, and blur in a single pass that nothing else quite matches. The same mechanism is why it rewrites faces: it invents a plausible one rather than preserving the person you know. That's design, not a settings problem, and it was true on day one. Keep faces out of the SUPIR pass and handle them separately if identity matters.

Also worth saying: for mid-2026, the community has quietly moved most "upscale the detail" work to SeedVR2 (faster, Apache 2.0, free, and it doesn't rewrite faces the way SUPIR does). SUPIR's surviving niche is genuinely damaged sources - old scans, heavy JPEG, noisy phone photos. That niche is real, and it's the honest reason to reach for this node.

How it works

Pack standard: the node uploads your image as PNG, calls replicate.run("cjwbw/supir", ...), downloads the result, returns an IMAGE tensor. The difference from the local version is that you've rented the 16GB of VRAM per call instead of owning it - which is exactly the trade a no-local-GPU setup makes.

The inputs that matter (don't touch the rest)

This schema has nineteen inputs, and most of them are SUPIR's research knobs you should leave alone. The ones you actually set:

  • image (required) - the low-quality input.
  • model_name - SUPIR-v0Q (default, the paper's training settings) or SUPIR-v0F (higher generalization, better image quality in most cases). For real-world damage, v0F is the one most people end up preferring.
  • upscale - the ratio. Default 1 - note it's a plain integer, so "2" for 2x.
  • edm_steps - 50 default. More steps = slower = marginal gains past ~50.
  • use_llava - LLaVA captioning on by default. It's what drives the restoration direction; turning it off makes the model lean on a_prompt instead.
  • a_prompt / n_prompt - the additive positive and negative prompts, and yes, the defaults are comically long ("Cinematic, High Contrast... 32k... skin pore detailing"). They work. Leave them until you know why you're changing them.
  • color_fix_type - Wavelet (default) is the safe choice for color shifts; AdaIn if Wavelet overcorrects.
  • seed - set it for reproducibility.

Everything from s_stage1 down through spt_linear_s_stage2 is EDM sampler plumbing. You can ignore it completely and still get the results people talk about.

Output: image, an IMAGE tensor.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/Pharma-Lobby/ComfyUI-Replicate-Select

Or ComfyUI Manager → "Replicate Select", restart. Only dependency: replicate>=1.0.7. Token via environment variable:

export REPLICATE_API_TOKEN=r8_...

Where people get burned

  • Faces change. Restoring an old family photo with SUPIR will hand you back a stranger. Inpaint faces separately or use a non-generative upscaler for portraits.
  • Clean images get worse. Feed SUPIR an already-clean render and it adds unwanted texture; it's a restoration tool, not a "sharpen my good image" tool.
  • Licensing. If this is for anything commercial, note SUPIR's weights are non-commercial without written permission from the author - the node doesn't change that, it just runs the model.
CategoryReplicate Select/upscale

Inputs (19)

NameTypeDefaultDescription
imageIMAGELow quality input image.
model_nameoptCOMBOSUPIR-v0QChoose a model. SUPIR-v0Q is the default training settings with paper. SUPIR-v0F is high generalization and high image quality in most cases. Training with light degradation settings. Stage1 encoder o
upscaleoptINT1-2147483648–2147483647Upsampling ratio of given inputs.
min_sizeoptFLOAT1024.00-1000000000–1000000000Minimum resolution of output images.
edm_stepsoptINT501–500Number of steps for EDM Sampling Schedule.
use_llavaoptBOOLEANtrueUse LLaVA model to get captions.
a_promptoptSTRINGCinematic, High Contrast, highly detailed, taken using a Canon EOS R camera, hyper detailed photo - realistic maximum detail, 32k, Color Grading, ultra HD, extreme meticulous detailing, skin pore detailing, hyper sharpness, perfect without deformations.Additive positive prompt for the inputs.
n_promptoptSTRINGpainting, oil painting, illustration, drawing, art, sketch, oil painting, cartoon, CG Style, 3D render, unreal engine, blurring, dirty, messy, worst quality, low quality, frames, watermark, signature, jpeg artifacts, deformed, lowres, over-smoothNegative prompt for the inputs.
color_fix_typeoptCOMBOWaveletColor Fixing Type..
s_stage1optINT-1-2147483648–2147483647Control Strength of Stage1 (negative means invalid).
s_churnoptFLOAT5.00-1000000000–1000000000Original churn hy-param of EDM.
s_noiseoptFLOAT1.00-1000000000–1000000000Original noise hy-param of EDM.
s_cfgoptFLOAT7.501–20 Classifier-free guidance scale for prompts.
s_stage2optFLOAT1.00-1000000000–1000000000Control Strength of Stage2.
linear_CFGoptBOOLEANfalseLinearly (with sigma) increase CFG from 'spt_linear_CFG' to s_cfg.
linear_s_stage2optBOOLEANfalseLinearly (with sigma) increase s_stage2 from 'spt_linear_s_stage2' to s_stage2.
spt_linear_CFGoptFLOAT1.00-1000000000–1000000000Start point of linearly increasing CFG.
spt_linear_s_stage2optFLOAT0.00-1000000000–1000000000Start point of linearly increasing s_stage2.
seedoptINT0-2147483648–2147483647Random seed. Leave blank to randomize the seed

Outputs (1)

NameTypeDescription
imageIMAGE