π H3 Route - LD
A Switch That Reads the Answer Instead of Being Told It
- a
- b
- out
- route
- took_b
Why a "just flip a boolean" router keeps breaking renders
Big H3 canvases run more than one pipeline off the same nodes - a reference rail, a single-shot rail, a multishot chain - and they share a lot of wiring. The old way to pick which one runs was a couple of manual A/B switches with hand-flipped booleans. The problem wasn't the switches, it was that they had to agree with H3 Studio's settings with nothing enforcing the agreement. Studio returns positive=None when MULTISHOT is ticked - it deliberately skips the encode - so route to the single-shot rail with multishot on and the queue dies on a None conditioning. Two ways to get a broken render, no feedback either way.
H3 Route (π H3 Route - LD, under LD / PromptMaster / Video rail, in PromptMasterLD) is the fix, and the fix is a philosophy: stop having a boolean to keep in sync. route="auto" reads the submitted prompt - the API-format graph ComfyUI is about to execute - and takes its answer from the H3StudioLD node upstream of itself. One source of truth, read at execution time. The tick and the rail cannot disagree, because there's nothing to keep in sync.
How it works
The single required input is follow, and its dropdown is where all the decisions live:
auto: multishot/auto: ref mode/auto: i2v mode/auto: ref or ext/auto: ext only/auto: ref2va (ref / ext / mp3)- each reads the relevant setting out of H3 Studio.force: A / offandforce: B / on- for testing one branch on purpose, or for driving it by hand.
Wire the two rails into a and b (both wildcard - any type, so this works on MODEL, LATENT, IMAGE, whatever you're switching), and the node passes one through. Outputs are out (the winning branch, type *), route (STRING, which branch fired) and took_b (BOOLEAN).
The lazy part is the important part. Both inputs are declared lazy and only the chosen side is ever evaluated - the dead branch never loads a model, never samples a frame. That's what makes one shared post-chain legal at all. It's inherited from the old LazySwitch design, and it's the one thing about the previous rig that was right, so it stayed.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Lora-Daddy/PromptMasterLD
cd PromptMasterLD
pip install -r requirements.txt
Restart ComfyUI, or ComfyUI Manager β search "PromptMasterLD".
What's different from the other route nodes
This is the single-wire generic switch - one out, any type. If you're switching picture and sound together, that's the sibling H3 Route AV node's job: it carries frames and audio through one decision so they can't desync, which is a real failure mode here if you run two of these in parallel and flip them differently. Use this one for the model/latent/prompt side; use Route AV when a whole AV pair has to move as a unit. And use H3 Route Probe when you want to see what routing state Studio actually produced, without executing anything.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| follow | COMBO | auto: multishot | What decides. The `auto` settings read H3 Studio out of the submitted prompt. |
| aopt | * | β | |
| bopt | * | β |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| out | * | β |
| route | STRING | β |
| took_b | BOOLEAN | β |