DHan-Minimax H3 Reference Hub
A Ref2VA Stacker That Nothing Currently Eats
- images
- h3_refs
What it is, briefly
The Reference Hub collects ref2va reference images into one payload for H3. One input - ref_image_size - plus a dynamic images input that grows a new socket every time you connect one, up to nine. Order is preserved: the first connected image becomes <Picture 1>, the ninth <Picture 9>, which is the indexing H3's own prompt syntax expects. It outputs a single h3_refs of the pack's custom DHan_H3_REFS type.
ref_image_size gives you three behaviours, and the author's tooltip is the useful part: match is recommended for the distilled Turbo models, max is the other native option, and diffusers forces the original 2048px short-edge behaviour of the reference implementation.
The nine-image ceiling isn't arbitrary - it comes from MiniMax's own model card, and the pack's planner keeps the whole reference set inside H3's limits: up to 9 images, up to 3 video clips and 3 audio clips, at most 12 files total, with ref clips 2–15 seconds each.
The honest bit
If you build a graph in the current version, that h3_refs output has nowhere to go. Since the Ref2VA rework, the Director builds its reference payload from inside itself - inline subject cards where each of up to three subjects takes a couple of images plus a description, plus the timeline's reference lanes - and it has no h3_refs input at all. Grep the shipped source and you'll find the type declared once and produced once, consumed nowhere; the Director even passes ref_image_size="match" to ComfyUI's native Ref2VA node itself rather than reading the Hub's combo.
So treat this as a leftover from the older architecture, kept so old workflows still load with the node present. It still stacks and orders images correctly, and it's harmless sitting in a graph - but if you're doing Ref2VA today, the references go on the Director. If a future build re-wires the Hub, it'll be the small node again with the big job.
When it's still worth opening
Two cases. First, legacy workflows: if you saved a graph against the pre-DHan… node IDs, you'll see missing nodes on load, and you'll be reconnecting by hand anyway - the Hub is the node to check against the current Ref2VA behaviour before you trust the old wiring. Second, ordering: nine images is a lot to keep straight, and the Hub's socket order is a readable map of what ended up as <Picture 4>. As a visual scratchpad it has value even if the output goes nowhere.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/DHan315/Comfyui-DHan-Minimax-H3-Director
# restart ComfyUI
Or ComfyUI Manager, searching the pack title. Nothing model-side is required for this node beyond H3's own weights and VAEs for the rest of the graph; the pack ships no weights, and there's no requirements.txt, though its modules import av and torchaudio at load - if one is missing in ComfyUI's Python environment, every node in the pack disappears at once.
Two small traps
The dynamic inputs are the usual autogrow behaviour: connect one image and a new empty socket appears. Leave a gap in the middle and the ordering packs tight, so don't expect a blank socket to reserve <Picture 3>. And H3's reference limits are enforced by the pack's planner on the set it actually sends - if you're stacking nine images in one place and then attaching more references elsewhere in the timeline, the ones that get dropped are the ones past the model's limit, not the last ones you connected.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| ref_image_size | COMBO | match | Ref2VA reference sizing. 'match' is recommended for the distilled Turbo models; 'diffusers' forces the original 2048px short-edge behavior. |
| imagesopt | COMFY_AUTOGROW_V3 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| h3_refs | DHan_H3_REFS | — |