SchedulerMixer
Why pick one scheduler when you can average six?
- model
- SIGMAS
The scheduler - Karras, normal, exponential, and all the rest - decides how much noise gets removed at each denoising step, and it quietly shapes almost everything about your output: contrast, detail distribution, even whether a flow-matching model works at all. ComfyUI makes you pick exactly one from a dropdown, and half the time you're torn because each one is almost right. SchedulerMixer says why not both: it blends up to six built-in schedulers into a single weighted-average noise schedule, and hands you the result as SIGMAS.
It's a tiny node from BlakeOne, the same author who made ComfyUI-CustomScheduler (the sibling that lets you type sigma values directly). SchedulerMixer is the smoother, more visual option - you're picking percentages of known schedules rather than hand-typing a sigma curve.
How it works
Under the hood it's embarrassingly simple, which is the point. For every scheduler you give a weight above zero, it computes that scheduler's full sigma curve for your model, then takes a weighted average:
sigmas = comfy.samplers.calculate_sigmas(model.get_model_object("model_sampling"), name, total_steps)
mixed_sigmas += sigmas * weight
No model downloads, no API, no extra Python dependencies - the whole pack is one file that calls ComfyUI's own sampler machinery. The result is a genuine blend: 50% Karras + 50% normal gives you a curve that concentrates denoising effort harder than normal but softer than pure Karras. That's the entire trick, and it's the same idea as blending two photos in an image editor.
The inputs that matter
Seven of the nine inputs do the actual work; model and steps are just context so ComfyUI can compute the schedules correctly.
- normal, karras, exponential, sgm_uniform, simple, ddim_uniform - six FLOAT weights (0–1). Any scheduler left at 0 is skipped entirely, so a 50/50 mix is as simple as two sliders. The defaults ship as 0.5
sgm_uniform+ 0.5ddim_uniform, which is a sane starting point and shows you the pattern. - denoise - same semantics as the KSampler's: below 1.0 it computes more total steps and trims the tail, so you can blend in a partial-denoise img2img pass. The node itself doesn't take a latent - the SAMPLER handles that.
- steps - the step count of the schedule (default 20).
The single output is SIGMAS. That's the key thing to know: this node does not plug into a KSampler. It lives in the sampling/custom_sampling/schedulers category, and its output feeds the sigmas input of a SamplerCustom node (which the repo's example workflow shows). SamplerCustom splits sampling into separate schedule, sampler, and denoise steps - SchedulerMixer supplies the schedule half.
Installing it
Plain zero-dependency clone, no requirements.txt:
cd ComfyUI/custom_nodes
git clone https://github.com/BlakeOne/ComfyUI-SchedulerMixer
Then restart ComfyUI. Or in ComfyUI Manager, search "SchedulerMixer" and hit install. Either way there's nothing else to fetch - no models, no pip packages.
Common issues and gotchas
The big one is in the code, not the docs: the weights are not normalized. mixed_sigmas += sigmas * weight - there's no divide-by-total. If your weights sum to more than 1, you're scaling the whole sigma curve up, and sigma scale is roughly denoise strength: too much and you get blown-out, overexposed results, too little and everything goes flat and washed out. Get in the habit of keeping the six sliders summing to 1.0, and it's a proper weighted average.
Also remember these are the built-in schedules computed for your model's model_sampling, so the same mix behaves differently per architecture. A Karras-heavy blend is still Karras underneath, and the community's standing rule applies: on flow-matching models (Flux, Z-Image, Klein) aggressive schedules like Karras and exponential fail rather than merely underperform. SchedulerMixer is a great tool for softening that aggression - 30% Karras instead of 100% - but don't expect the blend to rescue a fully Karras-weighted flow-matching run.
Last, don't expect this thing to be a big deal on reddit - it's a niche utility with basically no community footprint. That's fine. You're here because you want a schedule the dropdown doesn't offer, and this is the least fussy way to get one.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| steps | INT | 201–10000 | — |
| denoise | FLOAT | 1.000–1 | — |
| normal | FLOAT | 0.000–1 | — |
| karras | FLOAT | 0.000–1 | — |
| exponential | FLOAT | 0.000–1 | — |
| sgm_uniform | FLOAT | 0.500–1 | — |
| simple | FLOAT | 0.000–1 | — |
| ddim_uniform | FLOAT | 0.500–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMAS | SIGMAS | — |