ComfyUI Node
H3 Scheduled Sampler
res_multistep with a per-step budget: extra evaluations go where the integration error actually is, and Block Cache is told where it may skip instead of guessing from a denoise percentage. Four of a split schedule's 22 steps carry 97% of its local error; this is the node that acts on that. Reports the plan before it runs.
H3 Scheduled Sampler
- sigmas
- SAMPLER
- SIGMAS
- report
◄solverres_multistep►
◄extra_evaluations4►
◄bias0.00►
◄cache_floor0.020►
◄max_substeps4►
◄detail_eta0.00►
◄eta_below_sigma0.50►
◄cfg_below_sigma0.00►
◄verbosefalse►
CategoryNynxz/H3/Sampling
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| sigmas | SIGMAS | The schedule to plan over — H3 Detail Schedule, or any scheduler. Passed through unchanged on the SIGMAS output; wire that one onward so the plan in the report is the plan that runs. | |
| solver | COMBO | res_multistep | The integrator. res_multistep gets second order for one evaluation by reusing the previous step's prediction, and is the better default. Choose euler when Block Cache is running hard: a cached step's approximate denoised becomes the next step's history term and gets carried forward with weight, where Euler keeps that error local. This also re-plans the budget — first-order error is less concentrated, so the extra evaluations spread wider. |
| extra_evaluations | INT | 40–64 | Model evaluations on top of one per step — this is time, in the only currency that is honest about it. They are handed out by marginal error reduction, so the first few land on the handful of steps that hold almost all of the error. 0 makes this a plain res_multistep. |
| bias | FLOAT | 0.00-1–1 | Which end gets the extra evaluations. 0 is untilted and spends purely where the measured error is. Negative favours structure and motion; positive favours refinement. Note this buys ACCURACY at either end — for more texture rather than more polish, use detail_eta. |
| cache_floor | FLOAT | 0.0200–0.5 | The share of total local error H3 Block Cache is allowed to be responsible for. Steps are made eligible smallest-error-first until this is used up. Permission only — the cache's own drift threshold still decides whether it skips, so this can never make it more aggressive than it was. 0 leaves the cache's start_percent/end_percent window alone. |
| max_substeps | INT | 41–16 | Ceiling on how far one step may be subdivided. Stops the whole budget landing on a single enormous step when there is one. |
| detail_eta | FLOAT | 0.000–1 | Ancestral noise, applied ONLY below eta_below_sigma. The one setting here that adds detail rather than resolving it — everything else converges harder onto the same trajectory. Banded because eta across H3's long structure phase destabilises motion. |
| eta_below_sigma | FLOAT | 0.500–1 | Where the eta band starts. 0.5 is H3 Detail Schedule's default split, so out of the box the noise lands exactly on the refinement phase. |
| cfg_below_sigma | FLOAT | 0.000–1 | Force CFG to 1.0 below this sigma, which makes ComfyUI drop the unconditional pass entirely and halve those steps. The biggest single saving available, and the one most likely to cost prompt adherence — 0 is off. |
| verbose | BOOLEAN | false | Log the full per-step table before the run, and predicted-vs-measured local error after it. The summary lines are logged either way. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| SAMPLER | SAMPLER | — |
| SIGMAS | SIGMAS | The schedule, unchanged. Wire this to SamplerCustomAdvanced so the sampler and the report cannot disagree about what is being run. |
| report | STRING | The plan, step by step: step size, the multistep conditioning ratio, the share of total error each step holds, and where the budget went. |