Legacy2_ClownSamplerAdvanced
The RES4LYF sampler with every knob exposed
- guides
- options
- automation
- sampler
This is the engine room of RES4LYF. Everything else in the pack - the guides, the options nodes, the automation - exists to plug into this one. It doesn't run the diffusion itself; it builds a SAMPLER object that you wire into ComfyUI's SamplerCustomAdvanced (or SamplerCustom). Think of it as "KSampler's sampler dropdown, but with 50-odd solvers that don't exist anywhere else, plus SDE noise, plus implicit refinement."
Worth being honest up front: this is the legacy variant, so its display name shows up as Legacy2_ClownSamplerAdvanced. It still works fine - the author kept the old nodes around under a Legacy prefix - but if you're building fresh, the newer ClownsharKSampler all-in-one is friendlier. You'd reach for this advanced node when you want the raw sampler as a separate block, usually because you're chaining samplers or feeding it guides.
Why you'd bother
RES4LYF is what replaced DPM++ 2M Karras for flow-matching models - Flux, Wan, Chroma, SD3.5, Z-Image and friends. On those architectures the stock scheduler list mostly fails rather than underperforms, and this pack shipped solvers built for the near-straight trajectories they train on. The payoff people actually report: comparable or better quality in fewer steps. As one longtime user put it, "res_2m is what I use most of the time, works on everything, and with most models you can use fewer steps than you might with other samplers."
The inputs that matter
Ignore most of the widgets on your first pass. The ones that move the needle:
sampler_name(defaultres_2m) - your solver.res_2mis the do-everything workhorse at Euler speed. The_2s/_3sfamily (res_2s, res_3s) runs substeps - two or three model calls per step, so two or three times slower - but noticeably sharper, especially with SDE noise on. Start with res_2m.eta(default 0.5) - how much noise gets re-injected each step (this is what makes it an SDE sampler). 0.5 is a sane default; the author's own Wan recipe is "20-30 steps res_2m or res_2s, eta 0.5." Set it to 0 for pure ODE (deterministic) sampling.noise_mode_sde(defaulthard) - how that eta noise is scaled. Leave it unless you're chasing artifacts.implicit_steps(default 0) - extra implicit refinement passes. Each one multiplies runtime. Great on SD3.5 Medium for coherence; painful on Flux. Zero is fine to start.
Then the plumbing on the optional side: guides takes a GUIDES bundle (from ClownInpaint or a guide node) for composition/img2img-style steering; options takes the chained OPTIONS output from any ClownOptions_* nodes; automation takes per-step parameter curves; and extra_options is a freeform text box for advanced flags. The single output is sampler (SAMPLER) - that's the only thing you wire onward.
Installing RES4LYF
ComfyUI Manager is easiest: search RES4LYF, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/ClownsharkBatwing/RES4LYF
pip install -r RES4LYF/requirements.txt
Portable users swap pip for the embedded one (python_embedded/Scripts/pip.exe). Restart Comfy, then hard-refresh the browser with F5, not just r. No model downloads - the pack is solvers and code, not weights. If you want the tidy nested sampler menus the author demos, install rgthree-comfy too and enable "Auto Nest Subdirectories" in its settings.
Where people get stuck
eta pushed past 1.0 does nothing dramatic. For most noise modes, anything at or above 1.0 triggers internal scaling to avoid NaN blowups. If you genuinely want more noise than that, the exp noise mode is the one that lets you go higher.
Shift seems to have no effect. If your scheduler is bong_tangent, that's why - it applies its own sigma shift and ignores the workflow's. Switch schedulers to confirm shift is working before blaming the sampler.
The res_3s/res_5s solvers crawl. That's expected - substep samplers cost multiple model calls per step. If you queued a slow explicit sampler with implicit steps stacked on top, you signed up for a very long render. Drop back to res_2m.
Porting an old workflow. If a screenshot you're copying used truncate_conditioning=true, add that line to the extra_options box to match the old behavior.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| noise_type_sde | COMBO | gaussian | 22 options: none, brownian, gaussian, gaussian_backwards, laplacian, perlin, +16 |
| noise_type_sde_substep | COMBO | gaussian | 22 options: none, brownian, gaussian, gaussian_backwards, laplacian, perlin, +16 |
| noise_mode_sde | COMBO | hard | How noise scales with the sigma schedule. Hard is the most aggressive, the others start strong and drop rapidly. |
| noise_mode_sde_substep | COMBO | hard | How noise scales with the sigma schedule. Hard is the most aggressive, the others start strong and drop rapidly. |
| eta | FLOAT | 0.50-100–100 | Calculated noise amount to be added, then removed, after each step. |
| eta_substep | FLOAT | 0.50-100–100 | Calculated noise amount to be added, then removed, after each step. |
| s_noise | FLOAT | 1.00-10000–10000 | Adds extra SDE noise. Values around 1.03-1.07 can lead to a moderate boost in detail and paint textures. |
| d_noise | FLOAT | 1.00-10000–10000 | Downscales the sigma schedule. Values around 0.98-0.95 can lead to a large boost in detail and paint textures. |
| noise_seed_sde | INT | -1-1–18446744073709550000 | — |
| sampler_name | COMBO | res_2m | 53 options: none, res_2m, res_3m, res_2s, res_3s, res_3s_alt, +47 |
| implicit_sampler_name | COMBO | explicit_diagonal | 28 options: none, explicit_diagonal, explicit_full, irk_exp_diag_2s, gauss-legendre_2s, gauss-legendre_3s, +22 |
| implicit_steps | INT | 00–10000 | — |
| guidesopt | GUIDES | — | |
| optionsopt | OPTIONS | — | |
| automationopt | AUTOMATION | — | |
| extra_optionsopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| sampler | SAMPLER | — |