Scheduler_MixScheduler
Run two schedulers in one sampling pass, blended at the seam
- model
- Sigma
Normally you pick one scheduler - karras, beta, normal - and it shapes the noise curve for your entire sampling run. This node lets you use two: one for the first split_step steps, a different one for the rest, with a smooth handoff between them instead of a hard jump. The use case is composition versus detail: early steps in a diffusion run establish overall structure, later steps refine texture and fine detail, and those two phases don't always want the same noise-removal shape. Running a schedule tuned for stable early structure, then switching to one that concentrates effort differently for the detail phase, is a real technique people reach for by hand - this node just makes the switch clean and reproducible instead of manually splicing two SIGMAS tensors together.
The inputs and outputs that matter
model(required, MODEL) - needed because generating either scheduler's sigma values depends on your model's own sigma range.total_steps(required, default 20, range 2–10000) - the full step count for the combined schedule.split_step(required, default 10, range 1–9999) - where the handoff happens. At the default (10 of 20), it's an even split; move it earlier to spend more of the run onscheduler_2, or later to favorscheduler_1.scheduler_1/scheduler_2(required, one of the standard 9 each:simple,sgm_uniform,karras,exponential,ddim_uniform,beta,normal,linear_quadratic,kl_optimal) - the schedule for before and after the split. There's no rule requiring them to differ, but running the same value in both slots defeats the point of the node.smooth_strength(required, default 0.5, range 0–1) - how much the transition atsplit_stepis softened rather than an abrupt jump from one curve's value to the other's. 0 gives you a hard cut; higher values blend the seam.- Output:
Sigma(SIGMAS) - feed it directly into your sampler.
Remember the architecture rule that governs scheduler choice in general still applies to both halves independently: flow-matching models (Flux, Qwen-Image, Z-Image) actively dislike karras and exponential - a large sweep across dozens of combinations found both failing across the board on Z-Image Turbo - so picking one of those for either scheduler_1 or scheduler_2 on a flow-matching model is a bad idea regardless of which phase it's in. Stick to beta, simple, or linear_quadratic for those bases, and save karras for DDPM-style checkpoints (SD 1.5, SDXL and its finetunes).
How to install it
Search ComfyUI-Apt_Preset in ComfyUI Manager, or clone it manually:
cd ComfyUI/custom_nodes
git clone https://github.com/cardenluo/ComfyUI-Apt_Preset.git
install.bat handles Windows dependencies; on Linux or Mac, open it, read the pip installs, and run them yourself, or let ComfyUI Manager fill gaps on first load. No model files needed beyond the model you're already sampling with.
Common issues & troubleshooting
A visible artifact or jump right at the split point. Raise smooth_strength before anything else - that seam is exactly what it exists to smooth over. If it's still visible near 1.0, the two schedulers you picked may simply be too different in shape at that step for any blend to hide cleanly; try a split point where the two curves' values are naturally closer together.
Not sure which scheduler to put where. A reasonable default experiment: a stable, low-reshaping schedule (simple or normal) for the early/composition phase, and whatever your model's own recommended scheduler is for the later/detail phase - then compare against just running the recommended scheduler alone for the whole thing, since mixing isn't guaranteed to beat a single well-chosen schedule.
Results barely differ from using one scheduler the whole way. If split_step sits very close to 0 or total_steps, one scheduler is doing almost all the work and the other barely registers - move the split closer to the middle if you actually want to see both halves contribute.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| total_steps | INT | 202–10000 | — |
| split_step | INT | 101–9999 | — |
| scheduler_1 | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| scheduler_2 | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| smooth_strength | FLOAT | 0.500–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| Sigma | SIGMAS | — |