Nodes/ComfyUI-FSampler/FSampler Select
ComfyUI Node

FSampler Select

Bolt the skip trick onto SamplerCustom and any guider

By obisin·Created 11 months ago·Updated 6 months ago· 132
FSampler Select
  • model
  • sampler
  • sigmas
steps25
schedulersimple
samplereuler
denoise1.00
skip_modenone
skip_indices
adaptive_modenone
smoothing_beta0.9990
protect_first_steps2
protect_last_steps2
anchor_interval4
max_consecutive_skips4
add_noise0.00
noise_typewhitened
verbosefalse
no_gradtrue
official_comfytrue
sigma_awarefalse
extrapolate_denoisedfalse

The name is literal. FSampler Select doesn't denoise anything - it selects a sampler and a sigma schedule for you and hands them to ComfyUI's SamplerCustom (KSamplerCustom) node, which does the actual sampling. If you've already rebuilt your workflow on the modular sampling system - where the sampler, the guider, and the sigma schedule are separate nodes you wire together - this is how you get FSampler's model-call skipping without tearing that graph apart. Same underlying trick as the pack's other nodes, different plumbing.

Why this node exists

The core FSampler nodes behave like a KSampler: model, conditioning, cfg, and latent go in, latent comes out, everything's one self-contained block. But the modular sampling ecosystem works differently - SamplerCustom takes a SAMPLER object, a SIGMAS schedule, and a guider (CFGGuider, DualCFGGuider, BasicGuider) as separate inputs, and it owns the model/conditioning/cfg/noise handling. FSampler Select is the adapter between those two worlds. It produces the same skip-aware sampling the rest of the pack does, but packages it as sampler + sigmas outputs instead of a finished image, so you keep full control of the guider and the rest of the graph. If you've ever wanted to run an aggressive skip schedule but keep a DualCFGGuider, this is the node that lets you.

How it works

Mechanically it's the same engine as FSampler Advanced, just with a narrower job. The node takes your steps, scheduler, and denoise and builds the sigma schedule - the model input exists precisely so it can compute model-aware sigmas, per the tooltip. Then it wraps your chosen sampler (the same 11-method list: Euler, DDIM, DPM++ 2M/2S, LMS, and the RES4LYF-family res_2m/res_2s/res_multistep solvers) in FSampler's skip-aware KSAMPLER via the same skip_mode / skip_indices / adaptive_mode machinery, and returns both pieces. The scheduler dropdown is the full 19-entry list, including the res4lyf custom schedulers (beta57, bong_tangent and friends) and the pack's own fibonacci schedules.

Wiring it up

The setup is two wires plus the standard SamplerCustom plumbing:

FSampler Select  ──sampler──▶ SamplerCustom.sampler
                ──sigmas──▶ SamplerCustom.sigmas

SamplerCustom: model, positive, negative, cfg, noise_seed, latent as usual
  1. Add FSampler Select, pick your sampler, scheduler, steps, and skip settings.
  2. Add SamplerCustom and wire the outputs into its sampler and sigmas slots.
  3. Connect model, conditioning, cfg, seed, and latent to SamplerCustom as you normally would - not to FSampler Select, which doesn't take them.

That last point is the one beginners trip on. FSampler Select has no conditioning or seed inputs and no cfg; those all belong to SamplerCustom and its guider. The node's own denoise input handles partial-denoise workflows by stretching the full schedule and taking its tail, same as a KSampler with denoise < 1.

The settings that matter

Everything meaningful on the panel mirrors FSampler Advanced, so the tuning advice carries over unchanged:

  • skip_mode - none (baseline), h2/s2 (the recommended safe start, ~24% fewer calls), h3/s4, h4/s4 for more conservative, adaptive for the aggressive 40–60% gate.
  • skip_indices - explicit manual control, e.g. "h2, 5, 7, 9", which overrides skip_mode when non-empty. Good for low-step runs where cadence-based skipping wastes history.
  • sigma_aware and extrapolate_denoised - the v1.5.0 toggles that fix prediction drift on non-uniform schedulers (karras, bong_tangent, exponential) and on denoised extrapolation respectively. Both default off; flip sigma_aware first if your scheduler isn't simple/normal.

add_noise and noise_type are here too - 0 is deterministic, and whitened is the res4lyf-style normalization vs gaussian for stock-KSampler noise. Default is fine for a first run.

Installing

Same pack as the rest of FSampler - no extra dependencies, no model files:

cd ComfyUI/custom_nodes
git clone https://github.com/obisin/comfyui-FSampler
# restart ComfyUI

ComfyUI Manager can also install it; search ComfyUI-FSampler. The pack bundles its own copies of the k-diffusion / official / res4lyf sampling code, so nothing else needs installing. It's GPL-3.0.

Common issues

The failure modes are the family's, not this node's. Adaptive mode is the aggressive one and real testers report it can produce glowy, "deep fried" output on some models - h2/s2 is the reliable 20–26% cut, and the README's own advice is to validate with skip_mode=none first, then step up. Low-step workflows (<10 steps) barely benefit because there's not enough history to extrapolate. One structural note: because this node's sigmas are precomputed for the steps you asked for, if you change denoise or steps on SamplerCustom's side rather than on this node's, the schedule goes out of sync - keep those settings on FSampler Select. And as with any custom sampler, a sampler+scheduler combo that produces nonsense without skipping will produce nonsense here too; change the combo, not the pack.

Categorysampling/custom_sampling

Inputs (20)

NameTypeDefaultDescription
modelMODELModel (needed to compute sigma schedule).
stepsINT251–150
schedulerCOMBOsimple19 options: simple, normal, sgm_uniform, ddim_uniform, beta, linear_quadratic, +13
samplerCOMBOeulerSampling method
denoiseFLOAT1.000–1
skip_modeCOMBOnoneSkipping: hN/sK with N=history (2=linear,3=Richardson,4=cubic) and K=calls before skip.
skip_indicesSTRINGExplicit skip indices (e.g. 'h2, 3, 4, 7'). Overrides skip_mode when non-empty.
adaptive_modeCOMBOnoneAdaptive skip corrections: none=off; learning=EMA L stabilizer; grad_est=gradient-estimation correction; learn+grad_est=both.
smoothing_betaFLOAT0.99900–0.9999EMA smoothing for learning mode.
protect_first_stepsINT20–20Initial steps never skipped (warmup).
protect_last_stepsINT21–100Final steps never skipped.
anchor_intervalINT40–100Force REAL call every Nth step (adaptive only). 0=disable.
max_consecutive_skipsINT41–100Max back-to-back skips (adaptive only).
add_noiseFLOAT0.000–1Per-step stochastic noise ratio. 0=deterministic.
noise_typeCOMBOwhitenedNoise sampling method for add_noise.
verboseBOOLEANfalseVerbose debug logging.
no_gradBOOLEANtrueRun under torch.no_grad (Comfy parity).
official_comfyBOOLEANtrueUse official Comfy algorithm variants.
sigma_awareBOOLEANfalseUse actual sigma coordinates for extrapolation instead of assuming uniform step spacing. May improve prediction accuracy with non-uniform schedulers (karras, bong_tangent, exponential, etc.).
extrapolate_denoisedBOOLEANfalseExtrapolate the model's denoised output instead of epsilon. Denoised converges smoothly toward the clean image, potentially improving skip predictions.

Outputs (2)

NameTypeDescription
samplerSAMPLER
sigmasSIGMAS