Nodes/JJMaden Random Nodes/MiniMax H3 Unified To Video (best-effort)
ComfyUI Node

MiniMax H3 Unified To Video (best-effort)

Three native H3 nodes, collapsed into one

By jjmaden·Created 27 days ago·Updated 23 days ago· 0
MiniMax H3 Unified To Video (best-effort)
  • clip
  • video_vae
  • audio_vae
  • first_frame
  • last_frame
  • references
  • picture_1
  • picture_2
  • picture_3
  • picture_4
  • video_1
  • video_audio_1
  • audio_1
  • audio_2
  • positive
  • av_latent
  • conditioned_prompt
  • media_map_json
  • report
prompt
modeauto
width1344
height768
duration5.0
fps24
ref_image_sizematch

MiniMax H3's native ComfyUI support is spread across several nodes: EmptyMiniMaxH3LatentAV makes the latent, MiniMaxH3ImageToVideo handles keyframes, MiniMaxH3ReferenceToVideo handles references. Fine for a clean text-to-video, but the moment you want keyframes and reference images and a reference video with its own audio and a standalone audio clip, you're juggling three nodes and manually keeping tag numbering consistent.

This node collapses that whole stack into one: it builds the AV latent, tags every piece of media into a single <Picture N> / <Video N> / <Audio N> sequence, and hands you ready-to-sample positive conditioning plus the av_latent in one shot.

The essential inputs:

  • clip and video_vae - your H3 text encoder and VAE.
  • prompt - the H3 prompt text.
  • mode - auto (use whatever's wired), keyframe (ignore all reference inputs), reference (ignore first/last frame), hybrid, or text (ignore all media).
  • width, height, duration, fps - generation size and length; duration is snapped to H3's frame grid.
  • ref_image_size - match scales reference images to the generation's own pixel area (cheaper); max uses H3's higher-fidelity 2048px-short-edge reference pipeline (slower, better).

Optional media inputs: first_frame / last_frame (anchored as literal keyframes at frame 0 and the final frame, like the native I2V node does), picture_14, video_1, video_audio_1, audio_1/audio_2 - and a references bundle (type H3_REFS) you can wire straight from the "Fantastic H3 Prompt Builder" pack's MiniMaxH3MediaLoader or MiniMaxH3PromptBuilder. Direct sockets win per-slot; the bundle fills in the rest, up to its own capacity (9 pictures, 3 videos, 3 paired video audios, 3 audios).

Outputs: positive (CONDITIONING), av_latent (LATENT), plus conditioned_prompt, media_map_json (a JSON summary of what was attached and how it was tagged, with a warnings list), and report for humans.

Provenance, straight up: this is a best-effort reimplementation of a node type from a privately-distributed H3 workflow with no public source. The frame/canvas/latent math is copied verbatim from ComfyUI's real native H3 nodes so shapes stay byte-for-byte compatible; the merging of keyframe and reference pathways into one unified tag sequence is inferred from a single saved prompt in the source workflow. The pack's model card rates it "medium" confidence. Treat it as a strong starting point, not a verified clone.

Two gotchas. First, the migration one: reference sockets were renamed from the old ref_image_0/ref_video_0 style to the 1-indexed picture_1/video_1/audio_1 names that match MiniMaxH3ReferenceSplitter. If you have an existing workflow, delete the node instance and place a fresh one - reloading in place won't pick up the new socket names cleanly. Second, a reference video longer than the requested output gets trimmed to fit, and both report and media_map_json tell you exactly how many frames were dropped - no silent truncation.

Install:

cd ComfyUI/custom_nodes
git clone https://github.com/jjmaden/comfyui-jjmaden-random-nodes

Restart ComfyUI, or search "JJMaden Random Nodes" in ComfyUI Manager. You need a current ComfyUI with native H3 support, plus the separately-installed siblings this pack doesn't ship (MiniMaxH3SigmaShift in core, the SageAttention patch in KJNodes, MiniMaxH3ReferenceSplitter in the Fantastic H3 Prompt Builder pack). No extra Python deps; the H3 weights are a separate large download. For the mixed-keyframe-plus-references workflow, this is the node that makes the graph readable again - one node instead of three, and one tag sequence instead of your best guess.

CategoryMiniMax H3/custom

Inputs (21)

NameTypeDefaultDescription
clipCLIP
video_vaeVAE
promptSTRING
modeCOMBOautoauto/hybrid = use whatever is wired. keyframe = ignore ref_* inputs. reference = ignore first_frame/last_frame. text = ignore all media.
widthINT134432–16384
heightINT76832–16384
durationFLOAT5.00.2–150Seconds; converted to a frame count via fps and snapped to H3's grid.
fpsINT241–60
ref_image_sizeCOMBOmatchmatch = scale refs to the generation's pixel area. max = use the 2048px reference pipeline (slower, higher fidelity).
audio_vaeoptVAE
first_frameoptIMAGE
last_frameoptIMAGE
referencesoptH3_REFSWire this straight from MiniMaxH3MediaLoader's or MiniMaxH3PromptBuilder's 'references' output instead of using a Reference Splitter. Fills in whichever picture_N/video_N/video_audio_N/audio_N slot below isn't directly wired (up to 9 pictures / 3 videos / 3 paired video_audios / 3 standalone audios).
picture_1optIMAGE
picture_2optIMAGE
picture_3optIMAGE
picture_4optIMAGE
video_1optIMAGE
video_audio_1optAUDIO
audio_1optAUDIO
audio_2optAUDIO

Outputs (5)

NameTypeDescription
positiveCONDITIONING
av_latentLATENT
conditioned_promptSTRING
media_map_jsonSTRING
reportSTRING