Nodes/ComfyUI Iterative Mixing Nodes/IterativeMixingSchedulerAdvanced
ComfyUI Node Runs on cloud

IterativeMixingSchedulerAdvanced

Sample only part of the schedule, on purpose

By ttulttul·Created 3 years ago·Updated about a year ago· 120
IterativeMixingSchedulerAdvanced
  • model
  • SIGMAS
scheduler
steps20
start_at_step0
end_at_step10000
denoise1.00

The plain IterativeMixingScheduler hands the sampler a full schedule and calls it a day. This one lets you run only part of it - and that partial-schedule trick is genuinely useful for iterative mixing, because a stopped-short run is a great way to stage refinement passes.

The flagship use case from the README: set end_at_step to half your total step count. The sampler then produces deliberately grainy output that's rich with detail - exactly the kind of noisy-but-detailed intermediate you'd hand to a second iterative mixing sampler (or a cleanup sampler) to refine. It's a two-stage workflow that the "mix in the noised original" technique is unusually good at.

Inputs and output

  • model - required; sigmas are derived from the model's noise sampling.
  • scheduler - normal, karras, exponential, sgm_uniform, simple, ddim_uniform.
  • steps (default 20) - your reference total step count.
  • start_at_step / end_at_step (defaults 0 / 10000) - which slice of the schedule to emit. end_at_step is capped at steps and at the length of the computed sigma array.
  • denoise (default 1.0) - standard partial-denoise handling.

Output: SIGMAS for SamplerCustom. Same wiring as the simple version, same "add_noise off" rule.

The confusing part (read this before you fiddle)

Here's the trap the README warns about explicitly. The sampler fits its blending curve to the length of the sigmas tensor it receives, not to the steps you typed into the scheduler. If you run a half-length schedule, the curve gets horizontally stretched by 2x, and your start_blending_at_pct / stop_blending_at_pct no longer mean what you think.

The author's own worked example: steps = 40, start_at_step = 0, end_at_step = 20 (that's 50% of the way through). To keep the curve behaving, you must set stop_blending_at to 80 on the sampler so the schedule compensates for the shorter sigmas tensor. Yes, that's counterintuitive - the author says "I know this is confusing and if a better way emerges, I will support it." Set start_blending_at_pct and stop_blending_at_pct to the same proportion of the total step count that your start_at_step/end_at_step slice represents, and you're mathematically consistent.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/ttulttul/ComfyUI-Iterative-Mixer
# restart ComfyUI

Or ComfyUI Manager → "ComfyUI Iterative Mixing Nodes." No model files, no heavy downloads; the pack's matplotlib/scipy dependencies are already handled by its requirements.txt even though this node itself is dependency-light.

If you're doing a straightforward full-schedule run, save yourself the headache and use the simple IterativeMixingScheduler. Reach for this one only when you're deliberately slicing the schedule for staged or refinement workflows - that's the case where the extra input genuinely pays for itself.

Categorysampling/custom_sampling/schedulers

Inputs (6)

NameTypeDefaultDescription
modelMODEL
schedulerCOMBO6 options: normal, karras, exponential, sgm_uniform, simple, ddim_uniform
stepsINT201–10000
start_at_stepINT00–10000
end_at_stepINT100000–10000
denoiseFLOAT1.000–1

Outputs (1)

NameTypeDescription
SIGMASSIGMAS