Basic Scheduler Normalized
A scheduler that makes denoise behave the same on every sampler
- model
- SIGMAS
The stock ComfyUI scheduler has a quiet quirk that bites everyone doing img2img or video refinement: when you set a denoise below 1, the standard approach just computes a longer sigma schedule and chops the noisy end off. That works, but the exact result depends on how many steps you asked for, which scheduler you picked, and how that scheduler distributes denoising effort - so the same "0.6 denoise" can mean subtly different things across setups. This node exists to make denoise mean the same thing everywhere.
It's a scheduler node, which means it doesn't sample anything itself: you feed it a model, pick a scheduler and steps, set your denoise, and it hands you SIGMAS to wire into a sampler. The difference from the stock Basic Scheduler is the denoise_method dropdown, which controls how denoise gets applied.
The six denoise methods
default- mimics stock behavior: more steps computed, noisy tail cut. Familiar but inconsistent.default short- computes the full schedule then keeps onlyceil(steps × denoise)steps. Short and simple.normalized(the default) - computes the full schedule, then scales the sigma curve so its maximum equals your denoise value while keeping all the steps. This is the headline: full step count, denoise expressed as the max noise level. Consistent regardless of scheduler.normalized advanced- finds the step in the schedule closest to your denoise value, keeps the curve from there, resamples it back to the full step count, then normalizes. More faithful to the original curve shape.multiplyed- literally multiplies every sigma bydenoise. Crude, but predictable.multiplyed normalized- multiply, then rescale so the max lands exactly on denoise.
For most people normalized is the right answer and it's the default for a reason. The others exist for matching how a specific scheduler or habit expects denoise to behave. If you've ever had a workflow that looked great on Karras and washed out on exponential for no visible reason, the normalized method is the fix: it pins the noise ceiling instead of letting the scheduler redraw it.
Inputs worth knowing
model- needed because the node reads your model's built-in sampling config to compute realistic sigmas.scheduler- the usual nine (simple, sgm_uniform, karras, exponential, ddim_uniform, beta, normal, linear_quadratic, kl_optimal).stepsanddenoise- your run parameters. Note that withnormalizedyou keep allsteps, unlike stock behavior where partial denoise effectively shortens the run.
Install
Manager → search TBG Takeaways → install, restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Ltamann/ComfyUI-TBG-Takeaways
Restart and look under TBG/Takeaways. No extra deps, no models to download.
The honest framing: if you've never noticed denoise behaving inconsistently, you don't need this - stock works. It's a consistency tool for people who switch schedulers, run partial-denoise passes in video chains, or build reusable workflows and want the denoise knob to mean the same thing on someone else's machine. If that's you, drop it in front of your sampler and forget it.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| scheduler | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| steps | INT | 201–10000 | — |
| denoise | FLOAT | 1.000–1 | — |
| denoise_method | COMBO | normalized | 6 options: default, default short , normalized, normalized advanced, multiplyed, multiplyed normalized |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMAS | SIGMAS | — |