AUN KSampler PlusV3
A whole progressive upscale chain in one node
- vae
- model
- positive
- negative
- latent_image
- Base image
- Image upscaled
- Latent upscaled
- Both upscaled
- Refined image
- LATENT
- Upscaled type
AUN KSampler Plus (that's the AUNKSamplerPlusv3 class) is the pack's answer to one of the most common ComfyUI questions of all: "how do I do the hi-res fix without a spaghetti of nodes?" The hi-res fix - generate at native resolution, upscale, re-sample at low denoise to add coherent detail - is still the right move for generating above native resolution, and this node runs the whole chain in a single KSampler: base pass, latent upscale, second pass, optional pixel-space upscale, optional final refinement. Five images come out the other side, and you pick the one you wanted.
How it works
The flow is progressive, and worth internalizing because the outputs are named after its stages:
- Base image - first pass, your normal generation (denoise 1.0 for txt2img).
- Latent upscaled - the latent is upscaled (bicubic is the recommendation) by
ratio, then re-sampled for a second pass. - Both upscaled - the decoded latent is pixel-upscaled, then re-sampled again mirroring the second pass's schedule. This is the "proper" hi-res-fix result.
- Refined image - optional: re-encode and re-sample a chosen source with
img_refine_steps/img_refine_denoiseif you enabledimage_upscale_refine.
The Upscaled type string output reports which one you ended up with - wire it into a filename builder so your saved file names itself honestly. You also get the final LATENT and each stage's image.
Inputs that matter
The full list is long; the ones a beginner actually tunes:
steps_totalandsteps_first- total steps split between passes.steps_firstis your base-pass steps.latent_upscale(on by default) andratio(1.5–2.0 typical) - the core of the progressive feature.upscaling_denoise- second-pass denoise. The tooltip's guidance of 0.5–0.7 is in line with hi-res-fix practice, but remember the rule from the upscaling world: below 0.5 keeps composition tighter, higher changes more.start_step_second- -1 uses the denoise fraction, 0 restarts at step 0,steps_firstcontinues where pass one left off.cfgvscfg_latent_upscale- separate CFG for each pass, so you can drop CFG on the upscale leg.image_upscale/image_upscale_method/image_upscale_model/image_upscale_ratio- the pixel-space leg. Lanczos for photos, nearest for pixel art; pick an AI upscale model if you want it.verbose- prints per-pass logs and timings, which is exactly what you want while you're learning what each stage does.
Recommended pairing per the tooltips: DPM++ 2M with Karras, and AYS schedulers work well with the progressive schedule.
Installing it
Part of the AUN pack:
- ComfyUI Manager: search "AUN ComfyUI Nodes", install, restart.
- Manual:
cd custom_nodes && git clone https://github.com/loz2754/AUN-ComfyUI-Nodes, then restart.
Hand installs hitting ModuleNotFoundError: cv2? pip install -r custom_nodes/AUN-ComfyUI-Nodes/requirements.txt.
Common issues
Where people get burned: treating all five outputs as "the result" when they're stages - only Both upscaled is the full chain, so save that one unless you tuned otherwise. Second, upscaling in latent space is not free of artifacts; if you see tiling or repetition, the fix is usually a smaller ratio or a lower upscaling_denoise, not more steps. And if you want to run the second pass on a different model, that's what the v4 sibling (AUNKSamplerPlusv4) is for - this node uses one model for both.
Inputs (26)
| Name | Type | Default | Description |
|---|---|---|---|
| vae | VAE | VAE model for encoding/decoding between pixel and latent space. | |
| model | MODEL | The diffusion model to use for progressive sampling. | |
| seed | INT | 00–18446744073709550000 | Random seed for reproducible results. Use same seed for identical outputs. |
| steps_total | INT | 302–300 | Total sampling steps across both passes. Split between first and second pass. |
| steps_first | INT | 121–300 | Steps for first pass (base generation). If latent upscale is off, this is used for the single pass. |
| start_step_second | INT | 0-1–300 | Second pass control: -1 uses denoise-fraction (see 'upscaling denoise'), 0 starts at step 0, steps_first continues after pass 1. Both-upscaled mirrors this schedule to reduce drift. |
| cfg | FLOAT | 8.00–100 | CFG scale for first pass. Controls prompt adherence in base generation. |
| cfg_latent_upscale | FLOAT | 8.00–100 | CFG scale for latent upscale pass. Can be different from base CFG. |
| sampler_name | COMBO | Sampling algorithm for both passes. DPM++ 2M Karras recommended for progressive sampling. | |
| scheduler | COMBO | Noise schedule. AYS schedulers work well with progressive sampling. | |
| positive | CONDITIONING | Positive prompt conditioning (what you want in the image). | |
| negative | CONDITIONING | Negative prompt conditioning (what you want to avoid). | |
| latent_image | LATENT | Input latent image. For txt2img, use Empty Latent Image. | |
| denoise | FLOAT | 1.000–1 | Denoising strength for first pass. 1.0 = full generation, lower for img2img. |
| latent_upscale | BOOLEAN | true | Enable latent space upscaling between passes. Core feature of progressive sampling. Disabling this will perform a single pass of sampling. |
| upscaling_denoise | FLOAT | 0.610.01–1 | Second pass denoise amount. Notes: • Used only when start_step_second = -1 (denoise-fraction mode). • Typical refinement: 0.5–0.7. • Ignored when continuing from a start step. |
| upscale_method | COMBO | Algorithm for latent upscaling. Bicubic recommended for progressive workflows. | |
| ratio | FLOAT | 1.500.01–8 | Latent upscale ratio between passes. 1.5-2.0 typical for progressive generation. |
| image_upscale | BOOLEAN | false | Enable pixel-space image upscaling. Used to construct 'Both upscaled' and as source for 'Refined image'. |
| image_upscale_method | COMBO | Algorithm for final image upscaling. Lanczos for photos, nearest for pixel art. | |
| image_upscale_model | COMBO | AI upscaling model for final enhancement. 'None' disables AI upscaling. | |
| image_upscale_ratio | FLOAT | 1.500.01–8 | Final image upscale ratio. Can be different from latent upscale ratio. |
| image_upscale_refine | BOOLEAN | false | Output 'Refined image' by re-encoding and sampling the selected source (Both/Image/Base) with the settings below. |
| img_refine_steps | INT | 41–100 | Sampling steps for the final 'Refined image' pass. |
| img_refine_denoise | FLOAT | 0.250–1 | Denoising strength for the final 'Refined image' pass. |
| verbose | BOOLEAN | false | Print detailed pass logs and timings to the console. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| Base image | IMAGE | — |
| Image upscaled | IMAGE | — |
| Latent upscaled | IMAGE | — |
| Both upscaled | IMAGE | — |
| Refined image | IMAGE | — |
| LATENT | LATENT | — |
| Upscaled type | STRING | — |