JZL - 🎬 MiniMax H3 参考编码2
Same ref2va encoder, fixed ports — for workflows that want a stable layout
- clip
- 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
- positive
- LATENT
"JZL - 🎬 MiniMax H3 参考编码2" is the fixed-port twin of the pack's flagship ref2va encoder. Same encode logic, same <Picture i> / <Video k> / <Audio j> prompt tags, same ref_image_size and ref_scale options - but instead of the V3 Autogrow ports that sprout as you connect things, it exposes 18 fixed inputs: ref_image_0–ref_image_8, ref_video_0–ref_video_2, ref_video_audio_0–ref_video_audio_2, and ref_audio_0–ref_audio_2.
If you've rebuilt a ref2va workflow more than once, you know why this exists: the dynamic version is elegant while you're dragging wires, but it re-shuffles the canvas every time you add a reference. Fixed ports give you a layout that doesn't move - which is why the pack's ref bus pair ("ref2va参考总线" pack/unpack) is designed to land exactly on these names, and why the fixed-port node is the one the "Generation Manager" uses internally.
How it works
Under the hood, execute gathers the 18 named inputs back into the same dict structures the Autogrow version produces - ref_images, ref_videos, ref_video_audios, ref_audios - and calls the flagship node's core logic wholesale. So the mechanism is identical: reference images and videos are VAE-encoded (videos downsampled to 2fps with timestamps for the Qwen tokenizer, index-paired soundtracks resampled through the audio_vae), tagged references are attached as minimax_refs, and you get positive conditioning plus the empty AV LATENT out. The ref_scale extension works the same way here: an area multiplier (1.0–5.0) applied in match mode only.
The -2 in the name means "fixed-interface version," not "second generation" - and the limit of 9 images / 3 videos / 3+3 audio tracks is the same as the official ref2va encoder, so nothing extra is available by switching.
The inputs that matter
prompt- tags like<Picture 1>,<Video 2>,<Audio 3>, indexed per type from 1.clip,vae,audio_vae- required encoders; audio references needaudio_vae.ref_image_0…ref_image_8- the fixed reference slots you connect to (this is the layout the ref2va bus unpacks into).length- frame count, default 124, snapped to the17k+5temporal grid.
How to install it
Part of the JZL-MiniMax-H3 pack - ComfyUI Manager, search "ComfyUI-JZL-MiniMax-H3", or:
cd ComfyUI/custom_nodes
git clone https://github.com/wjluoxiao/ComfyUI-JZL-MiniMax-H3
Restart. It's a V3 io.Schema node, so a recent ComfyUI with comfy_api.latest is required; torch/torchaudio are the pack's audio-encode dependencies. The model itself comes from ComfyUI's official H3 loaders - and the ~42.5GB weights carry the MiniMax H3 Community License, which excludes the US, EU, UK, and South Korea from local runs.
Common issues
Reference videos under 5 frames error out (the same hard minimum as the Autogrow version). Watch the soundtrack pairing - ref_video_audio_1 must belong to ref_video_1, and it's positional, so a misordered connection gives you a clip with the wrong audio rather than a loud error. If your workflow only ever uses the same handful of references, the fixed ports are the sane choice; if you're constantly adding and removing them, the dynamic version is friendlier. Different tools, same engine.
Inputs (27)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| vae | VAE | — | |
| audio_vae | VAE | — | |
| prompt | STRING | — | |
| width | INT | 134432–16384 | — |
| height | INT | 76832–16384 | — |
| length | INT | 1245–3600 | 24fps 帧数,吸附到模型 17k+5 网格(124 ≈ 5s,训练区间约 124-362) |
| ref_image_size | COMBO | match | 参考图尺寸策略。match=按生成画布像素面积等比缩小;max=短边对齐 2048,身份保真度最高但更慢。参考 token 参与每个采样步,max 可能慢数倍。 |
| ref_scale | FLOAT | 1.01–5 | 仅 match 模式生效。参考图最终像素面积 = 生成画布面积 × 倍率(面积倍率,非分辨率倍率)。1.0=不放大,2.0=面积×2。越大保真度越高、越慢。 |
| ref_image_0opt | IMAGE | — | |
| ref_image_1opt | IMAGE | — | |
| ref_image_2opt | IMAGE | — | |
| ref_image_3opt | IMAGE | — | |
| ref_image_4opt | IMAGE | — | |
| ref_image_5opt | IMAGE | — | |
| ref_image_6opt | IMAGE | — | |
| ref_image_7opt | IMAGE | — | |
| ref_image_8opt | IMAGE | — | |
| ref_video_0opt | IMAGE | — | |
| ref_video_1opt | IMAGE | — | |
| ref_video_2opt | IMAGE | — | |
| ref_video_audio_0opt | AUDIO | — | |
| ref_video_audio_1opt | AUDIO | — | |
| ref_video_audio_2opt | AUDIO | — | |
| ref_audio_0opt | AUDIO | — | |
| ref_audio_1opt | AUDIO | — | |
| ref_audio_2opt | AUDIO | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| LATENT | LATENT | — |