Nodes/HommageTools for ComfyUI/HT Scheduler Bridge
ComfyUI Node

HT Scheduler Bridge

Scheduler as a string, sigmas as the output — HT Scheduler Bridge

By ArtHommage·Created 2 years ago·Updated about a year ago· 4
HT Scheduler Bridge
  • model
  • sigmas
scheduler_namenormal
steps20
denoise1.0

The sampler isn't the only thing ComfyUI wants as a typed object. The scheduler - the noise schedule that decides how much noise gets removed at each step - is normally a dropdown, and that's a problem when you want the schedule to be decided by text: a prompt parameter, a config file, an external control system. HT Scheduler Bridge (from the HommageTools pack) is the companion to HT Sampler Bridge: scheduler name in as a string, ready-to-use sigmas out.

How it works

This one's slightly meatier than the sampler version because it actually computes something. It takes a model (it needs the model's model_sampling object to build a schedule), plus three strings:

  • scheduler_name - e.g. normal, karras, linear. Validated against ComfyUI's scheduler list with fuzzy matching, falling back to normal (with a console warning) if the name doesn't resolve.
  • steps - the number of steps as a string ("20"). Parsed with a fallback to 20 if it's garbage.
  • denoise - denoising strength as a string ("1.0"), clamped to 0–1. Below 1.0 it computes a longer base schedule and trims it, the same trick a hires-fix pass uses.

The output is a sigmas tensor, which is the thing your advanced sampler node actually consumes. Wire sigmas into SamplerCustomAdvanced, pair it with a sampler object (from the sibling HT Sampler Bridge, or any sampler source), and you have a fully string-driven sampling stack.

Quick scheduler cheat sheet, since you'll be typing these: karras concentrates denoising effort in the middle steps - the classic choice for SD 1.5/SDXL at lower step counts. normal is the balanced default the node falls back to. linear spreads noise removal evenly. And if you're on a flow-matching model (Flux-family and friends), the old scheduler shortlist gets weird - some custom schedulers even override your shift setting, so when in doubt test a couple and look at the actual images, not the names.

Installing it

Same pack, same drill:

cd ComfyUI/custom_nodes
git clone https://github.com/ArtHommage/HommageTools.git
cd HommageTools
pip install -r requirements.txt

Restart ComfyUI (or ComfyUI Manager → "HommageTools"). No model downloads for this node.

Common issues

The silent fallback, again. Type "karras" as "karras " with a trailing space and it still works (it strips). Type "karass" and you're quietly on normal while your console prints a warning you probably won't see. If schedules suddenly look wrong after you change the string, check the terminal.

Strings mean typos aren't type-checked. ComfyUI will happily pass "1,0" instead of "1.0" and the node will fall back to full denoise rather than error - the parse is permissive on purpose, but that means bad input degrades silently. If you're driving this from extracted parameters, validate upstream.

It needs a model socket. Unlike the sampler bridge, this node can't be a pure text→object adapter - the schedule depends on the model's sampling config. Don't expect it to work floating free in the graph; wire your loaded checkpoint into it.

CategoryHommageTools

Inputs (4)

NameTypeDefaultDescription
modelMODEL
scheduler_nameSTRINGnormal
stepsSTRING20
denoiseSTRING1.0

Outputs (1)

NameTypeDescription
sigmasSIGMAS