MiniMax H3 Fun ControlNet Union 2.0 en ComfyUI: ocho tipos de control
ControlNet Union 2.0 de Alibaba PAI para MiniMax H3 añade los controles Scribble, Layout y Gray y duplica los bloques de inyección, con soporte en ComfyUI el mismo día.
El checkpoint anterior (MiniMax H3 Fun ControlNet Union, 24 de agosto de 2026) incluía Canny, Depth, HED, MLSD y Pose con cinco bloques de control. La versión 2.0 mantiene esa interfaz y reconstruye la rama de control: el nuevo checkpoint pesa unos 13,5 GB y ComfyUI le da soporte nativo el mismo día de su publicación.
Qué cambia en la 2.0
| v1 (agosto de 2026) | v2.0 (esta versión) | |
|---|---|---|
| Condiciones de control | 5: Canny, Depth, HED, MLSD, Pose | 8: añade Scribble, Layout, Gray |
| Profundidad de la rama de control | 5 bloques de control (0, 10, 20, 30, 40) | 10 bloques de control (0, 5, 10, ..., 45) |
| Receta de píxeles enmascarados para inpainting | pre_norm (huecos ≈ -2, casi negro) | post_norm (huecos en 0, gris medio) |
| Contenido del checkpoint | control_proj_in + 5 bloques (~6,8 GB) | control_proj_in + 10 bloques (~13,5 GB) |
| Config requerida | minimax_h3_control.yaml | minimax_h3_control_inpaint_post_norm.yaml |
Todo lo demás se mantiene: control_in_dim = 49 (latente + latente enmascarado + máscara, de modo que una sola rama gestiona tanto el control como el inpainting), control_apply_audio = false, pesos destilados con orientación que funcionan con guidance_scale = 1.0, y una suma de skip con puerta a cero hacia la rama principal.
El diseño de inyección es el cambio más destacable. Las señales de control ahora se conectan a diez de los 50 bloques del transformer en lugar de cinco, lo que duplica aproximadamente los puntos de inyección, algo que la ficha del modelo atribuye a una mayor adherencia estructural.
Ocho condiciones de control
| Condición | Señal de control | Novedad en la 2.0 |
|---|---|---|
| Canny | Mapa de bordes Canny | |
| Depth | Mapa de profundidad monocular | |
| HED | Detección de bordes HED | |
| MLSD | Detección de segmentos de línea | |
| Pose | Esqueleto DWPose | |
| Scribble | Líneas a mano alzada o bocetos | ✅ |
| Layout | Vídeo de disposición con cajas delimitadoras | ✅ |
| Gray | Vídeo en escala de grises (luminancia) | ✅ |
Layout sigue la receta de disposición de Wan2.1-VACE: las cajas de cada sujeto se renderizan como rectángulos codificados por color sobre un fondo blanco y se introducen como un vídeo RGB normal. Lo generado sigue al vídeo de control en número de fotogramas (ajustado a la baja al mayor 17 * n + 5 que el VAE de vídeo puede decodificar, con un límite de 15 segundos), en relación de aspecto y en 24 fps fijos.
Ejecutarlo en ComfyUI
ComfyUI incorporó compatibilidad con el nuevo checkpoint en el PR #16471 (CORE-462, fusionado el 22 de septiembre de 2026), que actualiza la ruta de control de MiniMax H3 en tres puntos:
comfy/ldm/minimax/controlnet.pyaprende el flaginpaint_post_norm, de modo que los píxeles enmascarados se ponen a cero después de la normalización del VAE en lugar de antes.comfy_extras/nodes_minimax_h3.pyvuelve a añadir la media de ImageNet en la región enmascarada cuando ese flag está activo, igual que se entrenó el checkpoint 2.0.comfy_extras/nodes_model_patch.pyahora deriva las capas de inyección del propio checkpoint (range(0, 50, 50 // num_blocks)), de modo que un único loader gestiona tanto los pesos v1 de 5 bloques como los v2.0 de 10 bloques.
En un gráfico se usan los mismos dos nodos que antes: ModelPatchLoader para la rama de control y MiniMaxH3FunControlNetApply para vincular el vídeo de control al muestreador. El checkpoint publicado es la rama de control sin procesar, así que los usuarios de ComfyUI cargan uno de los parches convertidos del repositorio de Kijai para MiniMax H3:
- minimax_h3_fun_controlnet_union_2.0_pruned_bf16.safetensors
- minimax_h3_fun_controlnet_union_2.0_pruned_int8_convrot.safetensors
La plantilla oficial que incluye ComfyUI, video_minimax_h3_fun_controlnet_union, ya conecta toda la cadena para el control de pose (selector de resolución, nodo de referencia a vídeo de H3, par de VAE, un subgráfico de preprocesado de pose en vídeo SDPose y el muestreador). Cambia el archivo de parche en ModelPatchLoader por la versión 2.0 y ejecutará el nuevo checkpoint.
Imagen de vista previa incluida con la plantilla oficial de control de pose en ComfyUI
Segunda imagen de vista previa de la misma plantilla
Resultados
La ficha del modelo publica un vídeo de control y una salida generada para cada condición, todas con 40 pasos de inferencia, guidance_scale = 1.0 y control_context_scale = 1.00. En cada par a continuación, la imagen de la izquierda es la señal de control y la de la derecha es la salida.
![]() | ![]() |
|---|---|
| Vídeo de control de pose | Salida generada |
![]() | ![]() |
|---|---|
| Vídeo de control de layout (nuevo en la 2.0) | Salida generada |
![]() | ![]() |
|---|---|
| Vídeo de control de scribble (nuevo en la 2.0) | Salida generada |
Los clips completos, incluido el par de inpainting, están en la página del modelo.
Disponibilidad
El checkpoint se ejecuta a través del pipeline de inferencia VideoX-Fun, igual que la v1: clona VideoX-Fun, coloca el modelo base MiniMax H3 y la rama de control de 13,5 GB en models/Diffusion_Transformer/, y apunta examples/minimax_h3_fun/predict_v2v_control.py a los nuevos pesos. La ficha del modelo señala una trampa en particular: cargar la config de la v1 (minimax_h3_control.yaml) con el checkpoint 2.0 es un fallo silencioso, porque solo se construye la mitad de la rama de control, así que control_blocks.5~9 se descartan como claves inesperadas y el resto queda mal colocado. Usa siempre minimax_h3_control_inpaint_post_norm.yaml.
control_context_scale sigue escalando cada skip de control antes de añadirse a la rama principal: 1.0 para el control más fuerte, valores más bajos para una orientación más débil, y 0.0 para desactivar por completo la rama de control.






Comentarios
Inicia sesión con GitHub para unirte a la conversación.