ComfyUI Node

H3 GuideMaster

The timeline controller MiniMax H3 actually needed

By MajoorWaldi·Created 3 days ago·Updated 2 days ago· 17
H3 GuideMaster
  • positive
  • latent
  • frame_count
  • vae
  • audio_vae
  • first_frame
  • last_frame
  • reference_media
  • audio_reference
  • guide_images
  • guide_audios
  • positive
  • latent
timeline_json{"version":2,"fps":24,"timeline":{"frame_count":124,"selected_frame":0},"guides":[]}

If you've generated with MiniMax H3 in ComfyUI for more than a day, you've hit the wall: the model wants guides - images and audio placed at specific frames - but the native nodes make you wire MiniMaxH3AddGuide per clip, one node per keyframe, and keep the frame math straight in your head. H3 GuideMaster (by MajoorWaldi, the same person behind ComfyUI-Majoor-AssetsManager) replaces that whole tangle with one node that owns a timeline.

It's a thin layer on purpose. The AGENTS.md in the repo is explicit: it compiles your visual guides into native minimax_keyframes conditioning and your audio guides into native keyframe audio_latent, and it never forks the model or monkey-patches core. The node reads its own serialized timeline state (the timeline_json input), figures out which of your guide_image_N / guide_audio_N slots sit at which frames, encodes them through the video/audio VAEs, and hands everything back to the standard H3 guider and sampler. The latent passes through untouched - this node is an editor, not a generator.

The H3 frame grid is the whole trick

H3's temporal tokens decode in a 1,4,4,4,4 pattern, so pixel frames land on a 5, 22, 39, 56, 73... grid. The node's default H3 5 + 17f snapping mode understands this: new guides auto-place on the first free grid position (F5, then F22, then F39...), and a FLOAT duration in seconds gets aligned to the same grid at 24fps - README's example: 10.0 seconds becomes 243 frames. You can dial snapping down to 1 frame or step by 6/12/24 if you want more granular control. This is the node's real value: it stops you from placing a guide on a frame H3 will never hit. It's also defensive - it checks ComfyUI's current H3 timing constants at runtime and refuses to guess if upstream changes them.

The inputs that matter

  • positive / latent - wire these straight from your H3 workflow. The node stuffs the compiled keyframes into positive and passes latent through unchanged.
  • vae and audio_vae - needed only if you use visual or audio guides respectively. Forgot the video VAE with an image guide in? You get a hard error, not silent weirdness.
  • guide_image_0, guide_image_1, ... and guide_audio_0, ... - the autogrowing slots for your clips. Same slot number on both = one combined audio/video guide.
  • first_frame / last_frame - AddGuide-style anchors for the start and end images. Handy for a locked-in shot with a middle you let the model fill.
  • Frames - an INT is an exact frame count; a FLOAT is seconds, converted at 24fps and grid-aligned. If the timeline ever seems stuck at 124, this is where to look: it means no frame-count control is actually connected.

Both outputs - positive and latent - go into the H3 guider/sampler exactly as your original would have.

Installing it

ComfyUI Manager: search "H3 GuideMaster". Or the manual route:

cd ComfyUI/custom_nodes
git clone https://github.com/MajoorWaldi/ComfyUI-Majoor-H3-GuideMaster

Then restart ComfyUI; the node lives under Majoor / MiniMax H3. The pack itself has zero dependencies (dependencies = [] in pyproject), so don't go hunting for wheels. What does matter is ComfyUI being current - the node hard-requires the native MiniMaxH3AddGuide from ComfyUI PR #15439, so if you get a "requires native MiniMaxH3AddGuide" error, update ComfyUI, not this pack. You'll still need the H3 weights and both VAEs from the usual workflow, and heads-up if you're in the US, EU, UK or Korea: the H3 Community License geofences the local weights out of those regions, no matter how well your timeline compiles.

Where people get burned

  • Timeline stays at 124 - nothing connected to Frames. Connect an INT/FLOAT control or type a count.
  • Guide doesn't show up - the slot referenced by the timeline isn't connected. Check the guide_image_N / guide_audio_N number matches.
  • "needs the video VAE input" - you placed a visual guide without wiring vae. Same story with audio_vae and audio.
  • Guide "does not fit" - an image-batch clip starting too late would overflow the video's frame count; move it earlier.

One genuinely nice touch: reference_media and audio_reference are preview-only. They render a filmstrip and waveform in the browser so you can place guides against real footage, but they never touch the compiled output - the node literally discards them in execute(). For a brand-new pack this is unusually well-built: opinionated defaults, hard failures instead of silent drift, and a UI that does what you'd hope. If you're doing anything fancier than a single-shot H3 prompt, this is the node to reach for.

CategoryMajoor/MiniMax H3

Inputs (12)

NameTypeDefaultDescription
positiveCONDITIONING
latentLATENT
timeline_jsonSTRING{"version":2,"fps":24,"timeline":{"frame_count":124,"selected_frame":0},"guides":[]}GuideMaster serialized timeline state. Normally edited by the custom timeline UI.
frame_countINT,FLOAT1241–3600INT sets the frame count. FLOAT sets duration in seconds and aligns it to native H3 timing.
vaeoptVAEVideo VAE; required only for visual guide slots.
audio_vaeoptVAEAudio VAE; required only for audio guide slots.
first_frameoptIMAGEOptional AddGuide-style visual anchor at frame 0 (IN). Requires the video VAE.
last_frameoptIMAGEOptional AddGuide-style visual anchor at the final target frame (OUT). Requires the video VAE.
reference_mediaoptIMAGE,VIDEOPreview-only filmstrip reference: a VIDEO loader or an IMAGE batch. The UI samples it in the browser to build reference frames without running the graph. It never affects the compiled guides or latent.
audio_referenceoptAUDIOPreview-only waveform reference. The UI decodes the connected audio file in the browser and draws it under the timeline ruler. It never affects the compiled guides or latent.
guide_imagesoptCOMFY_AUTOGROW_V3Visual guide slots referenced by the GuideMaster timeline.
guide_audiosoptCOMFY_AUTOGROW_V3Audio guide slots referenced by the GuideMaster timeline.

Outputs (2)

NameTypeDescription
positiveCONDITIONING
latentLATENT