Nodes//Nougan RefMod Loader
ComfyUI Node

Nougan RefMod Loader

Four characters, one H3 graph — loading baked refmods with separate face and voice strength

By Winnougan·Created 3 months ago·Updated about 16 hours ago· 10
Nougan RefMod Loader
    • mods
    • prompt_hint
    • info
    ◄mod_1▾►
    ◄strength_11.00►
    ◄copies_11►
    ◄mod_2▾►
    ◄strength_21.00►
    ◄copies_21►
    ◄mod_3▾►
    ◄strength_31.00►
    ◄copies_31►
    ◄mod_4▾►
    ◄strength_41.00►
    ◄copies_41►
    ◄show_infofalse►
    ◄max_total_tokens0►
    ◄components_1All►
    ◄visual_strength_11.00►
    ◄audio_strength_11.00►
    ◄components_2All►
    ◄visual_strength_21.00►
    ◄audio_strength_21.00►
    ◄components_3All►
    ◄visual_strength_31.00►
    ◄audio_strength_31.00►
    ◄components_4All►
    ◄visual_strength_41.00►
    ◄audio_strength_41.00►

    If you only want one character in one clip, you don't need this node - Nougan RefMod Apply loads and applies in a single step, which is why the author's own docs call Apply "the one you want in your video workflow".

    Nougan RefMod Loader is the other half, for when you want the references as data: it picks up to four baked characters, gives each slot its own strengths, and hands you mods (H3_REF_MODS) to wire wherever you like - an Apply node, or your own chain. The docs are upfront about the overlap; this is the plumbing version.

    Four slots, five dials each

    mod_1 through mod_4 are dropdowns of everything in models/refmods. (none) is a legal value, so a graph with four slots can use two. Press R on the node to re-read the folder after baking something new.

    Per slot, required: strength_N (master strength, multiplied with the face/voice pair) and copies_N (1–10 - repeats the reference, and each copy costs its full token count in every block).

    Per slot, optional: components_N (All / Visual / Audio), visual_strength_N (face), audio_strength_N (voice). The components field is the underrated one: set it to Visual and the audio tensors are never read from disk at all. For a silent clip that's free speed and free VRAM.

    Nougan's decision to separate face and voice strength is the right call for H3, because the model consumes them as distinct modalities. You can hold a face at 1.0 while letting a borrowed voice sit at 0.6, or drop visual_strength_N to 0 to use a character purely as a voice donor - genuinely useful when you want a specific timbre and no likeness obligation.

    The rest of the panel

    show_info (off) prints the per-slot token accounting. max_total_tokens (0 = no budget) fails the run if the selected refs exceed it, counted after copies - so copies_2 = 3 counts triple. That's the guard rail you want before a 4-character scene eats your afternoon.

    Outputs: mods (H3_REF_MODS), prompt_hint (STRING), info (STRING).

    prompt_hint deserves a mention. It merges each ref's concept type and description into a prompt-ready string - the descriptions you typed when you baked them. Concatenate it onto your positive prompt with a string-join node instead of retyping "the woman with the red hair and horns" every time. Refs with no description are skipped, so fill that field in at bake time if you want this to be useful.

    info is the human-readable ledger: each ref, its strength, its token cost, the total. Wire it to a Preview Any when you're tuning.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/Winnougan/Nougan_Nodes
    # restart ComfyUI
    

    Or ComfyUI Manager → "Nougan". This is part of the RefMod toolkit, which needs a ComfyUI build with MiniMax H3 support; it's the only part of the pack that can fail to load on its own (each family is isolated in its own try/except, so the rest still works). No pip dependencies.

    Typical wiring:

    Nougan RefMod Loader ──mods──► Nougan RefMod Apply ──conditioning──► sampler
                         └─prompt_hint──► string join ──► positive prompt
    

    Where people get burned

    Empty dropdown. No baked characters, or files sitting outside models/refmods. Bake one first with Nougan RefMod Bake 🧬, then hit R.

    Copies as a substitute for strength. Repeating a reference is not the same as weighting it - it multiplies the token cost by the copy count while the model just sees the same face twice. Use visual_strength_N when you want more of a face.

    Budget set too tight, then blamed on the sampler. max_total_tokens counts after copies. If the run dies with a budget error, the message tells you the required total; lower copies or drop a slot.

    Two loaders in one graph. Legal, occasionally useful, easy to confuse. If the character in the output isn't the one you picked, check you're not feeding a second Loader's mods in downstream.

    CategoryNougan/RefMod

    Inputs (26)

    NameTypeDefaultDescription
    mod_1COMBOBaked character (or any RefMod). Press R to refresh the list.
    strength_1FLOAT1.000–1Master strength for this slot, multiplied with face/voice.
    copies_1INT11–10Repeats the ref. Each copy costs its full tokens in every block.
    mod_2COMBOBaked character (or any RefMod). Press R to refresh the list.
    strength_2FLOAT1.000–1Master strength for this slot, multiplied with face/voice.
    copies_2INT11–10Repeats the ref. Each copy costs its full tokens in every block.
    mod_3COMBOBaked character (or any RefMod). Press R to refresh the list.
    strength_3FLOAT1.000–1Master strength for this slot, multiplied with face/voice.
    copies_3INT11–10Repeats the ref. Each copy costs its full tokens in every block.
    mod_4COMBOBaked character (or any RefMod). Press R to refresh the list.
    strength_4FLOAT1.000–1Master strength for this slot, multiplied with face/voice.
    copies_4INT11–10Repeats the ref. Each copy costs its full tokens in every block.
    show_infooptBOOLEANfalse—
    max_total_tokensoptINT00–10485760 = no budget. Counted after copies.
    components_1optCOMBOAllWhich parts of a baked character to load. Unused parts are never read from disk.
    visual_strength_1optFLOAT1.000–1Face / visual strength. 0 skips loading the visuals.
    audio_strength_1optFLOAT1.000–1Voice / audio strength. 0 skips loading the audio.
    components_2optCOMBOAllWhich parts of a baked character to load. Unused parts are never read from disk.
    visual_strength_2optFLOAT1.000–1Face / visual strength. 0 skips loading the visuals.
    audio_strength_2optFLOAT1.000–1Voice / audio strength. 0 skips loading the audio.
    components_3optCOMBOAllWhich parts of a baked character to load. Unused parts are never read from disk.
    visual_strength_3optFLOAT1.000–1Face / visual strength. 0 skips loading the visuals.
    audio_strength_3optFLOAT1.000–1Voice / audio strength. 0 skips loading the audio.
    components_4optCOMBOAllWhich parts of a baked character to load. Unused parts are never read from disk.
    visual_strength_4optFLOAT1.000–1Face / visual strength. 0 skips loading the visuals.
    audio_strength_4optFLOAT1.000–1Voice / audio strength. 0 skips loading the audio.

    Outputs (3)

    NameTypeDescription
    modsH3_REF_MODS—
    prompt_hintSTRING—
    infoSTRING—