MiniMax H3 Fun ControlNet Apply (T8 Advanced)
Steer an H3 shot with a depth, pose or edge video — structure in, motion out
- model
- positive
- control_net
- vae
- control_video
- model
- positive
- report_json
Text prompt steering only gets you so far with a video model. When you want the shape of the shot to come from somewhere real - a depth map so the camera move and foreground layout match a source, a pose skeleton so a character moves a certain way, an edge map so composition holds - that's what the H3 Fun ControlNet is for, and this is the node that actually applies it. It's the Apply half of the pair: the loader hands you a control_net, this node injects it into your model and conditioning so the sampler obeys the structure you gave it.
The mechanic is the modern ControlNet recipe rebuilt for H3: a conditional control stream that's added into the model's forward path, weighted by strength, and phased in only between start_percent and end_percent of denoising. The reason that phasing matters is the lesson the whole ControlNet era drilled in: hold the condition while composition forms, then let it go so detail and motion don't look pasted on. The defaults already do this - start 0.0, end 0.75 - and they're sane.
Inputs that matter
The node returns both model and positive (CONDITIONING), because it modifies both: the patched model and the conditioning that carries the control signal. Wire them into your sampler as you would have wired the originals.
- control_net - from the Fun ControlNet Loader
- control_video (IMAGE) - the preprocessed frames: depth, pose, edges, whatever
- vae - the H3 video VAE, needed to encode the control frames
- control_kind -
depth,pose,canny,HED,MLSD, orcustom. Matches the model you loaded; getting this wrong is a silent quality hit, not an error - width / height / length - target canvas (736×416×124 are the defaults and a good bounded baseline)
- strength - 0.7 default; raise toward 1 for strict structure, drop for loose guidance
- start_percent / end_percent - when the control applies during denoising
Installing it
Part of the T8mars/comfyui-minimax-h3-audio-T8 pack - search "MiniMax H3 Audio T8" in ComfyUI Manager, install, restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8.git minimax-h3-audio-T8
Update ComfyUI first (recent comfy_api.latest / comfy.weight_adapter / comfy.ldm.minimax core), and remember requirements.txt is intentionally empty - don't install extra deps into it. The ControlNet weights themselves come from Kijai/MiniMax-H3-experimental into models/controlnet, and you'll need the H3 video VAE in models/vae since this node encodes the control video with it.
Where people get burned
The control_kind mismatch is the sneaky one - it can't be detected, so a depth model driven as pose just produces weak, off results you'll blame on the sampler. Match the dropdown to the actual model file. The fit_mode (exact / center_crop / stretch) also changes what the node does with control frames that don't match your canvas - exact assumes they already match, so feed it frames sized to your width/height, or use center_crop/stretch to let it adapt. And remember the pack's core rule: one owner for the attention/MODEL forward path at a time. Pair Fun Control with another forward-patching node and you're fighting yourself. It's experimental by the pack's own label, so expect "steers the composition" rather than frame-perfect puppetry.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| positive | CONDITIONING | — | |
| control_net | H3_T8_FUN_CONTROL | — | |
| vae | VAE | — | |
| control_video | IMAGE | — | |
| width | INT | 73632–16384 | — |
| height | INT | 41632–16384 | — |
| length | INT | 1245–3600 | — |
| control_kind | COMBO | depth | 6 options: depth, pose, canny, HED, MLSD, custom |
| fit_mode | COMBO | exact | 3 options: exact, center_crop, stretch |
| strength | FLOAT | 0.700–2 | — |
| start_percent | FLOAT | 0.000–1 | — |
| end_percent | FLOAT | 0.750–1 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| positive | CONDITIONING | — |
| report_json | STRING | — |