ComfyUI-SUPIR: the wrapper that told you to stop using it
SUPIR upscaling wrapper for ComfyUI
At a glance
- What is it?
- Kijai's ComfyUI nodes for the SUPIR upscaler, now superseded by SUPIR support in ComfyUI core, still useful for reading how a two stage diffusion restorer is actually wired.
- Who is it for?
- Read this repository for the plumbing rather than the install. SUPIR is an SDXL img2img pipeline whose first stage is a denoising pass through a custom VAE encoder, and that structure explains why the nodes are split up the way they are and why the first stage can be swapped for any preprocessing node.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 161 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 28, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The README opens by telling you to move to ComfyUI core
The first substantive thing in this README is a line reading FINAL update, and it is not a euphemism. SUPIR became available in ComfyUI core through a pull request on the ComfyUI repository, and the author states plainly that these nodes will not be updated beyond simple breaking bug fixes.
That single decision tells you how to read everything else in the document. The repository is not a product being developed; it is a maintained artifact. It has 2,317 stars and 124 forks, 110 open issues, and was last pushed on 2026-04-29. The licence field on the repository is NOASSERTION, which is unusual and turns out to have a specific explanation further down the README.
So the honest framing is that you are reading a wrapper at end of life whose documentation still contains the best plain-language description of how SUPIR works that you will find in one place. That description is in the third section of the README and is more useful than the install instructions.
There is no release history in the repository, no `example_workflows` content beyond a directory reference, and the topics list is empty. The description is simply SUPIR upscaling wrapper for ComfyUI.
What SUPIR actually is underneath the nodes
Under the hood SUPIR is an SDXL img2img pipeline, and the README is clear that the biggest custom part is SUPIR's own ControlNet. That single sentence explains a lot of the node graph.
The confusing part for newcomers is the naming collision around first stage. What SUPIR calls the first stage is a denoising process using their special denoise encoder VAE. This is not the same as the first stage labelled in the original Gradio demo, which is there for LLaVA preprocessing. The Gradio Stage2 runs the denoising process regardless.
In the node implementation that structural fact turns into a feature. The first stage can be skipped entirely, or replaced with any other preprocessing node, such as a model upscaler or anything else you want to put in front of it. So if the denoise encoder approach is not what you want, you are not locked into it.
The one piece deliberately absent is LLaVA. The README says captions can be supplied to the node, which means you can use anything you want to generate them, and that omitting them entirely still works well. That is a real difference from the Gradio demo, where the caption path is baked in.
Nodes split into multiple steps, with the old one kept as Legacy
The history of the node layout is worth knowing because workflows you find online will use either shape. The single-node design came first, then it was separated into multiple nodes that make more sense in ComfyUI and make clearer how SUPIR works. The author notes the whole thing has deviated from the original with wider hardware support, more efficient model loading, far less memory usage and more sampler options.
The previous single node still exists so old workflows do not break. It is named Legacy, along with its companion, and the reason given is direct: the author does not want to maintain those. So if you are reading an older tutorial, that is why the node names do not match.
One other revision is worth calling out. A better way to load the SDXL model was added, which also allows using LoRAs. That change matters more than it sounds, because SDXL checkpoint loading and LoRA application are two of the fiddlier parts of a ComfyUI workflow, and having one node own that removes a class of node-graph work.
The recommendation attached to the example workflow is to start with a Lightning model even though quality suffers, because faster sampling makes the settings much easier to learn. That is good advice about how to use these nodes and also about how to understand them.
VRAM, system RAM and the fp8 caveat
The hardware section is the most practically useful part of the README and it is specific rather than hedged.
Memory requirements scale directly with input image resolution. The scale_by parameter in the node simply scales the input, and you can leave it at 1.0 and size your input with another node instead. The numbers given: 512x512 to 1024x1024 on a 10GB 3080, and other tests on a 24GB GPU going up to 3072x3072. System RAM is called hefty with no hard figure, but the stated guidance is that under 32GB is likely to have issues and testing was done with 64GB.
The fp8 note comes with a warning worth reading closely. fp8 works fine for the unet, and a 512p to 2048 upscale was done with under 10GB of VRAM used. For the VAE, fp8 appears to cause artifacts, so tiled_vae is recommended instead. That is a component-specific recommendation rather than a blanket one, and getting it backwards produces output that looks subtly wrong.
One dependency simplification also landed: CLIP models are no longer needed separately, because they are loaded from your selected SDXL checkpoint. The requirements list is short: transformers, open-clip-torch, Pillow, pytorch-lightning, omegaconf and accelerate. The project metadata additionally names kornia, fsspec and accelerate, with pytorch-lightning pinned at 2.2.1 there against 2.5.5 in the requirements file.
Models, installation and the licensing trap
Two model variants are documented, and the difference matters. `SUPIR-v0Q` uses default training settings from the paper, with high generalisation and high image quality in most cases. `SUPIR-v0F` is trained with light degradation settings, and its Stage1 encoder retains more detail when facing light degradations. Pruned models in safetensors format are available separately, and both variants are mirrored on Hugging Face.
Installation is the ordinary ComfyUI custom node routine. Install from git through the manager or clone to `custom_nodes` and run `pip install -r requirements.txt`, with a separate command for the portable Windows build using its embedded Python. PyTorch should be recent, with 2.2.1 given as working. `xformers` is auto-detected and enabled if present and is not required, though it can be faster.
The licensing is where this project differs from most ComfyUI nodes. GitHub reports NOASSERTION, and the README explains why: there is a Non-Commercial Use Only Declaration making SUPIR available for use, reproduction and distribution strictly for non-commercial purposes, defined as not primarily intended for or directed towards commercial advantage or monetary compensation. Commercial use requires prior written permission from one of the authors. The declaration adds a condition without limiting rights under any open source licence that may apply.
The practical takeaway is that the code wrapper and the model weights carry different terms, and the weights are the restricted part.
Editorial conclusion
Read this repository for the plumbing rather than the install. SUPIR is an SDXL img2img pipeline whose first stage is a denoising pass through a custom VAE encoder, and that structure explains why the nodes are split up the way they are and why the first stage can be swapped for any preprocessing node. The hardware numbers are concrete too: 512 to 1024 on a 10GB card, 3072 square on 24GB, with system RAM mattering as much as VRAM. For new work, start from the SUPIR support in ComfyUI core. The non-commercial restriction on the SUPIR weights is the detail to settle before anything ships.
Frequently asked questions
Do I need separate CLIP models for ComfyUI-SUPIR?
No. The README states that CLIP models are no longer needed separately, because they are loaded from the selected SDXL checkpoint. You still need the SUPIR model and an SDXL model, both loaded from the normal ComfyUI models checkpoints folder.
What is the difference between SUPIR-v0Q and SUPIR-v0F?
SUPIR-v0Q uses the default training settings from the paper, with high generalisation and image quality in most cases. SUPIR-v0F is trained with light degradation settings, and its Stage1 encoder retains more detail when facing light degradations. Pruned safetensors builds of both are published separately.
How much VRAM does SUPIR need in ComfyUI?
It scales with input resolution. The README reports 512x512 to 1024x1024 on a 10GB card, and tests up to 3072x3072 on a 24GB GPU. With fp8 on the unet, a 512p to 2048 upscale was done under 10GB of VRAM, though fp8 on the VAE causes artifacts, so tiled_vae is recommended.
Can SUPIR be used commercially?
The model weights are under a Non-Commercial Use Only Declaration, defined as not primarily intended for or directed towards commercial advantage or monetary compensation. The declaration states that commercial use requires prior written permission, and the GitHub licence field is NOASSERTION for this reason. The ComfyUI wrapper code is a separate concern from the weights.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/kijai-comfyui-supir)