⚡ KSampler
A KSampler with passthroughs, a preview, and an honest bongmath toggle
- model
- positive
- negative
- latent
- vae
- script
- model
- positive
- negative
- latent
- vae
- image
FiLKSampler is a full-featured replacement for the stock KSampler with three things the stock one doesn't have: passthrough outputs so you can chain samplers without redrawing every wire, a built-in preview, and a script socket that the pack's HighRes Fix and Noise Control nodes plug into. If you're using FiL_Design_ImageMind's sampling half at all, this is the sampler those nodes expect - the scripts won't attach to a stock KSampler.
On the surface it looks like a KSampler with extra steps: same model, positive/negative conditioning, latent, seed, steps, cfg, sampler_name, scheduler, denoise. Same defaults too (euler/simple, 20 steps, cfg 7). The difference is underneath. The sampler and scheduler dropdowns are loaded lazily from comfy.samplers at schema time, so you get every sampler and scheduler ComfyUI exposes, including anything from installed sampler packs like RES4LYF - the list isn't hardcoded.
What the extra fields do
- Passthrough outputs. It returns
model,positive,negative,latent, andvaeuntouched alongside the sampledlatentand the decodedimage. Chain two samplers (a low-denoise pass into a refine pass) by wiring one'slatentoutput into the next'slatentinput - no re-routing the whole graph. That's the plumbing play, and it's genuinely handy. vae_decode(true / true-tiled / false) plus the optionalvaeinput decides whether you get animageout. No VAE connected and decode is on? You'll get nothing useful - that's the first thing to check.eta- noise multiplier for ancestral/SDE samplers only. 1.0 is standard, 0.0 deterministic. For the common samplers it does nothing, so don't obsess over it.bongmath(default true) - this one needs a sentence. "Bongmath" is the implicit-correction mechanism from ClownsharkBatwing's RES4LYF sampler pack, which realigned latents against the noise predictions during sampling and became a quiet fixture in the ecosystem. The toggle is passed through to samplers that accept it and ignored by everything else - standard samplers won't change behavior, so leaving it on is safe.script- accepts aFilHiresScriptobject from FiL HighRes Fix or Noise Control and runs it as part of the same pass. This is how the pack composes hires-fix and seed-variation without separate post-processing nodes.
Where people get stuck
The passthroughs are the main source of confusion. A beginner wires image into a Preview and gets exactly what they expect - good. But if you chain samplers and forget which output is the sampled one (latent) versus the passthrough (latent... yes, both are called latent), you can feed an untouched latent forward and wonder why your second pass "did nothing." Check which node you pulled the wire from.
Two other gotchas worth naming. If the sampler dropdown shows a one-item fallback list, ComfyUI failed to import the sampler module - restart with a clean install, because the pack degrades gracefully instead of erroring. And preview_method's auto tries the sensible path (latent2rgb → taesd → vae); if you want the decoded result live you still need a VAE on vae. The image output is empty when decode is off - that's a setting, not a bug.
In the wider graph
The intended shape is Load Checkpoint → clip-encode into positive/negative → Empty Latent → FiLKSampler → Preview. Add HighRes Fix or Noise Control by wiring their script output into script (and you can chain those two by feeding one's script into the other). Everything stays inside the pack's themed UI, which is honestly the point of this one - it's a drop-in KSampler with plumbing and scripts, and it does those jobs without surprises.
Install is the standard pack route: ComfyUI Manager search FiL_Design_ImageMind, or git clone https://github.com/FiL-Design-Ai/FiL_Design_ImageMind into custom_nodes/, pip install -r requirements.txt, restart. ComfyUI 0.3.60+ required - the V3 node API is a hard floor.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | Diffusion model to sample with. | |
| seed | INT | 00–18446744073709550000 | Noise seed. |
| steps | INT | 201–10000 | Number of denoising steps. |
| cfg | FLOAT | 7.00–100 | Classifier-free guidance scale. |
| sampler_name | COMBO | euler | Sampling algorithm. |
| scheduler | COMBO | simple | Noise schedule. |
| positive | CONDITIONING | Positive conditioning. | |
| negative | CONDITIONING | Negative conditioning. | |
| latent | LATENT | Latent to denoise. | |
| denoise | FLOAT | 1.000–1 | Denoise strength (1.0 = full). |
| eta | FLOAT | 1.000–100 | Noise multiplier for ancestral/SDE samplers (1.0 = standard, 0.0 = deterministic). |
| bongmath | BOOLEAN | true | Enable bongmath implicit correction for RES4LYF samplers (ignored by standard samplers). |
| preview_method | COMBO | auto | How the live sampling preview is rendered. |
| vae_decode | COMBO | true | Decode the result to an IMAGE preview/output. Needs a VAE. |
| vaeopt | VAE | VAE for decoding the preview/output image. | |
| scriptopt | FIL_HIRES_SCRIPT | Optional FiL HighRes-fix script to run after sampling. |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| model | MODEL | Passthrough model. |
| positive | CONDITIONING | Passthrough positive conditioning. |
| negative | CONDITIONING | Passthrough negative conditioning. |
| latent | LATENT | Sampled latent. |
| vae | VAE | Passthrough VAE. |
| image | IMAGE | Decoded image (empty if VAE decode is off). |