KSampler Cycle
Automated hi-res-fix loops in one node
KSampler Cycle is a sampler that does hi-res-fix passes in a loop for you. Instead of wiring up sample → upscale → sample → upscale by hand, you tell it a target upscale factor and how many steps to get there, and it cycles: sample, upscale a bit, sample again, upscale again, climbing to your target resolution over several rounds. It's the WAS answer to the multi-pass upscale that the community builds manually.
It's a niche node - a handful of corpus mentions, not a household name - but the idea behind it is exactly the mainstream one. The upscaling KB calls hi-res fix "essential for any generation above native resolution," done by generating at native size then re-sampling larger with low denoise to add coherent detail. This node just automates the repetition.
How it works
The README lays out the moving parts. You give it an upscale factor (how big you're ultimately going) and a number of steps to reach that factor - the cycles. Each cycle upscales the latent/image a fraction and runs another sampling pass, so the model adds detail as the resolution climbs rather than in one jarring jump. It accepts an upscale_model (an ESRGAN like 4x-UltraSharp for the pixel step), a 1x processor model slot, and optionally a secondary diffusion model so a different checkpoint can handle the refinement passes.
The reason gradual beats one-shot: the KB's hi-res-fix guidance is that upscale factor of 1.5–2x per pass with moderate denoise is the sweet spot, and pushing too far or denoising too hard changes the composition. Cycling in smaller increments is how you reach a large final size while keeping each step's denoise gentle.
Inputs and outputs that matter
Beyond the usual sampler inputs (model, positive/negative conditioning, latent, seed, steps, cfg, sampler/scheduler), the ones specific to this node are the upscale factor, the number of cycles/steps to reach it, the upscale_model, and the optional secondary diffusion model. The output is a LATENT you then VAE-decode to see the upscaled result.
How to install it
ComfyUI Manager: search was-node-suite-comfyui, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/was-node-suite-comfyui
then install the pack's requirements.txt in your ComfyUI venv and restart. To use the upscale-model slot you'll want an ESRGAN .pth (4x-UltraSharp is a safe default) in ComfyUI/models/upscale_models/.
Common issues & troubleshooting
The composition drifts as it climbs. Too much denoise per cycle. Hi-res fix stays faithful at 0.3–0.4 denoise; above ~0.5 the picture starts changing, and across several cycles that compounds. Keep per-pass denoise gentle.
It's slow. Of course - you're running multiple full sampling passes at increasing resolution. That's the cost of multi-pass quality. If you want speed, fewer cycles or a smaller final factor; if you want quality, this is the trade you signed up for.
Faces get worse the bigger it goes. The KB's standing rule: fix faces and hands at native resolution before upscaling, because upscaling bakes in defects, and generative passes rewrite identity. Don't count on the cycle to repair a bad face - give faces a dedicated detail pass.
Is this the best way to upscale in 2026? It's a fine automated hi-res fix, but the field moved on. For pure "more detail" the KB's current pick is SeedVR2; for tiled large prints, Ultimate SD Upscale with ControlNet Tile. KSampler Cycle is convenient if you're already living in WAS, not the state of the art.
Whole pack won't import after a ComfyUI update. The recurring WAS Node Suite issue - package downgrades vs a ComfyUI bump breaking the startup import. Re-run the pack's requirements against the activated venv, or install.bat. Maintenance-only since late 2023.
Inputs (0)
No inputs
Outputs (0)
No outputs