MiniMax H3 Fun ControlNet Union: contrôle Canny, Depth, Pose et plus
Alibaba PAI publie un ControlNet-Union pour MiniMax H3 : un unique checkpoint de 6,8 Go ajoute le contrôle vidéo Canny, Depth, HED, MLSD et Pose, plus l'inpainting, via VideoX-Fun.
Ce que c'est
Le checkpoint ne contient que la branche de contrôle (control_proj_in plus cinq control_blocks, environ 6,8 Go) et se charge par-dessus le transformer MiniMax H3 de base. Les signaux de contrôle sont injectés dans cinq des 50 blocs du transformer (couches 0, 10, 20, 30 et 40), et chaque saut de contrôle rejoint la branche principale via une projection à porte zéro.
- Contrôle Union — un seul checkpoint gère les vidéos de contrôle Canny, Depth, HED, MLSD et Pose pour la génération vidéo-vers-vidéo.
- Distillé en guidage — s'exécute avec
guidance_scale = 1.0et une seule passe avant par étape ; pas besoin de classifier-free guidance. - Inpainting — l'entrée de contrôle est élargie à 49 canaux (latent + latent masqué + masque) ; utilisez l'exemple dédié
predict_v2v_control_inpaint.py. - Intensité du contrôle —
control_context_scalemet à l'échelle chaque saut de contrôle avant de l'ajouter à la branche principale :1.0donne le contrôle le plus fort, des valeurs plus faibles l'atténuent,0.0désactive la branche de contrôle.
La génération suit la vidéo de contrôle : le nombre d'images se réduit au plus grand 17 × n + 5 que le VAE vidéo peut décoder (durée plafonnée à 15 secondes), le canevas conserve le ratio de la vidéo de contrôle dans le budget de pixels height × width, à 24 fps fixes. Des prompts détaillés décrivant la scène, le sujet et la caméra donnent les résultats les plus stables.
Résultats
Tous les échantillons ci-dessous ont été générés avec 40 étapes d'inférence, guidance_scale = 1.0 et control_context_scale = 1.00. La première vidéo est l'entrée de contrôle, la seconde est la sortie générée.
Canny
Entrée de contrôle Canny (rue de Tokyo)
Sortie générée suivant la structure Canny
Pose
Entrée de contrôle Pose (danse)
Sortie générée suivant la pose de la danse
Disponibilité
Le checkpoint s'exécute actuellement via le pipeline d'inférence VideoX-Fun. Clonez le dépôt VideoX-Fun, placez le modèle de base MiniMax-H3 et ce checkpoint dans models/Diffusion_Transformer/, puis modifiez les paramètres en haut de examples/minimax_h3_fun/predict_v2v_control.py et lancez-le :
model_name = "models/Diffusion_Transformer/MiniMax-H3"
config_path = "config/minimax_h3/minimax_h3_control.yaml"
transformer_path = "models/Diffusion_Transformer/MiniMax-H3-Fun-Controlnet-Union/MiniMax-H3-Fun-Controlnet-Union.safetensors"
control_video = "your_control_video.mp4"
prompt = "your prompt"python examples/minimax_h3_fun/predict_v2v_control.pyNotes de configuration importantes de la fiche du modèle :
- La config doit construire la branche de contrôle exactement comme à l'entraînement (
control_blocks_places: [0, 10, 20, 30, 40],control_in_dim: 49,control_apply_audio: false) ; une disposition différente empêche le checkpoint de se charger. - Le checkpoint est distillé en guidage : gardez
guidance_scale = 1.0; des valeurs supérieures appliquent le guidage deux fois et dégradent la sortie. - Le checkpoint de contrôle ne contient que la branche de contrôle ; les poids de base MiniMax-H3 doivent être présents.
- Le transformer (~62 Go) plus l'encodeur de texte Qwen3-VL (~62 Go) ne tiennent pas entièrement sur une seule GPU de 80 Go ; utilisez
model_group_offloadoumodel_cpu_offload_and_qfloat8.
Il n'existe pas encore de loader natif ComfyUI pour le ControlNet H3 : cette sortie cible le pipeline VideoX-Fun. Un Space de démonstration Gradio présente le modèle avec les cinq paires de résultats publiées.
Commentaires
Connectez-vous avec GitHub pour rejoindre la discussion.