InstantIR_Sampler
The button you press after the loader stops complaining
- model
- pixels
- image
This pack has two nodes, and this is the one that actually makes the image. Feed it a blurry or compressed photo and a model from InstantIR_Loader, and it hands you a restored one. The whole workflow is three nodes: LoadImage → InstantIR_Sampler → SaveImage, with the loader's model output wired into the sampler's model input.
How the restoration actually runs
InstantIR's trick is the "instant generative reference." Instead of conditioning once on a fixed encoding of the damaged input, it generates a fresh clean reference on the fly at every sampling step: a consistency-distilled previewer predicts what the restored image should look like at that timestep, an aggregator fuses that prediction into the SDXL UNet, and the difference between the preview and normal denoising tells the pipeline how degraded the input really is. More degradation, stronger conditioning. That's how it can repair blur and compression in one pass rather than just upscaling pixels - it's generation, and it lives on the generative-restoration rung of the upscaling ladder alongside SUPIR and SeedVR2.
The sampler starts by rescaling your input to width × height, then runs that loop for steps iterations and returns an image.
The one switch that matters: creative_restoration
The loader feeds the sampler two LoRAs; this boolean picks which one drives sampling.
- Off (default) - uses the previewer LoRA. Faithful restoration: keeps the structure of your photo and mostly ignores your prompt. This is what you want for "fix my old photo, don't redesign it."
- On - swaps to the LCM LoRA. This is creative regeneration: the text prompt leads, so you can clean up and restyle, or just let it rebuild freely. Expect more drift from the source.
That's also why steps and cfg exist: 20 steps and cfg 7 are sane defaults, and the LCM path is what makes 20 steps finish in about 20 seconds on a 12 GB 4070.
The other inputs, briefly
- pixels - your damaged image.
- width / height - default 768, range 128–1024 in steps of 64. This is the gotcha, see below.
- seed - reproducibility; nudge it for variations.
- preview_start / guidance_end - accept the defaults. If you ever set one above 1.0 it's interpreted as an absolute step index (the node divides it by
steps). - batch_size - processes several copies in one run; keep it at 1.
Output is a single image (IMAGE), ready for a preview node, save node, or another processing pass.
Where people get burned
- Fixed resolution, no tiling. It rescales your input to exactly
width×heightwith nearest-exact resampling. A 4000 px photo gets shrunk, processed at 768, and returned at 768 - this is not an arbitrary upscaler, and the cap is 1024. The community hit this the week it shipped ("It only does 1024x1024. How do I send it tiles like Ultimate SD Upscale?"). You tile manually, or chain it: a 2x ESRGAN pass, then InstantIR, then a final pass. - Faces get rewritten. Every generative restorer does this, InstantIR included - it invents a plausible identity rather than preserving one. If the face must be recognizable, do a separate face pass rather than trusting one run.
- It's a 2024 model. By mid-2026 SeedVR2 is the default answer for "more detail," and InstantIR reads as legacy. It's still the niche pick when you specifically want an SDXL-local, prompt-guided repair of genuinely damaged sources - just don't go in expecting current SOTA.
- Slow all of a sudden? Check the loader's
lorainput. No LCM LoRA, no 20x speedup, and you'll sit through a very patient 50-step crawl.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| model | InstantIR_MODEL | — | |
| pixels | IMAGE | — | |
| prompt | STRING | Photorealistic, highly detailed, hyper detailed photo - realistic maximum detail, 32k, ultra HD, extreme meticulous detailing, skin pore detailing, hyper sharpness, perfect without deformations, taken using a Canon EOS R camera, Cinematic, High Contrast, Color Grading. | — |
| negative_prompt | STRING | blurry, out of focus, unclear, depth of field, over-smooth, sketch, oil painting, cartoon, CG Style, 3D render, unreal engine, dirty, messy, worst quality, low quality, frames, painting, illustration, drawing, art, watermark, signature, jpeg artifacts, deformed, lowres | — |
| seed | INT | 00–2147483647 | — |
| steps | INT | 201–100 | — |
| cfg | FLOAT | 7.00.1–10 | — |
| creative_restoration | BOOLEAN | false | — |
| width | INT | 768128–1024 | — |
| height | INT | 768128–1024 | — |
| preview_start | FLOAT | 0.00–30 | — |
| guidance_end | FLOAT | 1.00.1–30 | — |
| batch_size | INT | 11–64 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |