MiniMax H3 Multi-Keyframe Conditioning / 多关键帧条件 (Advanced)
First frame, last frame, and the keyframes in between — one conditioning node
- model
- clip
- video_vae
- audio_vae
- drive_audio
- final_audio
- first_frame
- last_frame
- keyframe_plan
- ref_images
- ref_videos
- ref_video_audios
- ref_audios
- model
- positive
- av_latent
- mux_audio
- conditioned_prompt
- media_map_json
- keyframe_map_json
- report_json
Standard MiniMax H3 image-to-video conditioning gives you a first frame, or a first and last frame for FL2VA. What if you want control in the middle of the timeline too? That's the gap MiniMaxH3MultiKeyframeConditioningT8Advanced fills: it's an opt-in Advanced conditioning node for FL2VA/Hybrid work that takes first, last, and chained middle timeline keyframes, and hands you a scoped, conditioned model plus a ready joint latent. It's the "multi-keyframe" counterpart to the pack's stable single-keyframe conditioning - opt-in by design, because it clones your MODEL and applies scoped H3 patches, and the author wants old workflows to keep loading exactly as they were.
The cloning detail is the safety story. The node takes your H3 MODEL and returns a scoped clone - the patch applies to this instance only, so your original model node and any saved workflows that reference it stay untouched. The stable Conditioning node in the pack remains unchanged; this is strictly the Advanced/experimental lane.
Inputs that matter
model,clip,video_vae,audio_vae- your H3 model, Qwen3-VL CLIP, and both VAEs. This is a joint AV conditioning node, so audio VAE is required.prompt- use H3's media tags (<Picture N>,<Video N>,<Audio N>) to reference connected media;strict_prompt_tags(true) enforces them.width(1344),height(768),length(124) - the generation geometry; length snaps up to the 17n+5 H3 grid at 24fps.task_type-autoby default. The tooltip is important: middle timeline keyframes require both first and last frames; use Hybrid when reference media is also connected.first_frame/last_frame/keyframe_plan- the timeline anchors.keyframe_plan(typeH3_T8_KEYFRAME_PLAN) carries the chained middle keyframes.audio_mode-lock_sourceby default, matching the pack's advice: if you want to keep source audio, lock it and reference the actual<Audio N>tag.drive_audiois a joint generation condition, not a deterministic lip-sync constraint.first_frame_noise_aug/last_frame_noise_aug/reference_visual_noise_aug- raw H3 values (all 0.999). The tooltip warns these are raw model values, not calibrated strengths; keep them unless you're running a controlled A/B.- Optional reference inputs:
ref_images,ref_videos,ref_video_audios,ref_audios, plusdrive_audioandfinal_audio.
Outputs
model (the scoped clone), positive (CONDITIONING), av_latent, mux_audio - and this one matters: the README is emphatic that when you use lock_source, you must save with mux_audio, not AV Decode's generated_audio, or your locked source audio never reaches the file. Plus conditioned_prompt, media_map_json, keyframe_map_json, report_json for the binding audit.
Install and where it fits
Pack install once: ComfyUI Manager → search MiniMax H3 Audio T8, or git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8 into ComfyUI/custom_nodes/, restart. No pip extras, no model downloads.
The honest framing: this is the experimental lane for people who need timeline control H3's stock conditioning doesn't offer. The noise_aug fields are raw internals exposed - that's Advanced-labeled for a reason. Start from the pack's 08-multi-keyframe example workflows, keep task_type honest (auto when simple, Hybrid with references, and never expect middle keyframes without both anchors), and remember drive_audio guides rather than locks lips.
Inputs (28)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | MiniMax H3 MODEL; the output is a scoped clone. | |
| clip | CLIP | Native MiniMax H3 Qwen3-VL CLIP. | |
| video_vae | VAE | MiniMax H3 video VAE. | |
| audio_vae | VAE | MiniMax H3 audio VAE. | |
| prompt | STRING | — | |
| width | INT | 134432–16384 | — |
| height | INT | 76832–16384 | — |
| length | INT | 1245–3600 | 24fps; snapped up to the 17n+5 H3 grid. |
| task_type | COMBO | auto | Middle timeline keyframes require both first and last frames. Use Hybrid when reference media is also connected. |
| audio_mode | COMBO | lock_source | 4 options: lock_source, remix_source, reference_only, native |
| audio_denoise_strength | FLOAT | 0.350–1 | — |
| add_source_as_reference | BOOLEAN | true | — |
| prompt_primary_audio_ordinal | INT | 10–9 | — |
| strict_prompt_tags | BOOLEAN | true | — |
| ref_image_size | COMBO | match | 2 options: match, max |
| reference_video_policy | COMBO | official_2_to_15s | 2 options: official_2_to_15s, model_minimum |
| first_frame_noise_aug | FLOAT | 0.9990–1 | Raw H3 value for the first timeline frame, not a calibrated strength percentage. Keep 0.999 unless running a controlled A/B. |
| last_frame_noise_aug | FLOAT | 0.9990–1 | Raw H3 value for the last timeline frame, not a calibrated strength percentage. Keep 0.999 unless running a controlled A/B. |
| reference_visual_noise_aug | FLOAT | 0.9990–1 | One raw H3 value shared by non-timeline image/video reference blocks; not an independent or calibrated strength percentage. |
| drive_audioopt | AUDIO | — | |
| final_audioopt | AUDIO | — | |
| first_frameopt | IMAGE | — | |
| last_frameopt | IMAGE | — | |
| keyframe_planopt | H3_T8_KEYFRAME_PLAN | — | |
| ref_imagesopt | COMFY_AUTOGROW_V3 | — | |
| ref_videosopt | COMFY_AUTOGROW_V3 | — | |
| ref_video_audiosopt | COMFY_AUTOGROW_V3 | — | |
| ref_audiosopt | COMFY_AUTOGROW_V3 | — |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| positive | CONDITIONING | — |
| av_latent | LATENT | — |
| mux_audio | AUDIO | — |
| conditioned_prompt | STRING | — |
| media_map_json | STRING | — |
| keyframe_map_json | STRING | — |
| report_json | STRING | — |