VRGDG RefMod Combine
Stack a character and an audio reference into one bundle the encoder accepts
- mods_1
- mods_2
- mods_3
- mods_4
- mods_5
- mods_6
- mods
RefMod is the pack's word for a reference module: a small .safetensors file that carries a distilled idea of something - a face, an outfit, a background, a voice - that you attach to a text encode so the model knows what you're talking about. MiniMax H3 supports several at once, and up to a point that's the whole appeal: character plus clothing plus location, all held at once.
The problem is that each loader hands you a bundle, and the encoder takes one bundle input. VRGDG RefMod Combine is the two-line node that squashes them together.
It takes up to six optional H3_REF_MODS inputs - mods_1 through mods_6 - and returns a single mods. It concatenates in input order, which is the only behaviour it has. If you've used any kind of conditioning-combine node in ComfyUI before, this is that pattern, just for H3 reference bundles.
Why input order matters
Order is preserved, not sorted, and that's a decision you should make on purpose rather than by dragging wires.
The bundle list order is the order the encoder walks your references, so the thing you connect to mods_1 is the thing most likely to dominate the result. Put the character first and the location second and you get a character standing in a place. Reverse them and, at worst, you get a character who looks like the room. It's not a hard rule - every model reacts a bit differently - but if a combination is coming out with the wrong influence, swapping two inputs is a free experiment before you start touching strengths.
The node also refuses to cooperate with an empty graph: connect nothing and it raises with a message telling you to connect at least one bundle. That's more useful than emitting an empty list and letting the encode fail cryptically three nodes later.
Where this fits in a RefMod graph
The load path is: RefMod Image Picker (or a RefMod file loader) → an H3 RefMod bundle, and typically RefMod Describe to write the text description the bundle stores. Then Combine → the mods input of Text Encode with RefMods, wired alongside your prompt.
If you only ever use one RefMod, you don't need this node - connect the loader straight to the encoder. Combine earns its place the moment you have two, and it's basically mandatory for the audio case: a music-video workflow might hold a character RefMod plus an audio RefMod (whose metadata lives under a separate audio_refmod_meta key) plus a style mod, and those come from three different sources with no other way to reach the encoder at once.
Note the six-input ceiling. Six is plenty for most people, and if it isn't, chain two Combines - the output type is the same as the inputs, so they stack.
Install
ComfyUI Manager → search vrgamedev, or:
cd ComfyUI/custom_nodes
git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl
Restart ComfyUI and hard-refresh the browser - the pack ships a fair amount of front-end JS and an old cached tab is the usual reason a freshly installed node "isn't there".
No models, no pip packages for this node. The heavy entries in the pack's requirements.txt (demucs, stable-ts, torchcodec, transformers, llama-cpp-python) belong to the Builder, the audio tooling and TTS, and llama-cpp-python in particular can try to build from source on Windows. Skip the file if Combine is all you want, and install it deliberately if you want the rest.
You do need the H3 RefMod ecosystem around it: an H3-capable ComfyUI, the RefMod loader nodes, and RefMods that actually exist on disk - the pack reads them from a registered refmods folder, models/refmods, or its own ComfyUI-MiniMaxH3Mod/mods directory. A Combine node with three wires into it and zero RefMod files installed gives you a graph that looks correct and does nothing.
Troubleshooting
The failure mode specific to combining is redundancy, not error. Stack three RefMods that all describe the same face and the influence doesn't triple - it oversaturates, and the result gets waxy and over-defined. Two well-chosen references beat four overlapping ones. That's true of reference-based conditioning generally: the technique works because the model is looking at evidence, and evidence that agrees with itself to excess stops being evidence.
If the encode seems to be ignoring one of your bundles, check that it's the one wired into a low mods_N slot and that its file's concept type matches what you meant it to do. VRGDG RefMod Metadata will tell you what a RefMod actually stores, without loading its tensors - which is a much better use of two minutes than guessing from the filename.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| mods_1opt | H3_REF_MODS | — | |
| mods_2opt | H3_REF_MODS | — | |
| mods_3opt | H3_REF_MODS | — | |
| mods_4opt | H3_REF_MODS | — | |
| mods_5opt | H3_REF_MODS | — | |
| mods_6opt | H3_REF_MODS | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| mods | H3_REF_MODS | — |