Nodes/ComfyUI-Flux2Klein9Mod/Load Klein9 RefMods (FLUX.2)
ComfyUI Node

Load Klein9 RefMods (FLUX.2)

Eight Slots, Three Dials, and a Dropdown That's Empty Until It Isn't

By malcolmamal·Created a day ago·Updated about 21 hours ago· 1
Load Klein9 RefMods (FLUX.2)
    • klein9_refmods
    • prompt_hint
    mod_1none
    strength_11.00
    copies_11
    mod_2none
    strength_21.00
    copies_21
    mod_3none
    strength_31.00
    copies_31
    mod_4none
    strength_41.00
    copies_41
    mod_5none
    strength_51.00
    copies_51
    mod_6none
    strength_61.00
    copies_61
    mod_7none
    strength_71.00
    copies_71
    mod_8none
    strength_81.00
    copies_81

    This is the selector: eight slots, each one pointing at a .safetensors RefMod in models/refmods-klein9/, each with its own strength and repeat count. Load here, apply downstream.

    Why bother with a bundle

    Klein handles multiple references natively - that's the capability the community concedes nothing else matches locally, and it's the reason people reach for Klein over a tag-based pipeline in the first place. The stock way to feed it five references is five VAE encodes chained into the conditioning, re-done every run. RefMods move that cost to a one-time encode. This node is what assembles the set: character A in slot 1, the jacket in slot 2, the room in slot 3, each with an independent pull. The README's claim of "full multi-character scaling" is the eight slots.

    The inputs

    Each of mod_1 through mod_8 is a dropdown over the files in models/refmods-klein9/, plus none. strength_1strength_8 run 0.0 to 3.0 in 0.05 steps and default to 1.0. copies_1copies_8 are integers from 1 to 8, default 1.

    How you actually set them. Slot 1 and slot 2 at strength 1.0 is the two-character case, and it's the shape most people run. Strength is your pull dial, and the useful advice is the same as it's always been for reference conditioning: parked at 1.0 is correct until you have a reason, and if a subject is being ignored, the answer is usually to lower the competing reference rather than raise the one you want. Above roughly 1.5 with multiple refs you're staging a fight, and the output starts showing you the loser's background.

    copies is the one the README describes only as "repeat counts" - the practical read is that it duplicates that entry in the bundle rather than scaling it, so it changes how much room a mod occupies in the sequence rather than how hard it pulls. Treat it as the dial you touch after strength, not before: one extra copy on a character sheet is a cheap experiment, and eight copies of everything is how you blow through your context and get the smear.

    prompt_hint is a string output the README doesn't explain, and the wiring diagram doesn't use it. You can wire it into a text node if you want the prompt to name what you loaded, but the documented path is just klein9_refmods → Apply. Ignore it until you want it; the Qwen3 encoder reads full sentences anyway, so naming your subjects in the prompt in plain language is the part that matters.

    Outputs: klein9_refmods and prompt_hint.

    Install

    Shared with the rest of the pack, once:

    cd ComfyUI/custom_nodes
    git clone https://github.com/malcolmamal/ComfyUI-Flux2Klein9Mod.git
    mkdir -p ComfyUI/models/refmods-klein9
    

    Restart ComfyUI. There are no model downloads here - the RefMods are either ones you extracted yourself with the Extract node or ones from the author's published library and browser space, both linked at the top of the README. ComfyUI Manager users can just search Flux2Klein9Mod instead.

    The dropdown is empty. Yes, really.

    Every mod_N will offer exactly one option - none - until models/refmods-klein9/ actually contains files. The list is built by scanning that folder when the node definition loads, so the fix is: put the .safetensors files in the folder, then refresh the node definitions (and restart if that doesn't take). If you dropped files in and still see only none, check the folder name character by character - refmods-klein9, with the hyphen - and confirm you're looking at the models/ folder belonging to the ComfyUI instance you actually launched, which is a real hazard for anyone with two installs.

    Two things that will read as this node's fault but aren't

    Wrong strength, right diagnosis. If the generated person looks like a stranger, check the retention setting in the Apply node before you start re-rolling the loader's strengths. The loader says how loud each mod is; retention says how much the whole bundle is allowed to matter. Fighting one with the other is the most common way to waste an afternoon.

    Klein's own habits. Anatomy failures are baked into the first one or two sampling steps and a fix-LoRA claws back maybe 20-30% of them; the mitigation is 8 steps at CFG 1.2–1.5, batch, and pick. And Klein edits come back slightly yellow-warm regardless of quantisation. Neither is the loader, though both get asked about here because this is the node you'll be staring at when the image comes out wrong.

    Categorymodel/conditioning/klein9

    Inputs (24)

    NameTypeDefaultDescription
    mod_1COMBOnone1 options: none
    strength_1FLOAT1.000–3
    copies_1INT11–8
    mod_2optCOMBOnone1 options: none
    strength_2optFLOAT1.000–3
    copies_2optINT11–8
    mod_3optCOMBOnone1 options: none
    strength_3optFLOAT1.000–3
    copies_3optINT11–8
    mod_4optCOMBOnone1 options: none
    strength_4optFLOAT1.000–3
    copies_4optINT11–8
    mod_5optCOMBOnone1 options: none
    strength_5optFLOAT1.000–3
    copies_5optINT11–8
    mod_6optCOMBOnone1 options: none
    strength_6optFLOAT1.000–3
    copies_6optINT11–8
    mod_7optCOMBOnone1 options: none
    strength_7optFLOAT1.000–3
    copies_7optINT11–8
    mod_8optCOMBOnone1 options: none
    strength_8optFLOAT1.000–3
    copies_8optINT11–8

    Outputs (2)

    NameTypeDescription
    klein9_refmodsKLEIN9_REFMODS
    prompt_hintSTRING