MiniMax H3 Fun ControlNet Union 2.0 dans ComfyUI : huit contrôles
Le ControlNet Union 2.0 d'Alibaba PAI pour MiniMax H3 ajoute les contrôles Scribble, Layout et Gray et double les blocs d'injection, avec une prise en charge ComfyUI le jour même.
Le précédent checkpoint (MiniMax H3 Fun ControlNet Union, 24 août 2026) proposait Canny, Depth, HED, MLSD et Pose avec cinq blocs de contrôle. La version 2.0 conserve cette interface et reconstruit la branche de contrôle : le nouveau checkpoint pèse environ 13,5 Go et ComfyUI le prend en charge nativement le jour même de sa publication.
Ce qui change en 2.0
| v1 (août 2026) | v2.0 (cette version) | |
|---|---|---|
| Conditions de contrôle | 5 : Canny, Depth, HED, MLSD, Pose | 8 : ajoute Scribble, Layout, Gray |
| Profondeur de la branche de contrôle | 5 blocs de contrôle (0, 10, 20, 30, 40) | 10 blocs de contrôle (0, 5, 10, ..., 45) |
| Recette d'inpainting des pixels masqués | pre_norm (trous ≈ -2, proche du noir) | post_norm (trous à 0, gris moyen) |
| Contenu du checkpoint | control_proj_in + 5 blocs (~6,8 Go) | control_proj_in + 10 blocs (~13,5 Go) |
| Config requise | minimax_h3_control.yaml | minimax_h3_control_inpaint_post_norm.yaml |
Tout le reste est conservé : control_in_dim = 49 (latent + latent masqué + masque, donc une seule branche gère à la fois le contrôle et l'inpainting), control_apply_audio = false, des poids distillés par guidance qui tournent à guidance_scale = 1.0, et un ajout de skip à porte zéro dans la branche principale.
La disposition des injections est le changement notable. Les signaux de contrôle se rattachent désormais à dix des 50 blocs du transformer au lieu de cinq, ce qui double environ les points d'injection ; la fiche du modèle attribue à cela une adhérence structurelle plus étroite.
Huit conditions de contrôle
| Condition | Signal de contrôle | Nouveau en 2.0 |
|---|---|---|
| Canny | Carte de contours Canny | |
| Depth | Carte de profondeur monoculaire | |
| HED | Détection de contours HED | |
| MLSD | Détection de segments de ligne | |
| Pose | Squelette DWPose | |
| Scribble | Lignes à main levée ou de croquis | ✅ |
| Layout | Vidéo de disposition par boîtes englobantes | ✅ |
| Gray | Vidéo en niveaux de gris (luminance) | ✅ |
Layout suit la recette de layout de Wan2.1-VACE : les boîtes de chaque sujet sont rendues sous forme de rectangles codés par couleur sur un arrière-plan blanc, puis fournies comme une vidéo RGB ordinaire. La sortie générée suit la vidéo de contrôle pour le nombre de frames (aligné vers le bas sur le plus grand 17 * n + 5 que le VAE vidéo peut décoder, plafonné à 15 secondes), le ratio d'image et un débit fixe de 24 fps.
L'utiliser dans ComfyUI
ComfyUI a ajouté la prise en charge du nouveau checkpoint dans la PR #16471 (CORE-462, fusionnée le 22 septembre 2026), qui met à jour le chemin de contrôle MiniMax H3 à trois endroits :
comfy/ldm/minimax/controlnet.pyapprend le drapeauinpaint_post_norm, de sorte que les pixels masqués sont mis à zéro après la normalisation VAE au lieu d'avant.comfy_extras/nodes_minimax_h3.pyréinjecte la moyenne ImageNet dans la région masquée lorsque ce drapeau est activé, ce qui correspond à la façon dont le checkpoint 2.0 a été entraîné.comfy_extras/nodes_model_patch.pydéduit désormais les calques d'injection du checkpoint lui-même (range(0, 50, 50 // num_blocks)), de sorte qu'un seul loader gère à la fois les fichiers de poids v1 à 5 blocs et v2.0 à 10 blocs.
Dans un graphique, vous utilisez les deux mêmes nœuds qu'auparavant : ModelPatchLoader pour la branche de contrôle et MiniMaxH3FunControlNetApply pour lier la vidéo de contrôle à l'échantillonneur. Le checkpoint publié est la branche de contrôle brute ; les utilisateurs de ComfyUI chargent donc plutôt l'un des correctifs convertis du référentiel MiniMax H3 de Kijai :
- minimax_h3_fun_controlnet_union_2.0_pruned_bf16.safetensors
- minimax_h3_fun_controlnet_union_2.0_pruned_int8_convrot.safetensors
Le modèle officiel fourni avec ComfyUI, video_minimax_h3_fun_controlnet_union, câble déjà toute la chaîne pour le contrôle de pose (sélecteur de résolution, nœud H3 reference-to-video, paire de VAE, sous-graphe de prétraitement de pose vidéo SDPose et échantillonneur). Remplacez le fichier de correctif dans ModelPatchLoader par la version 2.0 et il exécute le nouveau checkpoint.
Image d'aperçu fournie avec le modèle officiel de contrôle de pose dans ComfyUI
Seconde image d'aperçu du même modèle
Résultats
La fiche du modèle publie une vidéo de contrôle et une sortie générée pour chaque condition, toutes à 40 étapes d'inférence avec guidance_scale = 1.0 et control_context_scale = 1.00. Dans chaque paire ci-dessous, l'image de gauche est le signal de contrôle et celle de droite la sortie.
![]() | ![]() |
|---|---|
| Vidéo de contrôle de pose | Sortie générée |
![]() | ![]() |
|---|---|
| Vidéo de contrôle Layout (nouveau en 2.0) | Sortie générée |
![]() | ![]() |
|---|---|
| Vidéo de contrôle Scribble (nouveau en 2.0) | Sortie générée |
Les clips complets, y compris la paire d'inpainting, sont sur la page du modèle.
Disponibilité
Le checkpoint s'exécute via le pipeline d'inférence VideoX-Fun, comme pour la v1 : clonez VideoX-Fun, placez le modèle MiniMax H3 de base et la branche de contrôle de 13,5 Go dans models/Diffusion_Transformer/, et pointez examples/minimax_h3_fun/predict_v2v_control.py vers les nouveaux poids. La fiche du modèle signale un piège en particulier : charger la config v1 (minimax_h3_control.yaml) avec le checkpoint 2.0 est un échec silencieux, car seule la moitié de la branche de contrôle est construite ; control_blocks.5~9 sont alors ignorés comme clés inattendues et le reste est mal placé. Utilisez toujours minimax_h3_control_inpaint_post_norm.yaml.
control_context_scale met toujours à l'échelle chaque skip de contrôle avant son ajout à la branche principale : 1.0 pour le contrôle le plus fort, des valeurs plus faibles pour un guidage plus léger, et 0.0 pour désactiver complètement la branche de contrôle.






Commentaires
Connectez-vous avec GitHub pour rejoindre la discussion.