SP_Supir
SUPIR restoration-upscale, collapsed into one node
- model
- clip
- vae
- image
- supir_sampler
- image
- denoised_image
SUPIR is the model that reframed upscaling as a restoration problem instead of a sharpening one - it doesn't just add pixels, it repairs compression artifacts, noise and blur while it scales, running an SDXL backbone underneath. It was the reputation-defining "best restoration tool, very demanding on hardware" answer through 2024 and into 2025, and while SeedVR2 has since taken over as the default general-purpose pick, SUPIR is still the one to reach for when a source is genuinely degraded - an old scan, a heavily compressed photo, something with real damage to fix rather than just detail to add. SP_Supir is SP-Nodes' way of running that whole pipeline as one node instead of wiring together a handful of separate ones.
What it does
It's filed under the pack's "Group Nodes" category, which tells you something useful: this isn't hand-written restoration code, it's a bundle of the SUPIR pipeline's steps packaged into a single node so you don't have to assemble them yourself every time. You feed it model, clip, vae, and image, plus a supir_sampler - which comes from one of the pack's separate sampler-config nodes (SP_SupirSampler_DPMPP2M is the one covered in this pack) - and a supir_model picked from a dropdown populated from whatever SUPIR checkpoint you've got installed.
Two things are worth knowing before you touch a single slider. First, there's no automatic image-captioning input here - the reference SUPIR implementation conditions its restoration on an LLaVA-generated caption of your image, but this node has no caption field, only positive_prompt and negative_prompt text boxes you fill in yourself. You're the caption model. Second, color_match (on by default) runs a color-correction pass against the source, because a restoration model reworking texture and detail will drift the color palette if you don't pull it back.
The inputs that actually matter to a beginner
steps(default 45) andcfg_scale_start/cfg_scale_end(both default 4) - SUPIR runs a CFG schedule that can ramp between a start and end value across the sampling run, rather than one fixed number the whole way through.positive_prompt/negative_prompt- defaults of "high quality, detailed" and "bad quality, blurry, messy" work as a baseline, but since there's no auto-captioning, a more specific description of what's actually in your image will get you further.fp8_unet,vae_tile_size,sampler_tile_size- your VRAM knobs. SUPIR's own documentation puts minimum VRAM around 12GB for the diffusion side alone; drop into fp8 and turn on tiling (values above 0, stepping in 64s) if you're short on headroom or working on a large image.
Two outputs come back: image and denoised_image - expect the first to be the fully post-processed result (color-matched) and the second to be closer to the model's raw output before that correction, useful if you want to compare or do your own color grading instead.
Installing it
- ComfyUI Manager: search "SP-Nodes", install, restart.
- Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/bananasss00/ComfyUI-SP-Nodes, restart.
The pack's own README doesn't spell out a separate model-download step for this node, but the supir_model dropdown is only populated once you actually have a SUPIR checkpoint in place - expect to source one yourself (the official weights are the Fanghua-Yu/SUPIR release) and drop it wherever your ComfyUI install's SUPIR-related nodes expect it. Read that checkpoint's license before using it commercially: SUPIR's weights are released strictly non-commercial, with paid use requiring written permission from the author.
Troubleshooting
If supir_model shows an empty dropdown, that's a missing checkpoint, not a bug in this node - go find and place the SUPIR weights first. If you're restoring a photo of someone you recognize, know going in that SUPIR doesn't preserve identity - it invents a plausible face because it has no idea who's actually in the photo, and that's a design property of the model, not a setting you can fix. Keep faces out of the SUPIR pass on personal photos and handle them separately. And if results look softened or over-smoothed compared to what you expected, that's the most commonly reported gap between SUPIR showcase results and first-run results - it's a model that rewards a workflow tuned to your source, not a one-click fix.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| vae | VAE | — | |
| image | IMAGE | — | |
| supir_sampler | SP_SupirSampler | — | |
| supir_model | COMBO | 0 options: | |
| fp8_unet | BOOLEAN | false | — |
| vae_tile_size | INT | 00–2048 | — |
| sampler_tile_size | INT | 00–2048 | — |
| positive_prompt | STRING | high quality, detailed | — |
| negative_prompt | STRING | bad quality, blurry, messy | — |
| steps | INT | 453–100 | — |
| cfg_scale_start | FLOAT | 4.000–100 | — |
| cfg_scale_end | FLOAT | 4.000–100 | — |
| s_noise | FLOAT | 1.0031–1.1 | — |
| control_scale_start | FLOAT | 1.000–10 | — |
| control_scale_end | FLOAT | 1.000–10 | — |
| seed | INT | 1230–18446744073709550000 | — |
| color_match | BOOLEAN | true | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| denoised_image | IMAGE | — |