FL KSampler Sigma
Draw your own noise schedule instead of picking a scheduler
- model
- positive
- negative
- latent_image
- vae
- image
- model
- positive
- negative
- latent
- vae
- image
- sigmas
Every KSampler you've used picks its noise removal schedule from a dropdown - Karras, exponential, simple, whatever. That scheduler is really just a curve: how much noise to strip at each step, from a starting sigma down to (near) zero. FL_KsamplerSigma lets you skip the dropdown entirely and draw that curve by hand on the node itself, then runs a standard sampler against it. It's for the case where none of the built-in schedules shape denoising the way you want and you'd rather sculpt it directly than fight a preset.
Why this matters (quick sampler/scheduler refresher)
The sampler is the algorithm (Euler, DPM++, etc.) that decides how to step from noisy to clean; the scheduler decides how big those steps are at each point in the process. A Karras schedule front-loads noise removal in the early-middle steps because that's where SD 1.5/SDXL-style models benefit most - but that assumption doesn't hold for every architecture or every use case, and a curve you draw yourself sidesteps the question of which named scheduler is "correct" for what you're doing.
The inputs and outputs that matter
schedule_curve- this is the actual sigma curve, populated by the on-node drawing widget rather than typed in by hand (it defaults to empty).sigma_max_hint(14.6146) andsigma_min_hint(0.0292) set the axis bounds for that drawing surface - those two numbers are the standard SD-family default sigma range, so they're a sane starting point even if your model's real range differs.steps,cfg,sampler_name,denoise- the usual KSampler knobs, applied on top of your custom curve rather than a named scheduler.latent_imageorimage(optional, pick one) - likeFL_KsamplerBasic, this node will VAE-encode an input image for you if you hand it one along with avae, instead of requiring you to pre-encode.- Outputs are generous:
model,positive,negative,latent,vae,imageall pass through so you can chain straight into a decode or another sampler without rewiring your other nodes, plussigmas- the actual computed sigma tensor, which you can plug into another sampler node or just inspect to see what your drawing produced numerically.
How to install it
Through ComfyUI Manager: search "ComfyUI_Fill-Nodes" and install. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI_Fill-Nodes
then restart ComfyUI. No special dependency for this node - it's built on ComfyUI's own sampling and scheduler internals. The pack as a whole is a large, general-purpose collection from one active solo developer (filliptm) spanning image FX, PDF handling, GPT/Gemini/Fal API integrations, and this KSampler family; unrelated node groups carry their own separate dependencies, not this one.
Common issues & troubleshooting
The curve looks wrong / sampling barely changes anything. Check sigma_max_hint/sigma_min_hint first - if your model's actual working sigma range is far outside those bounds, whatever you draw on the widget gets scaled into a range that doesn't match the model's expectations, and denoising will look muted or overcooked no matter how carefully you drew it.
You're not sure your custom curve is doing anything at all. Wire the sigmas output into a debug/print node (or reuse it in a second sampler) to actually see the numbers you produced - eyeballing a drawn curve and trusting it matches your intent is an easy way to fool yourself.
This is overkill for most workflows. If a named scheduler like Karras or sgm_uniform already gives you what you want, there's no reason to reach for hand-drawn curves - this node earns its place specifically when you've hit a case the presets don't cover, not as a default replacement for KSampler.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 201–10000 | — |
| cfg | FLOAT | 7.000–100 | — |
| sampler_name | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| denoise | FLOAT | 1.000–1 | — |
| sigma_max_hint | FLOAT | 14.610.001–1000 | — |
| sigma_min_hint | FLOAT | 0.0290–1000 | — |
| schedule_curve | STRING | — | |
| latent_imageopt | LATENT | — | |
| vaeopt | VAE | — | |
| imageopt | IMAGE | — |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |
| vae | VAE | — |
| image | IMAGE | — |
| sigmas | SIGMAS | — |