MD: Hybrid Scheduler (Advanced)
Fourteen schedulers in one node, and it can run two at once
- model
- sigmas
- plot
- info
The scheduler is the quiet half of your sampler choice - it decides how much noise gets removed at each step, and it's the difference between a Karras curve that concentrates effort mid-run and a flat linear one. ComfyUI's default dropdown covers the basics. This node is for when the basics feel like a jail: 14 scheduling algorithms, three different ways to handle partial denoise, and a split mode that runs two curves in a single generation.
The Advanced variant is the flagship. If you just want a better scheduler without a PhD, the Basic and Lite siblings in this pack cover you - this one is the toybox, and it's worth knowing which knobs actually matter before you start turning all of them.
What actually matters
The model input is the clever part: the node reads the model's model_sampling object and auto-detects its real sigma range (min/max noise) instead of assuming. That means the schedule is tuned to the checkpoint you're actually running, which is more than ComfyUI's stock scheduler does.
steps- 20–30 for images, 15–25 for audio, per the tooltip.mode- the curve.karras_rhois the safe default for SD 1.5/SDXL.bong_tangentis the audio-focused one the author pushes for ACE-Step work.ays,poly,beta,exponential,linear_quadratic,sgm_uniform,ddim_uniform,adaptive_linear, andvariance_preservinground out the list.denoiseanddenoise_mode- how a partial schedule (img2img, refinement) is computed. Hybrid (Adaptive Steps) recalculates the curve for the kept steps, which is the quality pick; Subtractive just slices the end of the full curve; Repaced compresses the whole schedule into fewer steps. Defaulting to Hybrid is the right call.rho- Karras/Poly steepness. Higher puts more steps at low noise (fine detail), and 7.0 is the standard.
Then there's the party trick: split_schedule with a second mode_b, split_at_step (or split_percentage), so the early part of the run uses one curve and the late part another. Composition-first then detail-first, as a curve combo. It's a research toy, but a genuinely useful one - and preset at the bottom loads sensible combos like "High Detail (Recommended)" and the two Bong presets if you don't want to build your own.
Honest caveats
Two things the KB and community consensus back up. First, aggressive reshaping like Karras is a correction on DDPM-style models (SD 1.5, SDXL and their finetunes) but actively harmful on flow-matching models like Flux - the near-straight trajectory gets distorted, not improved. On those, you want the gentler modes (simple, linear_quadratic, sgm_uniform, adaptive_linear), and knowing which family your checkpoint belongs to is the difference between a tuned schedule and a muddy image. Second, half the Advanced inputs are mode-specific: bong_slope_* do nothing outside bong_tangent, beta_alpha/beta_beta only shape beta, power only shapes poly. Ignore everything not relevant to your chosen mode.
Outputs are sigmas (wire into a sampler that accepts a SIGMAS input - SamplerCustom or this pack's own samplers), plot (an IMAGE of the curve, great for a preview node), and info (STRING diagnostics).
Installing it
Part of MD Nodes (MDMAchine/ComfyUI_MD_Nodes). ComfyUI Manager → search MD_Nodes → Install, restart. Manual:
cd path/to/ComfyUI/custom_nodes
git clone https://github.com/MDMAchine/ComfyUI_MD_Nodes.git
cd ComfyUI_MD_Nodes
pip install -r requirements.txt
The plot output needs matplotlib - it's in the requirements file, but if your plots come out missing or the node degrades, that's the first thing to check.
Common issues
If output goes black or artifacts at low step counts, check min_steps_mode and min_sliced_steps - slicing can drop the schedule too low and the node has a hard floor for a reason. And if a curve looks wrong, remember reverse_sigmas exists and is marked experimental; it's off for a reason.
Inputs (35)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | DIFFUSION MODEL • Purpose: Auto-detects sigma range (max/min noise levels). • Output: Generates sigmas tuned specifically to this model. | |
| steps | INT | 30 | TOTAL STEPS • Purpose: Number of denoising iterations to divide the schedule into. ⭐ Recommended: 20-30 for images, 15-25 for audio. |
| mode | COMBO | karras_rho | SCHEDULER MODE • Purpose: The mathematical curve used for noise reduction. • Options: Karras (Standard), Bong (Audio), AYS (Fast), etc. ⭐ Recommended: Karras for images, Bong for audio. |
| denoise | FLOAT | 1.000–1 | DENOISE STRENGTH • Purpose: How much of the schedule to execute. • Use: <1.0 for Img2Img or Refinement. |
| denoise_mode | COMBO | DENOISE MODE • Hybrid: Recalculates curve for partial steps (Best Quality). • Subtractive: Simply slices the end of the curve. • Repaced: Compresses full schedule into fewer steps. | |
| split_schedule | BOOLEAN | false | SPLIT SCHEDULE • Purpose: Use two different algorithms in one generation. ⭐ Useful for advanced research and custom effects. |
| mode_b | COMBO | SECONDARY MODE • The algorithm to use after the split point. | |
| split_at_step | INT | 30 | SPLIT STEP • The exact step index where the switch occurs. |
| use_percentage_split | BOOLEAN | false | PERCENTAGE SPLIT • Use a percentage instead of a fixed step count. |
| split_percentage | FLOAT | 0.25 | SPLIT PERCENTAGE • Point (0.0-1.0) to switch modes. |
| rho | FLOAT | 7.00 | RHO (STEEPNESS) • Purpose: Controls Karras/Poly curve shape. • Higher = More steps at lower noise levels. ⭐ Recommended: 7.0 (Standard), 3.0 (Flat). |
| bong_pivot | FLOAT | 0.50 | BONG PIVOT • Division between Composition and Detail phases. |
| bong_preset | COMBO | balanced | BONG PRESET • Quick setup for Bong Tangent mode. |
| bong_slope_composition | FLOAT | 1.20 | BONG SLOPE (EARLY) • Steepness of early phase. |
| bong_slope_detail | FLOAT | 0.80 | BONG SLOPE (LATE) • Steepness of late phase. |
| linear_steps | INT | 15 | LINEAR STEPS • For Linear-Quadratic mode. |
| linear_steps_relative | BOOLEAN | false | LINEAR RELATIVE • Use % instead of fixed count. |
| power | FLOAT | 2.00 | POLYNOMIAL POWER • Exponent for Poly mode. |
| beta_alpha | FLOAT | 0.60 | BETA ALPHA • Shape param for Beta mode. |
| beta_beta | FLOAT | 0.60 | BETA BETA • Shape param for Beta mode. |
| threshold_noise | FLOAT | 0.0025 | NOISE THRESHOLD • Gating value for Linear-Quadratic. |
| blend_factor | FLOAT | 0.50 | BLEND FACTOR • Mix ratio for Blended Curves. |
| min_steps_mode | COMBO | fixed | MIN STEPS MODE • Prevent step count dropping too low. |
| min_sliced_steps | INT | 3 | MIN FIXED STEPS • Hard minimum step count. |
| adaptive_min_percentage | FLOAT | 2.0 | MIN PERCENTAGE • Minimum steps as % of total. |
| detail_preservation | FLOAT | 0.00 | DETAIL PRESERVATION • Boosts final sigma slightly to keep texture. |
| low_denoise_color_fix | FLOAT | 0.00 | COLOR FIX • Corrects color shift at very low denoise. |
| use_sigma_override | BOOLEAN | false | ENABLE OVERRIDE • Ignore model sigmas and use manuals. |
| start_sigma_override | FLOAT | 1.00 | MANUAL START SIGMA |
| end_sigma_override | FLOAT | 0.006 | MANUAL END SIGMA |
| reverse_sigmas | BOOLEAN | false | REVERSE • Flip schedule (Experimental). |
| memory_efficient | BOOLEAN | false | MEMORY EFFICIENT • Chunk calculation for high step counts (500+). |
| debug_mode | COMBO | 0 - Silent | LOGGING VERBOSITY |
| enable_profiling | BOOLEAN | false | ENABLE PROFILING |
| presetopt | COMBO | Custom | PRESET • Load pre-configured settings. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| sigmas | SIGMAS | — |
| plot | IMAGE | — |
| info | STRING | — |