Nodes/Nynxz H3/H3 Inputs
ComfyUI Node

H3 Inputs

Several H3 references on one node — no spaghetti

By Nynxz·Created about a month ago·Updated 25 days ago· 4
H3 Inputs
  • first_frame
  • last_frame
  • pictures
  • audios
  • h3_inputs
  • h3_inputs
  • report
sizeauto

H3 is an omni-modal model: it takes text, images, video and audio as one big context and generates a clip with all of it in mind. That's powerful and, if you wire each reference as its own node, ugly. H3 Inputs is the pack's answer - keyframes, reference pictures and reference audio all on one node, with slots that grow as you fill them.

How it works

The node hands you first_frame, last_frame, and two autogrow groups: pictures (up to 9) and audios (up to 4). Each filled slot names the tag it answers to - the second picture slot is <Picture 2> - and that tag is exactly what you type in your prompt on H3 Encode. Reference video goes on the separate H3 Video node, not here, because a video is four coupled values (frames, fps, soundtrack, detail) that an autogrow slot can't hold.

Everything chains through the h3_inputs wire, in either direction. The report output shows the real tag each slot ended up with, which matters because anything wired upstream shifts the numbering - if an H3 Image upstream already occupies picture 1, this node's first slot quietly becomes <Picture 2>.

The inputs that matter

  • first_frame / last_frame - the keyframes. Wiring either one switches H3 Encode to the fl2va task: the clip opens on the first frame, closes on the last, or both. Only images can be keyframes.
  • pictures - reference images with no fixed position: identity, style, characters. Referenced as <Picture i>.
  • audios - soundtrack or voice references. Referenced as <Audio j>, and they need the audio VAE wired on H3 Encode.
  • size - how much detail the reference pictures are fed in at. auto follows the workflow default, max feeds them at up to 2048px for the best identity - and costs several times more, because reference rows ride every sampling step. Keyframes are always canvas-sized and ignore this.

The one rule you can't break

fl2va (keyframes) and ref2va (references) cannot be combined. That's a ComfyUI constraint, not this pack being difficult - the tokenizer branches on which kind of items you pass, and forcing both produces a crash deep inside the DiT. If you wire both, keyframes win, the reference pictures still reach the text encoder as <Picture i> blocks but contribute no identity pressure, and H3 Encode's report names what got set aside. That "set aside" note is the thing to read before you wonder why your reference stopped mattering.

Install

ComfyUI Manager → "Nynxz H3", or:

cd ComfyUI/custom_nodes
git clone https://github.com/Nynxz/ComfyUI-NynxzH3

Restart. Pure Python, no dependencies, but it needs ComfyUI 0.30.0+ and the H3 weights themselves. One health warning while you're here: this pack is brand new and H3 itself only dropped its weights recently, so treat any workflow you copy as untested-by-many. The report output is your honest friend - read it when results look wrong before changing the sampler.

CategoryNynxz/H3

Inputs (6)

NameTypeDefaultDescription
sizeCOMBOautoHow much detail the reference pictures are fed in at. Reference rows are processed on every sampling step, so 'max' costs several times more. Applies to the pictures here, not to the keyframes, which are canvas-sized.
first_frameoptIMAGEOpens the clip. Wiring either keyframe selects H3's fl2va task, which cannot be combined with references — H3 Encode's report says what it set aside.
last_frameoptIMAGECloses the clip. Can be used with or without a first frame.
picturesoptCOMFY_AUTOGROW_V3
audiosoptCOMFY_AUTOGROW_V3
h3_inputsoptNYNXZH3_INPUTAnother H3 node upstream. Its assets come first, then this one's.

Outputs (2)

NameTypeDescription
h3_inputsNYNXZH3_INPUT
reportSTRINGThe tag each slot ended up with, counting anything wired upstream.