Nodes/H3 Continuum/H3 Continuum Reference Images V3.9
ComfyUI Node

H3 Continuum Reference Images V3.9

H3 Continuum Reference Images V3.9

By ukr8b3g-cmyk·Created 2 months ago·Updated 3 days ago· 211
H3 Continuum Reference Images V3.9
  • reference_image_1
  • reference_image_2
  • reference_image_3
  • reference_image_4
  • reference_image_5
  • reference_image_6
  • reference_image_7
  • reference_image_8
  • reference_image_9
  • reference_images
◄reference_useAll chunks►
◄reference_r1_chunksoff►
◄reference_r2_chunksoff►
◄reference_r3_chunksoff►
◄reference_r4_chunksoff►
◄reference_r5_chunksoff►
◄reference_r6_chunksoff►
◄reference_r7_chunksoff►
◄reference_r8_chunksoff►
◄reference_r9_chunksoff►

MiniMax H3 holds a face or a location steady from a reference photo. It is also, like every video model, bounded: 4–15 seconds per generation. Past that you're chunking, and the instant you chunk a simple question appears - which photo belongs to which part of the video? This node is that question turned into a node.

What it actually is

In V3.9, every reference image in the pack goes through this helper: nine fixed IMAGE inputs, one typed output. It replaces the V3.8 arrangement, where images 1–3 plugged straight into the Sampler and images 4–9 went through a separate bundling helper. One wire, one place to look.

You reach for it when your video has a cast that changes. A character walks in at 0:20; a second location appears at 0:45; the first character comes back at 1:10. Reference conditioning is how H3 knows what those people look like; it's native in-context conditioning, not an adapter bolted on. The chunk table is how you tell it when each reference applies.

How it works

It is a bundler, and nothing else. Under the hood it packs your nine tensors, a mode string and nine selector strings into a frozen bundle and returns it. That is the whole node. It does not resize, hash or VAE-encode anything - the Sampler does all of that, including however large you want references encoded.

Two details explain most of the behaviour you'll see:

  • Slot numbers are fixed. Image 1 is always @R1, Image 9 is always @R9, even when slots 2 through 8 are empty. Nothing renumbers when you unplug a loader.
  • Chunk selectors are parsed, not guessed: off, all, comma lists (1,3,6) and ranges (1-3,6). A malformed one raises at pack time rather than quietly generating the wrong film. In All chunks mode those saved strings are ignored entirely, so stale junk in them is harmless.

The inputs and the one output that matters

Reference Use is the switch: All chunks uses every connected image throughout the sequence, Per chunk hands the decision to the in-node table (tooltip: "All chunks uses connected images throughout. Per chunk uses the assignments below."). Then Reference Image 1 (Optional) … Reference Image 9 (Optional) take your IMAGE inputs.

The nine Image N chunks fields are saved state, marked advanced, and the tooltip is blunt about it: "use the in-node table." Don't edit them by hand. In the table, rows are images and columns are chunks - it even reads the connected Sampler's Chunks value to size the grid - with an All / Off button per row to tick or clear that image everywhere. Ticks survive a round trip through All chunks and back. New chunks start unticked.

The single output is reference_images, and it goes to exactly one place: the Reference Images (Optional) input on H3 Continuum Sampler V3.9.

In Sequence Prompt you then write @R1, @R4 and so on; the backend resolves active tags into that group's real <Picture N> numbers. Two things people get wrong here: a ticked image conditions a chunk even if you never mention it, and an inactive @R tag produces a warning, not a failure.

Install

Search H3 Continuum in ComfyUI Manager, or clone it:

cd ComfyUI/custom_nodes
git clone https://github.com/ukr8b3g-cmyk/ComfyUI-H3-Continuum.git

There are no extra pip dependencies - the pack's requirements.txt explicitly installs nothing and relies on the PyTorch and safetensors that already ship with ComfyUI. After any update, fully restart the backend and hard-refresh the browser: this node has a JavaScript panel, and a browser refresh alone won't register new Python node definitions. Keep one Continuum checkout only; if Manager installed it, update through Manager instead of pulling on top.

The H3 weights are not included. Continuum is the long-form harness around ComfyUI's native MiniMax H3 support, so you still supply the model, CLIP, VAEs and - worth saying out loud - H3's community licence excludes the US, EU, UK and South Korea, so check you're allowed to run the weights locally before spending an evening on this.

Where people get burned

Seven to nine references is a memory configuration, not a free upgrade. Source images sit in RAM before any sizing rule applies downstream, so pre-resize copies to roughly 0.30 MP. The pack's own nine-reference acceptance run needed about 15.0–15.5 GiB of a 16,311 MiB card at 512×608, three 5-second chunks. Start with two or three.

Resizing lives on the Sampler, not here. Reference Image Size = Match Output scales a reference down to the output pixel area; Max Identity preserves detail up to a 2048px short edge. Neither changes your output resolution - that's Size Source / Width / Height on the Sampler.

Terminal merge. If a First/Last Image pair causes the final two logical chunks to be sampled as one physical group, both chunks need the same effective reference set, or the run reports a conflict before sampling. It won't merge your assignments for you.

And the honest limit: not assigning an image to a later chunk doesn't guarantee its subject leaves the frame. Video continuity keeps people around, which is usually what you wanted anyway.

CategoryMiniMax H3/Continuum/Input

Inputs (19)

NameTypeDefaultDescription
reference_useCOMBOAll chunksAll chunks uses connected images throughout. Per chunk uses the assignments below.
reference_r1_chunksSTRINGoffSaved assignments for Reference Image 1; use the in-node table.
reference_r2_chunksSTRINGoffSaved assignments for Reference Image 2; use the in-node table.
reference_r3_chunksSTRINGoffSaved assignments for Reference Image 3; use the in-node table.
reference_r4_chunksSTRINGoffSaved assignments for Reference Image 4; use the in-node table.
reference_r5_chunksSTRINGoffSaved assignments for Reference Image 5; use the in-node table.
reference_r6_chunksSTRINGoffSaved assignments for Reference Image 6; use the in-node table.
reference_r7_chunksSTRINGoffSaved assignments for Reference Image 7; use the in-node table.
reference_r8_chunksSTRINGoffSaved assignments for Reference Image 8; use the in-node table.
reference_r9_chunksSTRINGoffSaved assignments for Reference Image 9; use the in-node table.
reference_image_1optIMAGEFixed Image 1 / @R1. Its number never changes with other connections.
reference_image_2optIMAGEFixed Image 2 / @R2. Its number never changes with other connections.
reference_image_3optIMAGEFixed Image 3 / @R3. Its number never changes with other connections.
reference_image_4optIMAGEFixed Image 4 / @R4. Its number never changes with other connections.
reference_image_5optIMAGEFixed Image 5 / @R5. Its number never changes with other connections.
reference_image_6optIMAGEFixed Image 6 / @R6. Its number never changes with other connections.
reference_image_7optIMAGEFixed Image 7 / @R7. Its number never changes with other connections.
reference_image_8optIMAGEFixed Image 8 / @R8. Its number never changes with other connections.
reference_image_9optIMAGEFixed Image 9 / @R9. Its number never changes with other connections.

Outputs (1)

NameTypeDescription
reference_imagesH3_CONTINUUM_REFERENCE_IMAGES_V39—