MiniMax H3 Keyframe Plan / 中间关键帧计划 (Advanced)
Pin a middle keyframe, pick a spot on the timeline, and let H3 interpolate around it
- image
- previous_plan
- keyframe_plan
H3 gives you first-frame and last-frame control, but a lot of shots need a beat in the middle - a character turning to camera, a reveal at 40% through the clip. This node is how you add that: it takes one image, an explicit position on the timeline, and a raw noise-augmentation value, and packages them into a keyframe plan that the pack's multi-keyframe machinery can chain together.
It's in T8/MiniMax H3/Conditioning/Experimental and it's one of the friendlier nodes in the pack, because its one genuinely confusing input - visual_noise_aug - comes with the exact numbers you should use. No calibration guessing required.
How it works
You give it image (batch item 0 is used if you feed a batch), a position_mode, and a position. The position resolves into an absolute 24fps frame, seconds, or a 0–100 percent depending on the mode, and it must land strictly between the first and last frames - H3's timeline, not past the edge. The node then wraps that image with visual_noise_aug, the raw per-frame H3 visual noise-augmentation value that tells the model how strongly to hold the keyframe.
The tooltip on visual_noise_aug is doing real work: 0.999 is the "hold this image" starting point, and anything ≤ 0.950 is aggressive - meaning the keyframe loosens its grip and H3 wanders further from it. This is not a linear "strength" dial; it's a raw conditioning value, so don't try to read it as "0.9 = 90%." Start at 0.999 and only drop when you want the keyframe to be approximate.
Chain the thing with previous_plan: connect a prior Advanced Keyframe Plan and you're building a timeline of middle keyframes, each positioned independently. Leave it unconnected and you get a single-keyframe plan.
The inputs that matter
position_mode-frame,seconds, orpercent.percentis the nicest to reason about: explicit 0–100, no 0..1 ambiguity.position(default 62) - where the keyframe sits. Must resolve strictly between first and last, or the plan fails.visual_noise_aug(default 0.999) - the one you'll touch. Below ~0.95 is aggressive.resize_mode-center_cropby default, for getting your keyframe image to match the canvas.enabled- flip false to drop this keyframe without deleting the node.
Outputs
keyframe_plan - a single output of the pack's H3_T8_KEYFRAME_PLAN type. It doesn't return the image back at you; it returns the plan, which downstream multi-keyframe nodes read. If you expected the image to come out the other side, that's your first confusion with this node - the plan carries the image, not the wire.
Installing it
Same pack, same recipe: ComfyUI Manager → search "MiniMax H3 Audio T8", or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8
restart. No extra pip dependencies, no model downloads - you supply the H3 model, CLIP and VAEs.
Common issues
"Position must resolve strictly between first and last." You placed the keyframe at frame 0, the last frame, or past the clip length. Pick a middle value; that's what it's for.
The keyframe barely affects the shot. That's visual_noise_aug doing its job at 0.999 only if the model respects it; if you've dropped it below 0.95 you've explicitly told H3 the keyframe is a suggestion. Also check enabled - a plan built with the node bypassed isn't holding anything.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | One middle timeline keyframe; batch item 0 is used. | |
| position_mode | COMBO | frame | percent uses an explicit 0..100 scale; no 0..1 ambiguity. |
| position | FLOAT | 62.000–3600 | Absolute 24fps frame, seconds, or 0..100 percent according to position_mode. It must resolve strictly between first and last. |
| visual_noise_aug | FLOAT | 0.9990–1 | Raw H3 conditioning value, not a calibrated linear strength. Start with 0.999; values <=0.950 are aggressive. |
| resize_mode | COMBO | center_crop | 2 options: center_crop, stretch |
| enabled | BOOLEAN | true | — |
| previous_planopt | H3_T8_KEYFRAME_PLAN | Connect the previous Advanced Keyframe Plan to build a timeline. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| keyframe_plan | H3_T8_KEYFRAME_PLAN | — |