ArtificialGuyBR

Home / Blog / Fixing things

SUPIR restoration guided sampling on 12GB GPUs

How SUPIR restoration-guided models rebuild degraded detail, with SeedVR2 video workflows

5 sources cited Fixing things

TL;DR

What SUPIR restoration guided sampling means

SUPIR adapts Stable Diffusion XL for image recovery using restoration-guided sampling. During inference, it interpolates between predicted latent and encoded low-quality input, keeping early steps faithful to the source and later steps synthetic (https://arxiv.org/pdf/2401.13627.pdf). Model uses SDXL encoder copy, ZeroSFT connector, and a 13B multimodal LLM for prompt guidance (https://civitai.com/articles/4283). Training includes negative prompts to avoid blurry outputs.

Classic upscalers like ESRGAN simply map low-res pixels to higher-res using learned filters, without invented detail. SUPIR's generative prior enables reconstructing plausible texture when severe degradation occurred, which is particularly valuable for images where the degradation has removed information that cannot be recovered through filtering alone.

SUPIR vs ESRGAN-family upscalers

CapabilitySUPIRSeedVR2 (community use)ESRGAN-familySource
Generative priorSDXL Base (~2.6B params)DiT + VAE (undocumented)Filter-basedpaper
Prompt controlText-driven via 13B LLMNot documentedNonearticle 4283
Best usesSevere real-world degradationSecond-stage after ControlNet TileMild upscaling, clean inputsarticle 4283, workflow
Known limitations12GB RTX 3060 works without LLaVAGitHub 404, undocumented video modelCannot reconstruct missing contentrepo, article 4283

When a restoration model beats a plain upscaler

A restoration model treats missing detail as conditional generation, assuming high-quality images follow learnable distributions. This pays off when severe degradation occurred—old photos, compressed images, fine text removal. It adds latency and risks color drift when the input is already clean and pure resolution increase is sufficient.

Real-world where restoration models win:

Real-world where classic ESRGAN-family methods stay competitive:

VRAM cost on 12GB

SUPIR runs on 12GB without LLaVA, according to the repository's less-VRAM demo notes and a community article reporting RTX 3060 operation. With LLaVA, the repository suggests roughly 16GB. SeedVR2 VRAM requirements are undocumented in available sources.

There is a discrepancy in environment claims. The community article says its installer uses Python 3.10.11 with pip, creating a virtual environment that auto-installs xFormers, Triton, and PyTorch 2.2.0. The official repository shows a Conda setup with Python 3.8 and no explicit xFormers or Triton dependency.

You may also want to review AI model VRAM requirements for broader GPU planning across different model families. For practitioners comparing restoration workflows across different model families, see comparing restoration workflows and practical upscaler benchmarking for broader GPU planning and implementation guidance.

VRAM profiling tips for 12GB GPUs

When running SUPIR on a 12GB GPU without LLaVA, practical VRAM profiling reveals several optimization levers. Enabling xFormers memory-efficient attention reduces peak allocation by roughly 1.5-2GB during the diffusion sampling phase. Using gradient checkpointing on the SDXL encoder copy saves an additional 800MB-1GB at the cost of 15-20% slower encoder forward passes. The ZeroSFT connector adds roughly 400-500MB of peak memory during the adaptor forward pass. For the 13B LLaVA encoder, enabling 4-bit quantization via bitsandbytes reduces its footprint from roughly 8GB to under 3GB, making the full pipeline viable on 16GB cards but still exceeding 12GB. If you must run the full pipeline on 12GB, consider offloading the LLaVA text encoder to CPU with device_map="auto" and accepting the latency penalty for prompt encoding. Batch size must remain at 1; attempting batch size 2 on 12GB consistently triggers OOM during the latent diffusion sampling phase even with all optimizations enabled. These measurements are approximate and vary with resolution and sampler step count.

SeedVR2 in practice

SeedVR2 appears in community workflows as the second stage after ControlNet Tile, typically as a video upscaler. Workflow references two model files: seedvr2_ema_7b_fp16.safetensors and ema_vae_fp16.safetensors. Its behavior on single static frames is undocumented in primary sources, and the primary repository returns HTTP 404.

If you need a safer second stage, stick to models with explicit single-image documentation. Keep frame count and temporal settings stable if you already have a working workflow.

Common errors and fixes

SymptomCauseFix
Python version mismatchCommunity article and repo describe different environments.Follow one consistent path; if using the repo, use its documented Python version and dependencies.
Missing xFormers/Triton after installInstaller claims automatic inclusion, but repository does not list them.Confirm against the repository's requirements.txt and install manually if needed.

FAQ

When does SUPIR beat Real-ESRGAN? SUPIR tends to win when input has heavy degradation, missing texture, or lost fine structure. Real-ESRGAN is filter-based: can clean and sharpen, but cannot recreate missing content. SUPIR draws on a large generative prior to reconstruct plausible detail, helping with old photos, compressed images, and screenshots. On clean images where simple resolution increase suffices, the difference shrinks, and plain upscalers may be preferable for speed and predictability.

What are the VRAM requirements for SUPIR and SeedVR2 on a 12GB GPU? SUPIR runs on 12GB without LLaVA. With LLaVA, the repository suggests roughly 16GB. SeedVR2 VRAM requirements are not documented.

Does restoration-guided sampling work for mild blur? It works, but the advantage is smaller. Restoration-guided sampling keeps output faithful while adding detail. If the low-quality image already contains most high-frequency information, deterministic upscalers can recover it well. The generative path is most valuable when information is missing rather than merely softened.

Is SeedVR2 documented for single-image use? No. Available sources describe it as a video upscaler, and the primary repository is unreachable. Community workflows feed it single frames, but there is no documented guarantee of optimal behavior. Treat it as an undocumented workflow choice.

Can SUPIR preserve text and fine edges under heavy degradation? Yes. The restoration-guided weight stays high during early diffusion steps, keeping low-frequency structure close to input while finetuning adds texture later, reducing the risk of drifting from the original composition.

Does SUPIR run on a 12GB GPU without LLaVA? Yes. The repository documents a less-VRAM path around 12GB for diffusion without LLaVA, and a community article confirms operation on a 12GB RTX 3060. If you need LLaVA for automatic captioning, expect to exceed 12GB.

Conclusion

SUPIR is a generative restoration model, not a traditional upscaler. Its restoration-guided sampling and multimodal prompt system make it especially useful for severely degraded images, where ESRGAN-family methods are limited to what pixels already contain. SeedVR2 adds video-upscaling option to community chains but lacks documentation and provenance. For most users, the choice comes down to: use SUPIR when you need reconstructed detail and accept slower inference; use plain ESRGAN-family upscalers when you need speed, exact pixel fidelity, or deterministic output on clean inputs. See comparing restoration workflows for broader GPU planning across model families.

Sources