SP_SupirSampler_EDM
SUPIR's sampler settings, boiled down to three dials
- supir_sampler
SUPIR is the SDXL-backed restoration model that treats upscaling as "fix this degraded photo" rather than plain super-resolution - it captions your image with an LLM first, then restores toward something that matches that caption. It's genuinely good at rescuing a compressed, noisy, or blurry source, and it's also famous for a specific failure mode: it doesn't know who your subject actually is, so on real faces it can invent details that weren't there. This node lives under the pack's "Group Nodes" category, which tells you what it is - a saved bundle of SUPIR's own sampler settings, trimmed down to the handful of knobs you actually touch.
How it works
This node doesn't run the upscale itself - it produces a supir_sampler configuration object that feeds into the rest of a SUPIR node chain elsewhere in your workflow. (SUPIR itself is a separate install; this is a convenience wrapper around its sampler, not a replacement for it.) The three exposed parameters map onto SUPIR's own EDM-style sampling:
edm_s_churn(0–40, default 5) - how much extra stochastic noise the EDM sampler injects mid-run. Push it up and you get more variation and more hallucinated detail; keep it low if you want the result to stay closer to the input.restore_cfg(-1 to 20, default 1) - SUPIR's own guidance dial, balancing "reconstruct what's actually there" against "let the model imagine plausible detail." This is the exact knob that governs the identity-invention behavior SUPIR is known for - the more aggressively you lean into it, the more likely a face reads as a person rather than the person.tiled(boolean) - process the image in tiles instead of all at once. SUPIR's VRAM footprint is already heavy (its own docs describe a reduced config needing 12GB for the diffusion pass plus 16GB more for the LLaVA captioner), so tiled processing is the practical way to push resolution up without running out of memory.
Why you'd reach for it - and when not to
If your source is genuinely degraded - an old scan, a heavily compressed photo, real noise and blur - SUPIR is still the strongest tool for that specific job. But if you're restoring a photo of someone you actually know, keep restore_cfg conservative and edm_s_churn low, or better, keep the face out of this pass entirely and detail it separately with something identity-preserving. And if you're just looking for a general-purpose upscaler rather than a restoration tool, know that the wider community has largely moved on to SeedVR2 for that job - SUPIR earns its keep specifically on rough sources, not as a default upscale step.
How to install it
Through ComfyUI Manager: search "SP-Nodes," install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/bananasss00/ComfyUI-SP-Nodes
You'll also need SUPIR's own nodes and checkpoint installed separately for this to plug into anything - this node alone only configures the sampler.
Common issues
Most of the real trouble with SUPIR happens downstream of this node - out-of-memory errors on large images (turn tiled on first), and identity drift on real faces (pull restore_cfg back before you conclude the model or your prompt is at fault). If the group node itself doesn't behave as expected, check that the rest of your SUPIR chain is actually wired to consume its supir_sampler output - a Group Node is only useful once it's connected into the pipeline it was built to configure.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| edm_s_churn | INT | 50–40 | — |
| restore_cfg | FLOAT | 1.00-1–20 | — |
| tiled | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| supir_sampler | SP_SupirSampler | — |