SUPIR
Evaluate SUPIR restoration with controlled Q/F and caption comparisons, inspect invented detail, and clarify checkpoint permissions before a trial.
At a glance
- Input
- A permitted degraded image plus an unchanged original and, ideally, a less-degraded control.
- Output
- A generated restoration candidate whose texture, text, faces and geometry require source comparison.
- Access
- Public reference code and documented Q/F links; permission for the proprietary weights needs clarification before an evaluation.
- Who it fits
- Image editors and developers who can run a permitted, controlled restoration trial and inspect source-supported structure.
- When to choose something else
- Unsuitable for identification, factual evidence recovery or authenticity claims; do not proceed with unresolved checkpoint rights.
- Cost and access conditions
- Measure downloads, startup, captioning, sampling, saving, peak memory and human review on the actual CUDA workload.
Key Highlights
Controlled Q/F comparison
Q and F can be selected for a same-input comparison; their descriptions come from the maintainers, not a reproduced ranking.
Traceable caption influence
The CLI prints captions and can use an empty caption; it saves final PNGs but does not export the intermediate caption image.
Permission remains unresolved
The written-permission clause and non-commercial wording need clarification for the exact weights and activity.
About
On this page
SUPIR is a diffusion-based image restoration research system built around SDXL and image captions. It can synthesize convincing texture, but convincing detail is not proof that the source contained that detail. Evaluate it only on images you may process, preserve the unchanged input, and judge every candidate against the intended use. This is a source-based review of the official repository and paper. No checkpoint was downloaded, no image was processed, and no speed or quality benchmark was reproduced. The pinned source files were rechecked on 20 September 2026; checkpoint permissions remain unresolved.
Define the restoration decision before running SUPIR
Start with a bounded question: can SUPIR produce a useful display derivative from one permitted degraded photograph without changing facts that matter to the reader? Record what is visible in the source, what is uncertain, and which features must remain stable. A sharper eye, letter or surface may be plausible while still being invented.
The paper describes a scaled generative prior, a large training collection with text annotations, negative-quality prompts and restoration-guided sampling. Those are research claims about the proposed method, not measurements from this review. The author list spans several institutions, including Shenzhen Institute of Advanced Technology, Shanghai AI Laboratory, the University of Sydney, Hong Kong Polytechnic University, ARC Lab at Tencent PCG and the Chinese University of Hong Kong. It is inaccurate to reduce the project identity to a single company. Official README author affiliations. Official paper.
Do not use restoration to recover evidentiary detail, identify an unknown person, read an unreadable plate, or certify authenticity. For those tasks, a natural-looking reconstruction can make the decision less reliable because it hides uncertainty. The correct outcome may be to keep the damaged source, obtain another reference image you may use, or use a non-generative correction that does not claim to restore missing facts.
Separate the official components and checkpoints
The official setup is not one self-contained model file. The README lists SDXL CLIP encoders, an SDXL base checkpoint, LLaVA CLIP and LLaVA v1.5 13B. It also links two project checkpoints, SUPIR-v0Q and SUPIR-v0F, through Baidu Netdisk and Google Drive. Optional Juggernaut checkpoints are described separately. Official repository.
Treat every component as a separate acquisition and licensing decision. This review did not download or hash the linked binaries or verify GitHub release assets. A link in the README supports an acquisition path, not binary integrity, uptime, compatibility or permission for a particular use.
The checked CKPT_PTH.py contains maintainer-local absolute paths. Configure those paths and the YAML checkpoint locations. The README permits None only for its specified CLIP paths when Hugging Face is reachable, enabling automatic download; it does not tell you to clear every model path. Record the exact repository commit, each source URL, local checksum and dependency version before comparing results. A similarly named mirror should not silently replace the intended file.
Choose Q or F with the same permitted input
The reference CLI exposes --SUPIR_sign Q by default and accepts Q or F. The README characterizes Q as the paper-default training setting with broad generalization and F as light-degradation training whose stage-one encoder retains more detail for lightly degraded inputs. This is guidance from the maintainers, not an independently verified ranking. Checkpoint guidance; CLI selection.
Compare Q and F only with the same source, crop, output scale, seed, prompt, negative prompt and sampling settings. If several variables change together, an attractive output cannot tell you which choice caused the difference. Keep all candidates, including rejected outputs, and write a reason for acceptance or rejection.
Use one lightly degraded control image alongside the difficult image. The control helps reveal whether a workflow that appears useful on severe damage unnecessarily rewrites already visible texture. If either checkpoint changes source-supported text, facial structure or product geometry beyond the agreed tolerance, reject it for that task. If Q and F produce different automatic captions, interpret the pair as a comparison of the whole workflow, not of the checkpoint alone.
Control captions, prompts and processing dimensions
The reference script builds a pre-denoised image for captioning, targeting 512 pixels on its shorter side. By default, LLaVA describes that image and the resulting caption participates in diffusion sampling. With --no_llava, the script uses an empty caption and skips loading LLaVA, but it still performs the pre-denoising step. The positive and negative prompts also remain active. This flag does not remove all preprocessing or the CUDA requirement. Caption path.
The script prints arguments and captions to the terminal and saves final PNG samples. It does not save the pre-denoised caption image. Inspecting that image requires adding an explicit export to the script; no such modification was implemented or tested for this review. Without it, compare the unchanged input, recorded caption and final PNG, and mark intermediate-image diagnosis as unavailable. A terminal log is not an intermediate-image export.
Keep the full positive and negative prompts with each run. Compare automatic captioning with an empty-caption run when semantic invention is a concern. Do not ask for a desired fact the source cannot establish: a prompt such as “clear blue lettering” could create readable-looking letters instead of recovering them.
The CLI defaults are seed 1234, 50 EDM steps, guidance scale 4.0, stage-two control 1.0, min_size 1024 and upscale 1. The image utility first records input dimensions multiplied by the requested upscale, then enforces the internal shorter-side floor and rounds processing dimensions to multiples of 64. Saving resizes samples to the recorded output dimensions. For example, a 512 × 512 input at upscale 1 is processed at 1024 × 1024 and saved at 512 × 512 under these defaults. These are code-derived dimensions, not an observed run. CLI defaults; resize and save helpers.
The README's quality-oriented and fidelity-oriented settings are documented starting points, not universal optimums. Change one factor at a time and record both intended output size and internal-processing assumptions. A size measured from the final PNG does not reveal the internal tensor size. Maintainer settings.
Check the unresolved checkpoint permission before running
The pinned SUPIR Software License Agreement contains provisions that cannot safely be reduced to a “non-commercial use allowed” badge. Section 2(b) withholds rights to use, copy, modify or distribute proprietary neural-network components without express written permission. Section 3(a) separately says proprietary weights, biases and architecture may only be used for non-commercial purposes, while section 3(b) requires a separate commercial agreement. The relation between the written-permission requirement and the non-commercial wording remains unresolved here. LICENSE sections 2 and 3.
This review does not determine which permission prevails or authorize any use of the Q/F weights. Obtain clarification from the licensor for the exact checkpoint and intended activity before proceeding with the evaluation plan. Public code and download links are not permission evidence. SDXL, LLaVA, optional Juggernaut models, input images and outputs need their own applicable terms checked; a paid or public wrapper does not settle those rights.
The README links the SupPixel online app. No image was submitted and its current terms, privacy behavior, price and uptime were not tested. Before any hosted submission, identify the operator and retain the terms, data-handling conditions and output permissions applicable that day. The availability finding here covers accessible source text and links documented in the README, not successful binary retrieval or an operational service. Documented online app.
Plan a bounded same-input evaluation
Resolve the checkpoint permission first. Then prepare one photograph you may process and one less-degraded control. Preserve the originals, remove sensitive metadata from a working copy if appropriate, and list the details that must not change. Use an isolated environment and record the actual dependency and driver versions. The README suggests Python 3.8; its installation recipe is not a guarantee of compatibility with every current operating system. Installation instructions.
These commands are an unexecuted comparison plan, assuming configured checkpoints and CUDA. The shell redirections retain each run's standard output and errors, including printed arguments and captions. Inspect each log before starting the next run; no success or completed log is claimed here. The script raises an error without CUDA. Device and argument handling.
mkdir -p logs
python test.py --img_dir inputs/control --save_dir results/q --SUPIR_sign Q --seed 1234 > logs/q.log 2>&1
python test.py --img_dir inputs/control --save_dir results/f --SUPIR_sign F --seed 1234 > logs/f.log 2>&1
python test.py --img_dir inputs/control --save_dir results/no-caption --SUPIR_sign Q --seed 1234 --no_llava > logs/no-caption.log 2>&1Keep only the intended test image in the input directory and use distinct input basenames. The script iterates its directory and saves each final sample as <input-stem>_<sample-index>.png; for control.png and one sample, the Q output is results/q/control_0.png. The caption is printed without the input filename, so a one-image run keeps that association clear. Input loop and output naming.
Compare the original, logged caption and saved PNG at the intended display size and in important crops. Record format, color profile, input and output dimensions, and implicit defaults. Internal dimensions and resource metrics need separate measurement or instrumentation; the log does not automatically contain them. Repeat the matrix on the difficult image only after the control passes the worksheet. Intermediate-image diagnosis remains unavailable without the separate, untested export.
Accept the derivative with an evidence worksheet
The following worksheet is an original evaluation aid, not a benchmark result. Fill it with observed evidence before expanding a batch.
| Stage | Decision | Evidence to retain |
|---|---|---|
| Source | Which details are visible, uncertain or absent? | Unchanged input and written uncertainty notes. |
| Configuration | Which checkpoint, caption, prompts and sampling values were used? | Full command, environment and local file checksums. |
| Structure | Did faces, text, edges or product geometry change? | Same-scale source and candidate crops. |
| Texture | Is added texture useful without implying false factual detail? | Accepted and rejected crops with reasons. |
| Delivery | Can the recipient distinguish the derivative from the source? | Separate filenames and an editing disclosure. |
Reject a visually impressive candidate when it changes an identity-bearing feature, creates readable text unsupported by the input, or moves an important edge. Residual softness may be the more faithful result. Define tolerance from the actual display purpose rather than a generic sharpness score.
Diagnose what the available evidence can show
When the output looks wrong, check the unchanged input, log, Q/F selection, prompts, sampling settings, color correction and saved PNG before raising quality settings. The stock CLI cannot show where the caption image first diverged because it does not save that image. It also has no argument for supplying a manually edited caption. A custom-caption path or intermediate-image export would require a separately reviewed and tested script change. Available CLI and caption behavior.
| Observation | First evidence to inspect | Controlled next step |
|---|---|---|
| Output depicts the wrong object | Input, logged caption and final PNG | Compare with --no_llava, keeping the other settings fixed; intermediate-image diagnosis is unavailable. |
| Fine text becomes readable but different | Same-scale source crop and prompts | Reject the detail and remove semantic prompting that asserts it. |
| Color shifts | Color-fix setting and source histogram | Compare one documented color-fix option at a time. |
| Light damage becomes overprocessed | Q/F pair from identical input | Test F under the same command or reject both. |
| Memory failure | Dimensions, device placement and complete log | Reduce a documented workload factor and measure again. |
These are diagnostic hypotheses, not measured failure rates. Preserve the first available evidence of a failure and its command. If the logs and saved files do not isolate a cause, record it as unknown rather than claiming an internal stage was checked.
Measure resources and privacy for the whole job
The reference script is CUDA-oriented. With at least two visible GPUs it places SUPIR and LLaVA on separate devices; with one it uses the same device; without CUDA it exits. Device placement. The README shows a lower-memory, slower Gradio example annotated as 12 GB for diffusion and 16 GB for LLaVA. That comment is not a universal minimum and does not establish that a complete workload fits one 12 GB device. Gradio examples.
Measure checkpoint download, startup, captioning, sampling, saving and human inspection separately. Record input dimensions, output dimensions, Q/F choice, step count, number of samples, dtypes, tiling flags, device model, peak memory and elapsed time. The checked autoencoder accepts fp32 or bf16 and rejects fp16 because of a NaN error path. Diffusion precision is configured separately. This does not validate every dtype combination or hardware setup. Model dtype handling.
For private or licensed images, decide whether local processing is required. A self-hosted repository does not settle input rights, portrait consent or dependency telemetry. The official Gradio example can log history, so review any enabled logging before using sensitive material. History option. Hosted services require a separate privacy and retention check.
Choose the next step from recorded evidence
Proceed only if one controlled candidate improves the intended display while preserving source-supported structure, the unresolved checkpoint permission has been clarified for the use, and correction plus review cost is acceptable. Keep the source, configuration, captions, prompts, logs, accepted output, rejected outputs and disclosure together.
If the result invents critical detail, has unresolved checkpoint or other required rights, exceeds available resources or requires repeated manual repair, stop. A conventional resampler, denoiser, manual retouch, better scan or no restoration may be the better decision. This review does not rank SUPIR against other models and does not reproduce the paper's experiments.
Use the model directory only after stating the missing capability. Compare alternatives with the same permitted input and acceptance worksheet. A public repository, sharp image or completed command is not enough to establish fitness for the job.
Use Cases
Evaluate a permitted display derivative
Compare controlled candidates and accept only changes consistent with source-supported structure.
Audit the reference restoration pipeline
Record checkpoints, captions, prompts, CUDA placement, logs and rejected outputs before expanding a batch.
Pros & Cons
Pros
- Selectable Q/F weights support controlled comparisons on the same input.
- Optional captioning helps isolate the effect of text guidance.
- Visible reference code makes sampling, dtype and tiling settings inspectable.
Cons
- Generated texture may alter text, identity-bearing features or geometry unsupported by the source.
- Checkpoint permission is unresolved; public links do not establish a right to use the weights.
- The reference workflow needs CUDA and multiple model components; resources must be measured for the whole job.
Technical Details
Architecture
SDXL-based diffusion restoration with restoration-guided sampling and optional LLaVA captioning
Training Data
Paper reports a 20M-image high-quality collection with text annotations; not independently audited
License
SUPIR Software License Agreement
LICENSE section 2(b) requires written permission for proprietary neural components, while 3(a) states non-commercial-only use. Their interaction and the permission for specific Q/F weights remain unresolved; this review authorizes no use. Section 3(b) requires a separate commercial agreement. License source
Related Models
CodeFormer
Evaluate CodeFormer for a permitted portrait restoration: compare fidelity settings, inspect face changes and recomposition, and check the non-commercial S-Lab license.
FidelityFx Super Resolution
FidelityFX Super Resolution (FSR) is AMD's open-source spatial upscaling technology designed to boost performance in real-time rendering applications, particularly video games. Unlike NVIDIA's DLSS which requires dedicated Tensor Cores, FSR is hardware-agnostic and runs on AMD, NVIDIA, and Intel GPUs including integrated graphics. The technology has evolved through multiple generations: FSR 1.0 used Lanczos-based spatial upscaling on single frames, FSR 2.0 introduced temporal upscaling leveraging motion vectors and previous frame data for near-native quality, and FSR 3.0 added optical flow-based frame generation to dramatically increase perceived frame rates. Quality modes range from Ultra Quality to Ultra Performance, letting users balance visual fidelity against performance gains of up to 2x or more. FSR supports DirectX 11, DirectX 12, and Vulkan APIs and is deployed across PC, Xbox, PlayStation, and portable devices like Steam Deck where it enables playable frame rates within limited GPU power budgets. Hundreds of major titles including Cyberpunk 2077, Starfield, and Hogwarts Legacy feature FSR integration, with engine-level support in Unreal Engine and Unity simplifying adoption. Released under the MIT license through AMD's GPUOpen platform, FSR encourages transparent collaboration and modification by developers and researchers. Its platform independence and open-source nature have made it one of the most widely adopted upscaling solutions in the gaming industry, shaping the future of real-time image quality enhancement.
Real-ESRGAN
Real-ESRGAN is an open-source image upscaling and restoration model developed by Xintao Wang and collaborators at Tencent ARC Lab that enhances low-resolution, degraded, or compressed images to high-resolution outputs with remarkable detail recovery. Released in 2021 under the BSD license, Real-ESRGAN builds on the original ESRGAN architecture by introducing a high-order degradation modeling approach that simulates the complex, unpredictable quality loss found in real-world images, including compression artifacts, noise, blur, and downsampling. The model uses a U-Net architecture with Residual-in-Residual Dense Blocks as its generator network, trained with a combination of perceptual loss, GAN loss, and pixel loss to produce sharp, natural-looking upscaled results. Real-ESRGAN supports upscaling factors of 2x, 4x, and higher, and includes specialized model variants for anime and illustration content alongside the general-purpose photographic model. The model handles real-world degradations far better than its predecessor ESRGAN, which was trained only on synthetic degradation patterns. Real-ESRGAN has become one of the most widely deployed AI upscaling solutions, integrated into numerous applications including desktop tools, web services, mobile apps, and professional image editing workflows. The model runs efficiently on both CPU and GPU, with the lighter RealESRGAN-x4plus-anime variant optimized for consumer hardware. As a fully open-source project available on GitHub with pre-trained weights, it serves as the backbone for popular tools like Upscayl and various ComfyUI nodes. Real-ESRGAN is essential for photographers, content creators, game developers, and anyone who needs to enhance image resolution while preserving natural appearance and adding realistic detail.
StableSR
StableSR is an innovative super-resolution model developed by Jianyi Wang and collaborators that leverages the generative prior of a pre-trained Stable Diffusion model for high-quality image upscaling with realistic detail synthesis. Released in 2023 under the Apache 2.0 license, StableSR represents one of the first successful applications of diffusion-based generative models to the image super-resolution task. The model introduces a time-aware encoder that injects information from the low-resolution input image into the Stable Diffusion denoising process at each timestep, along with a controllable feature wrapping module that balances between fidelity to the original image and the richness of generated details. This architecture enables StableSR to produce upscaled images with remarkably realistic textures and fine details that go beyond what traditional regression-based super-resolution methods can achieve. The controllable feature wrapping allows users to adjust the strength of generative enhancement, providing a spectrum from conservative restoration that closely follows the input to aggressive enhancement that adds more synthesized detail. StableSR handles diverse image types including photographs, artwork, screenshots, and text-containing images, with particular strength in restoring natural textures like skin, hair, fabric, and foliage. The model is fully open source with code and pre-trained weights available on GitHub and is compatible with existing Stable Diffusion infrastructure. StableSR is valuable for photographers restoring low-resolution images, digital artists upscaling reference material, and content creators who need high-resolution outputs from limited source imagery. Its diffusion-based approach has influenced subsequent research in generative super-resolution methods.
Quick Info
SDXL-based diffusion restoration with restoration-guided sampling and optional LLaVA captioning