ComfyUI Node

Fantastic H3 RefMod Apply

Bolt your saved references onto conditioning you encoded elsewhere

By Adudeguyman·Created about a month ago·Updated about 18 hours ago· 151
Fantastic H3 RefMod Apply
  • conditioning
  • mods
  • conditioning
retention1.00
max_total_tokens0

What it does, and when it's the right one

This node takes H3 conditioning you already have and appends RefMod references to it. That's the whole job. It's the escape hatch for graphs that do their own text encoding - a CLIP encode chain of your own, a hacked-up workflow, someone else's template you don't want to rewire - and just need your saved character or voice attached on the way to the sampler.

The trade-off is in the name of the node's own description: the prompt cannot name these references. There are no <Picture 1> labels here, because nothing was presented to the tokenizer as a reference item. The model still sees them; you just can't point at them in prose. If you want your prompt to say "the woman in <Video 1>", that's Fantastic H3 RefMod Text Encode, not this.

How it works

For every entry in the bundle it builds a reference block - the same shape ComfyUI's own H3 nodes construct - and appends them to each conditioning entry's minimax_refs metadata. Then it marks them as RefMod-sourced, which is what lets a step-curve wrapper downstream find them if you're using one.

retention is one multiplier applied to every entry's strength at once. It's clamped to 1, and here's the bit worth internalising: strength below 1 softens a reference toward a blurred copy of itself, it doesn't shrink it. So retention is a global "how hard is the model looking at my references" dial you can ride down, not a way to boost them. Entries whose strength lands at zero are dropped entirely.

max_total_tokens is the safety rail, same convention as the rest of the pack: 0 means no limit, anything else refuses the run with a count instead of letting you discover the cost by waiting.

The inputs and outputs

  • conditioning - required, and the thing you're decorating.
  • mods - the bundle, from Fantastic H3 RefMod Stack or the Prompt Builder's mods output.
  • retention - master multiplier, 0 to 1, default 1.
  • max_total_tokens - refuse bundles over this size; 0 disables.
  • Output: conditioning, one wire, into whatever consumes conditioning next.

Install

Search Fantastic H3 Prompt Builder in ComfyUI Manager, or:

cd ComfyUI/custom_nodes
git clone https://github.com/Adudeguyman/ComfyUI-Fantastic-MiniMaxH3-PromptBuilder

Restart ComfyUI fully. ComfyUI 0.30.0 or newer, H3 checkpoints and the H3 video VAE, and the pack's single av dependency. RefMods themselves are made in this pack's library (or with the upstream ComfyUI-MiniMaxH3Mod - the bundle type is shared both ways).

Where people get burned

Double-applying is the classic. If your conditioning came out of RefMod Text Encode, it already has the references on it. Adding this node with the same bundle sends everything twice. Same story if you chain two Apply nodes. The symptom isn't an error, it's a generation that got mysteriously slow and heavy.

Second: this doesn't validate where your conditioning came from. Feed it conditioning that wasn't produced by an H3 encoder and the blocks are just dead weight the model can't use. Nothing complains; your character simply doesn't show up.

Third, the label expectation. People wire this up, write <Picture 1> in their prompt, and wonder why the model ignores it. There is no numbering without an encoder that knows about the references - use Text Encode for that, and read its reference_map output if you're unsure which reference is which.

Categoryconditioning/video_models

Inputs (4)

NameTypeDefaultDescription
conditioningCONDITIONING
modsH3_REF_MODS
retentionFLOAT1.000–1Master multiplier on every entry's strength. 1 = as picked.
max_total_tokensINT00–2147483647Refuse bundles over this many reference tokens. 0 = no limit.

Outputs (1)

NameTypeDescription
conditioningCONDITIONING