LC MiniMax H3 Pipe V2
MiniMax H3 Has Forty Sockets. This Node Makes Them One Wire.
- pipe
- fl2va_model
- fl2va_clip
- ref2va_model
- ref2va_clip
- video_vae
- audio_vae
- ref_image_0
- ref_image_1
- ref_image_2
- ref_image_3
- ref_image_4
- ref_image_5
- ref_image_6
- ref_image_7
- ref_image_8
- ref_video_0
- ref_video_1
- ref_video_2
- ref_video_audio_0
- ref_video_audio_1
- ref_video_audio_2
- ref_audio_0
- ref_audio_1
- ref_audio_2
- pipe
Wire a MiniMax H3 graph by hand once and you'll see why this node exists. H3 isn't an image-to-video model with a prompt box. It treats text, images, video and audio as one context, so a real graph needs a first-last-frame UNET and a reference-to-video UNET, each with its own CLIP, a video VAE, an audio VAE, size and length, nine reference image slots, three reference videos, three video-audio tracks and three audio refs. LCMiniMaxH3PipeV2 bundles that whole input surface into one LC_H3_PIPE_V2 object.
Why bother, when wires work fine
Because the reference surface is the point of H3. It landed in late July 2026 as a 33B omni-modal video model with native stereo audio - the first credible open-weight answer to Veo's audio advantage - and the part people got excited about was reference-to-video: drop your images, a clip and an audio track in, get motion out. Nine ref image slots exist because people use them.
The bundle-everything node is a pattern, not an invention - rgthree calls it a Context, Easy-Use calls it a pipe, and no pack's bus talks to another's. Its failure mode is stale contents: the wire is there, the value inside it is old. So unpack early and check what's actually in there, which is what LCMiniMaxH3PipeOutV2 is for.
How it works
Everything here is a forceInput socket: you wire values in rather than typing them, because those fields already exist upstream and retyping them is how you end up debugging a number you didn't set.
The pipe input takes three different things:
- another
LC_H3_PIPE_V2, merged field by field; - a V1
LC_H3_PIPE, which it upgrades - reference media carries over, sampling fields stay unset until you wire them here, because V1 never had them; - an
LC_PIPEfrom Aspect Ratio Simplifier or LC Pipe, in which case onlywidthandheightare copied. Nothing else.
That third case trips people up: your ARS pipe sets canvas size, not clip length or frame rate. Those still need their own wires.
The socket uses comma-joined type strings (LC_H3_PIPE_V2,LC_H3_PIPE,LC_PIPE) - that's what makes a fresh drag from Aspect Ratio Simplifier connect in the UI, not just pass backend validation. V2 is a separate class with its own socket type, so the original H3 Pipe nodes and your existing workflows keep working exactly as before.
Output is one LC_H3_PIPE_V2 socket.
The sockets worth caring about
The model side is fl2va_model / fl2va_clip (first-last-frame to video) and ref2va_model / ref2va_clip (reference to video). The tooltips name MiniMaxH3ImageToVideo and MiniMaxH3ReferenceToVideo as the consumers, which is how core ComfyUI splits H3. Then video_vae and audio_vae - two of them, because the audio is generated, not muxed in later.
Size is width (default 1344), height (768), length (124 frames - at H3's 24fps that's roughly 5 seconds, and the tooltip pegs 244 at 10) and frame_rate (24, what the model was trained at; don't get creative).
V2 adds prompt, total_steps, cfg, sampler_name and scheduler, sitting between frame_rate and ref_image_0, with the same names and defaults as LC Sampler Configure Simple - 40 steps, cfg 8, euler, normal. If you already run a sampler-configure node, the pipe just carries it.
Then the reference block: ref_image_0–ref_image_8, ref_video_0–ref_video_2, ref_video_audio_0–ref_video_audio_2, ref_audio_0–ref_audio_2. Fixed slots, no autogrow.
Install
ComfyUI Manager → search ComfyUI LC123 Nodes, or:
cd ComfyUI/custom_nodes
git clone https://github.com/lonecatone23/ComfyUI_LC123_nodes.git
Restart after. There is no requirements.txt in this repo - the clone confirms it, and pyproject.toml declares no dependencies either. It runs on the torch and numpy ComfyUI already ships, so there's no pip step and none of the dependency-conflict roulette this ecosystem usually charges. Two gotchas: __init__.py must sit directly in custom_nodes/ComfyUI_LC123_nodes/ (zipped installs love to double-nest), and hard-refresh the browser after any web/ JS update.
Where people get burned
- You can't type anything. ForceInput sockets, all of them. Missing value means wire it.
- Prompt tags are 1-based, sockets are 0-based.
<Picture 1>isref_image_0. The README says this out loud because everyone gets it wrong once. - Reference video needs at least 5 frames for native Ref2V. Three frames isn't a reference, it's an error.
- The ARS shortcut is size-only. Length and frame rate still come from the node's defaults unless you wire them.
- H3 is heavy. 33B parameters, ~42.5GB of weights, and the launch threads were full of people asking whether their 3060 had any chance. Quantization gets it onto a 5090. The Community Licence also excludes the US, EU, UK and South Korea - your problem, not the node's.
- Nobody writes about this pack. There's effectively no community coverage of LC123 - no threads, no tutorials, just the author's repo. You're working from the README and the source. Test on a throwaway graph first.
Inputs (34)
| Name | Type | Default | Description |
|---|---|---|---|
| pipeopt | LC_H3_PIPE_V2,LC_H3_PIPE,LC_PIPE | H3 Pipe V2 to merge, a V1 H3 pipe to upgrade (reference media only -- sampling fields stay unset until wired via this node's own sockets), or Aspect Ratio Simplifier / LC Pipe (width + height only). | |
| fl2va_modelopt | MODEL | First-last-frame to video UNET. | |
| fl2va_clipopt | CLIP | CLIP for FL2VA (MiniMaxH3ImageToVideo). | |
| ref2va_modelopt | MODEL | Reference-to-video UNET. | |
| ref2va_clipopt | CLIP | CLIP for REF2VA (MiniMaxH3ReferenceToVideo). | |
| video_vaeopt | VAE | Video VAE (MiniMax vae). | |
| audio_vaeopt | VAE | Audio VAE (MiniMax audio_vae). | |
| widthopt | INT | 134416–16384 | Video width. ARS pipe on pipe fills this. |
| heightopt | INT | 76816–16384 | Video height. |
| lengthopt | INT | 1245–3600 | Frame count. H3 is 24 fps; 124 ≈ 5s, 244 ≈ 10s. |
| frame_rateopt | INT | 241–120 | Frame rate. MiniMax H3 is trained at 24. |
| promptopt | STRING | Positive prompt text. | |
| total_stepsopt | INT | 401–10000 | Sampling steps. |
| cfgopt | FLOAT | 8.00–100 | Classifier-free guidance scale. |
| sampler_nameopt | COMBO | Sampler algorithm. | |
| scheduleropt | COMBO | Noise schedule. | |
| ref_image_0opt | IMAGE | ref_image_0 | |
| ref_image_1opt | IMAGE | ref_image_1 | |
| ref_image_2opt | IMAGE | ref_image_2 | |
| ref_image_3opt | IMAGE | ref_image_3 | |
| ref_image_4opt | IMAGE | ref_image_4 | |
| ref_image_5opt | IMAGE | ref_image_5 | |
| ref_image_6opt | IMAGE | ref_image_6 | |
| ref_image_7opt | IMAGE | ref_image_7 | |
| ref_image_8opt | IMAGE | ref_image_8 | |
| ref_video_0opt | IMAGE | ref_video_0 | |
| ref_video_1opt | IMAGE | ref_video_1 | |
| ref_video_2opt | IMAGE | ref_video_2 | |
| ref_video_audio_0opt | AUDIO | ref_video_audio_0 | |
| ref_video_audio_1opt | AUDIO | ref_video_audio_1 | |
| ref_video_audio_2opt | AUDIO | ref_video_audio_2 | |
| ref_audio_0opt | AUDIO | ref_audio_0 | |
| ref_audio_1opt | AUDIO | ref_audio_1 | |
| ref_audio_2opt | AUDIO | ref_audio_2 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pipe | LC_H3_PIPE_V2 | — |