MiniMax H3 Fun ControlNet Union 2.0 in ComfyUI: Eight Control Types

ComfyUI Wikinews

Alibaba PAI's ControlNet Union 2.0 for MiniMax H3 adds Scribble, Layout and Gray control and doubles the injection blocks, with same-day ComfyUI support.

MiniMax H3 Fun ControlNet Union 2.0 (Hugging Face | VideoX-Fun | ComfyUI PR #16471) is the second version of Alibaba PAI's ControlNet-Union for MiniMax H3, released on September 22, 2026. It grows from five control conditions to eight by adding Scribble, Layout and Gray, and doubles the number of control injection points in the base transformer.

The previous checkpoint (MiniMax H3 Fun ControlNet Union, August 24, 2026) shipped Canny, Depth, HED, MLSD and Pose with five control blocks. Version 2.0 keeps that interface and rebuilds the control branch: the new checkpoint is about 13.5 GB and ComfyUI supports it natively on the same day it was published.

What changed in 2.0

v1 (August 2026)v2.0 (this release)
Control conditions5: Canny, Depth, HED, MLSD, Pose8: adds Scribble, Layout, Gray
Control branch depth5 control blocks (0, 10, 20, 30, 40)10 control blocks (0, 5, 10, ..., 45)
Inpaint masked-pixel recipepre_norm (holes ≈ -2, near black)post_norm (holes at 0, mid-gray)
Checkpoint contentscontrol_proj_in + 5 blocks (~6.8 GB)control_proj_in + 10 blocks (~13.5 GB)
Required configminimax_h3_control.yamlminimax_h3_control_inpaint_post_norm.yaml

Everything else carries over: control_in_dim = 49 (latent + masked latent + mask, so one branch handles both control and inpainting), control_apply_audio = false, guidance-distilled weights that run at guidance_scale = 1.0, and a zero-gated skip add into the main branch.

The injection layout is the notable change. Control signals now attach to ten of the 50 transformer blocks instead of five, roughly doubling the injection points, which the model card credits with tighter structural adherence.

Eight control conditions

ConditionControl signalNew in 2.0
CannyCanny edge map
DepthMonocular depth map
HEDHED edge detection
MLSDLine-segment detection
PoseDWPose skeleton
ScribbleFree-hand or sketch lines
LayoutBounding-box layout video
GrayGrayscale (luminance) video

Layout follows the layout recipe from Wan2.1-VACE: per-subject boxes are rendered as color-coded rectangles on a white background and fed in as an ordinary RGB video. Generative follows the control video in frame count (snapped down to the largest 17 * n + 5 the video VAE can decode, capped at 15 seconds), aspect ratio and a fixed 24 fps.

Running it in ComfyUI

ComfyUI gained support for the new checkpoint in PR #16471 (CORE-462, merged September 22, 2026), which updates the MiniMax H3 control path in three places:

  • comfy/ldm/minimax/controlnet.py learns the inpaint_post_norm flag, so masked pixels are zeroed after VAE normalization instead of before it.
  • comfy_extras/nodes_minimax_h3.py adds the ImageNet mean back into the masked region when that flag is set, matching how the 2.0 checkpoint was trained.
  • comfy_extras/nodes_model_patch.py now derives the injection layers from the checkpoint itself (range(0, 50, 50 // num_blocks)), so one loader handles both the 5-block v1 and the 10-block v2.0 weight files.

In a graph you use the same two nodes as before: ModelPatchLoader for the control branch and MiniMaxH3FunControlNetApply to bind the control video to the sampler. The published checkpoint is the raw control branch, so ComfyUI users load one of the converted patches from Kijai's MiniMax H3 repository instead:

The official template that ships with ComfyUI, video_minimax_h3_fun_controlnet_union, already wires up the whole chain for pose control (resolution selector, H3 reference-to-video node, VAE pair, an SDPose video-pose preprocessing subgraph, and the sampler). Swap the patch file in ModelPatchLoader to the 2.0 build and it runs the new checkpoint.

MiniMax H3 Fun ControlNet Union official template preview

Preview render shipped with the official pose-control template in ComfyUI

MiniMax H3 Fun ControlNet Union official template preview, second view

Second preview render from the same template

Results

The model card publishes a control video and a generated output for every condition, all at 40 inference steps with guidance_scale = 1.0 and control_context_scale = 1.00. In each pair below the left image is the control signal and the right image is the output.

Pose controlPose output
Pose control videoGenerated output
Layout controlLayout output
Layout control video (new in 2.0)Generated output
Scribble controlScribble output
Scribble control video (new in 2.0)Generated output

The full clips, including the inpainting pair, are on the model page.

Availability

The checkpoint runs through the VideoX-Fun inference pipeline, as with v1: clone VideoX-Fun, place the base MiniMax H3 model and the 13.5 GB control branch under models/Diffusion_Transformer/, and point examples/minimax_h3_fun/predict_v2v_control.py at the new weights. The model card flags one trap in particular: loading the v1 config (minimax_h3_control.yaml) against the 2.0 checkpoint is a silent failure because only half the control branch is built, so control_blocks.5~9 are dropped as unexpected keys and the rest are misplaced. Always use minimax_h3_control_inpaint_post_norm.yaml.

control_context_scale still scales every control skip before it is added to the main branch: 1.0 for the strongest control, lower values for weaker guidance, and 0.0 to switch the control branch off entirely.

Comments

Sign in with GitHub to join the discussion.

Loading comments…
MiniMax H3 Fun ControlNet Union 2.0 in ComfyUI: Eight Control Types | ComfyUI Wiki