DHan-H3 Guider
One Wire Decides Whether You're Paying for CFG at All
- model
- positive
- negative
- guider
What it is
A small node with one job: pick the right guider for the sample, without you having to rewire the graph when you decide you want a negative prompt. Connect the Director's negative output and it can switch to CFG; leave it off and it behaves exactly like ComfyUI's stock BasicGuider.
Why that's worth a node
Negative prompting on H3 is the classic distilled-model trap. Classifier-free guidance normally runs a second unconditioned pass at every step, and your negative prompt just replaces the empty string in that pass - that's why it's free once CFG is above 1 and completely inert at CFG 1, where ComfyUI skips computing the pass at all. On distilled checkpoints, "CFG 7 and a page of quality tags" is the habit that ruins outputs, and H3 - a turbo-friendly video model where doubling the passes also means doubling a very slow render - is exactly the place you don't want CFG on by default.
So the pack defaults to no CFG. This node is the escape hatch.
How it works
The Guider doesn't guess anything. When the Director builds its negative conditioning, it stamps two flags into that conditioning's metadata: whether negative prompting is switched on, and whether the negative text is actually non-empty. DHanH3Guider.execute reads them:
- negative connected, prompting enabled, and there's text →
CFGGuider(model, positive, negative, cfg) - anything else →
BasicGuider(model, positive)
It logs which path it took, so don't sit there squinting at a render wondering why cfg moved nothing - the console says Director Negative Prompt ON -> CFG mode, cfg=2.00 or Negative Prompt enabled but empty -> BasicGuider. The Director's switch is the single source of truth; there's no second setting to keep in sync.
Inputs and output
model- the Director'smodeloutput (i.e. the sigma-shifted patched model). If you're using the Preview Override, this comes from itsmodeloutput.positive- the Director'spositive.negative- optional, and the whole reason to use this node. Wire the Director'snegativehere.cfg- 1 to 20, default 2.0. The author's own tooltip is blunt about it: it's used when negative prompting is ON and ignored while OFF. Two is the intended ballpark; 2.0 here is not the same as 7 in an SDXL graph.guider- out toSamplerCustomAdvanced.guider, or to the Long Sampler'sguiderif you're going past 15 seconds.
Install
Same pack, same procedure:
cd ComfyUI/custom_nodes
git clone https://github.com/DHan315/Comfyui-DHan-Minimax-H3-Director
# restart ComfyUI
Or install it through ComfyUI Manager by searching the pack title. No models required by this node, no requirements.txt in the repo - but the pack's modules do import av and torchaudio at load time, so a missing one takes the whole pack down at startup.
Where people get burned
The number one mistake is skipping the negative wire, then wondering why negative prompts do nothing. No negative conditioning means no flags, which means BasicGuider, which means the cfg knob is decorative. Second: turning the Director's Negative Prompting switch on and leaving the text box empty - that still lands on BasicGuider, deliberately.
Third, a wiring one: if you build sigmas from one model and sample through a guider holding another, you won't get an error, you'll get a slightly wrong clip. Route model to the Guider and the Sampling Preset from the same point in the graph and that can't happen. Finally, if you're going long, the Long Sampler keeps Basic/CFG mode consistent across continuation windows - but only if the Guider is wired correctly in the first place.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| positive | CONDITIONING | — | |
| cfg | FLOAT | 2.01–20 | Automatically used when the Director Negative Prompt switch is ON. Ignored while OFF. Default: 2.0. |
| negativeopt | CONDITIONING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| guider | GUIDER | — |