ControlNet en ComfyUI: controla poses y composición con OpenPose, Canny y Depth

"La documentación oficial de Apply ControlNet describe entradas, rango de strength y comportamiento de start_percent y end_percent."
Quieres que una referencia fije pose, líneas y composición, pero la figura se deforma, los bordes se diluyen y el encuadre cambia.
ControlNet aporta esa guía estructural: OpenPose para pose, Canny para bordes y Depth para relaciones espaciales. Quedan los ajustes: qué strength usar, cómo interpretar start_percent y end_percent y cómo evitar conflictos entre controles.
Elige primero preprocesador y pesos según el objetivo. Ajusta después fuerza y rango. Si el resultado sigue desviándose, revisa conexiones, compatibilidad base y señales contrapuestas.
Tabla rápida por objetivo de control
Primero decide qué estructura conservar, no el valor de strength.
| Objetivo | Tipo | Preprocesador | Pesos SD1.5 comunes |
|---|---|---|---|
| Generar una persona con pose concreta | Pose | OpenPose / DWPose | control_v11p_sd15_openpose |
| Seguir las líneas de una referencia | Bordes | Canny | control_v11p_sd15_canny |
| Mantener planos y composición | Profundidad | Depth (MiDaS / LeReS) | control_v11f1p_sd15_depth |
| Guiar con un boceto | Boceto | Scribble | control_v11p_sd15_scribble |
| Mantener contornos suaves | Borde suave | SoftEdge (HED / PiDiNet) | control_v11p_sd15_softedge |
Considera dos detalles:
-
OpenPose y DWPose generan puntos de pose. DWPose suele detallar mejor cuerpo, manos y rostro, útil para gestos.
-
La salida debe coincidir con los pesos. Un mapa OpenPose necesita un modelo de pose. Si mapa, pesos o arquitectura no coinciden, el efecto será mínimo o habrá error.
Los pesos suelen ir en ComfyUI/models/controlnet. Reinicia ComfyUI o actualiza la lista y selecciónalos en Load ControlNet Model.
Tabla de parámetros de ControlNet
strength, start_percent y end_percent controlan influencia y momento. Usa los límites oficiales y estos valores iniciales.
| Parámetro | Rango | Inicio | Efecto | Prueba |
|---|---|---|---|---|
strength | 0–10 | 1.0 | Influencia del mapa | Mantén el seed y varía alrededor de 1.0; 0.5–1.5 es el rango de prueba oficial habitual |
start_percent | 0–1 | 0 | Inicio de la influencia | Pose y composición suelen empezar en 0; retrasa solo después de validar la base |
end_percent | 0–1 | 1 | Fin de la influencia | Si queda rígido, prueba 0.8 o menos para liberar detalles tardíos |
Cómo entender start_percent y end_percent
Definen un intervalo, no una espera. Con start_percent=0.2 y end_percent=0.8, ControlNet actúa solo entre el 20 % y el 80 % de la difusión.
Pose y composición se forman pronto. Para fijarlas, empieza en 0. Si el resultado queda rígido, conserva start_percent=0 y baja end_percent de 1 a 0.8.
El rango completo (start_percent=0, end_percent=1) es una buena base. Confirma el efecto y cambia un parámetro cada vez.
Cómo elegir strength
strength regula la influencia. En 0 desactiva el control. Valores mayores suelen imponer más el mapa, aunque cada modelo responde distinto.
Empieza cerca de 1.0. Sube en pasos pequeños si ignora el mapa y baja si anatomía o líneas se deforman. 0.5–1.5 es una referencia oficial, no un rango seguro universal.
Montar el workflow
La cadena esencial carga el modelo base y ControlNet, procesa la referencia, aplica el control a los conditionings positive y negative y los envía a KSampler.
Paso 1: carga el modelo base
Nodo: Load Checkpoint
- Selecciona el checkpoint de Stable Diffusion.
- Identifica si es SD1.5, SDXL u otra arquitectura.
- Continúa el grafo con
MODEL,CLIPyVAE.
Paso 2: carga el modelo ControlNet
Nodo: Load ControlNet Model
- Selecciona pesos compatibles con arquitectura y tipo de mapa.
- Su salida
CONTROL_NETse conecta a Apply ControlNet.
Paso 3: carga y preprocesa la referencia
Nodos: Load Image y un preprocesador como OpenPose Preprocessor.
Load Image: sube la referencia.- Preprocesador: conviértela en pose, bordes o profundidad.
- Comfy Core no incluye todos; instala
comfyui_controlnet_auxcon ComfyUI Manager si hace falta.
ControlNet lee el mapa procesado. Previsualízalo para detectar miembros, bordes o profundidad ausentes.
Paso 4: conecta Apply ControlNet
Nodo: Apply ControlNet
control_net: desde Load ControlNet Model.image: desde el preprocesador, no la imagen original.positive: conditioning positivo.negative: conditioning negativo.strength: empieza en 1.0.start_percent: empieza en 0.end_percent: empieza en 1.
Apply ControlNet produce nuevos conditionings. Conecta ambos a KSampler. Si el sampler recibe los originales, ControlNet queda fuera de la ruta.
Paso 5: genera y compara
Nodo: KSampler
model: desde Load Checkpoint.positive/negative: desde Apply ControlNet.latent_image: desde Empty Latent Image u otra fuente.- Fija el seed para comparar; la variación aleatoria puede ocultar el efecto.
Revisa tres conexiones:
- positive y negative atraviesan Apply ControlNet.
imagerecibe el mapa procesado.Apply ControlNet(Old)está obsoleto; usa el nodo estándar.
Compatibilidad con el modelo base
SD1.5, SDXL y FLUX no comparten pesos automáticamente. Identifica el modelo base y elige compatibilidad documentada.
Compatibilidad de preprocesador y modelo
| Preprocesador | SD1.5 común | Regla SDXL | Regla FLUX |
|---|---|---|---|
| Canny | control_v11p_sd15_canny | Pesos SDXL que acepten Canny | Pesos documentados para FLUX objetivo y Canny |
| OpenPose / DWPose | control_v11p_sd15_openpose | Pesos SDXL que acepten pose | Pesos documentados para FLUX objetivo y Pose |
| Depth (MiDaS / LeReS) | control_v11f1p_sd15_depth | Pesos SDXL que acepten Depth | Pesos documentados para FLUX objetivo y Depth |
| Scribble | control_v11p_sd15_scribble | Pesos SDXL que acepten Scribble | Comprueba la ficha; no todo Union admite Scribble |
| SoftEdge (HED / PiDiNet) | control_v11p_sd15_softedge | Pesos SDXL que acepten SoftEdge | Comprueba ficha y workflow para esa entrada |
Los modelos Union reúnen varios modos y son una opción para FLUX. Modos, nodos y fuerzas útiles dependen del modelo y versión del workflow.
Tabla de compatibilidad base
| Base | Selección | Carpeta | Advertencia |
|---|---|---|---|
| SD1.5 | La familia control_v11*_sd15_* es común | ComfyUI/models/controlnet | sd15 indica SD1.5, no SDXL |
| SDXL | Usa pesos marcados para SDXL | ComfyUI/models/controlnet | Hay varias implementaciones; sigue la ficha |
| FLUX | Usa ControlNet o Union compatible con el FLUX objetivo | ComfyUI/models/controlnet | Nodos, modos y fuerza son específicos; no copies SD1.5 |
Elegir el modelo base
Si aún no lo elegiste, consulta la guía de selección de modelos Stable Diffusion. Compara características y recursos; aquí solo tratamos compatibilidad.
Dónde guardar el modelo
Los pesos suelen ir en ComfyUI/models/controlnet. Reinicia o actualiza la lista y selecciónalos en Load ControlNet Model.
Si hay muchos archivos, usa subcarpetas compatibles. Conserva la fuente y la ficha: un prefijo inventado no demuestra compatibilidad.
Ajustar varios ControlNet
Puedes encadenar Apply ControlNet para pose y composición. Prueba cada control solo antes de mezclar dos fallos.
Encadenar Apply ControlNet
Conecta las salidas positive y negative del primero a las entradas equivalentes del segundo.
-
Primer ControlNet:
- Carga OpenPose y un mapa de pose.
- Prueba
strength=1.0,start_percent=0,end_percent=0.7.
-
Segundo ControlNet:
- Carga Depth y un mapa de profundidad.
- Empieza con
strength=0.6,start_percent=0,end_percent=0.6.
-
Orden:
- Conditioning → primer Apply ControlNet → segundo Apply ControlNet → KSampler.
- Mantén el mismo orden en positive y negative.
Son valores de diagnóstico, no óptimos. Pose y profundidad son estructuras tempranas; empieza en 0 y separa funciones por fuerza y final.
Principios de ajuste
Empieza por prioridad y rango.
Define prioridad:
- Prueba el principal cerca de 1.0.
- Empieza el auxiliar en 0.5–0.7.
- Si tiran en direcciones opuestas, baja el auxiliar antes de subir ambos.
Define rango:
- Pose y composición actúan pronto; deja
start_percenten 0 al inicio. - Usa
end_percentdistintos, por ejemplo 0.7 y 0.6. - Para liberar detalles tardíos, termina antes en lugar de mover el control a la segunda mitad.
Después revisa:
- Dos controles iguales no están prohibidos, pero mapas de la misma estructura suelen añadir conflicto.
- Prefiere señales complementarias como OpenPose + Depth u OpenPose + Canny.
- Fija el seed y compara uno frente a dos controles.
- No empieces con dos strengths altos.
- Cambia un parámetro y guarda un workflow reproducible.
- No añadas el segundo hasta ver el efecto del primero.
Lista de solución de problemas
| Problema | Causa probable | Revisión |
|---|---|---|
| Imagen igual sin ControlNet | Mapa desconectado, strength cerca de 0, conditioning original o arquitectura incorrecta | Previsualiza mapa; revisa image y conditioning; compara seed fijo; confirma arquitectura |
| Pose o líneas no coinciden | Preprocesador incorrecto, mapa incompleto o poca influencia | Revisa esqueleto/bordes; prueba DWPose o Canny; sube strength gradualmente |
| Imagen rígida o deformada | Fuerza alta, mapa con ruido o control hasta el final | Baja strength; limpia mapa; cambia end_percent de 1 a 0.8 o menos |
| Falta el preprocesador | Custom node ausente o dependencia fallida | Instala comfyui_controlnet_aux; reinicia; revisa errores de importación |
| SDXL/FLUX no carga o no actúa | Pesos incompatibles con arquitectura o nodo | Revisa base, nodos y ejemplo de la ficha; no confíes solo en el nombre |
| Falta Apply ControlNet(Old) | Nodo obsoleto oculto | Usa Apply ControlNet estándar; muestra obsoletos solo para workflows antiguos |
| Varios ControlNet chocan | Mapas opuestos, auxiliar fuerte o muchos cambios | Prueba solos; fija seed; baja auxiliar; acorta rango; cambia un valor |
| Los cambios no se notan | Seed variable, mapa pobre o ruta que evita ControlNet | Fija seed y sampler; revisa mapa; comprueba positive y negative de KSampler |
Próximos pasos
ControlNet controla estructuras difíciles de expresar con un prompt. Cuando el grafo funcione, continúa con:
- Instalar ComfyUI y conocer la interfaz: punto de partida si aún no está instalado.
- Reutilizar y reparar workflows de ComfyUI: guardar, cargar y resolver nodos faltantes.
- Crear plantillas de prompt para Stable Diffusion: ControlNet para estructura y prompt para tema, estilo y detalle.
Crear un workflow básico de ControlNet en ComfyUI
Preprocesar una referencia e incorporar su estructura a la cadena de muestreo.
- 1
Step 1: Identifica la arquitectura base
Comprueba si el checkpoint es SD1.5, SDXL o FLUX y elige pesos compatibles. - 2
Step 2: Carga y preprocesa la referencia
Genera un mapa de pose, bordes o profundidad con OpenPose, Canny o Depth. - 3
Step 3: Carga ControlNet
Guarda los pesos en ComfyUI/models/controlnet y selecciónalos en Load ControlNet Model. - 4
Step 4: Conecta Apply ControlNet
Conecta positive, negative, control_net y la imagen procesada; envía el conditioning a KSampler. - 5
Step 5: Ajusta con seed fijo
Prueba strength 1.0, start_percent 0 y end_percent 1; después cambia un valor cada vez. - 6
Step 6: Valida antes de encadenar
Prueba cada ControlNet solo y reduce la fuerza o el rango del control auxiliar.
FAQ
¿Qué diferencia hay entre OpenPose y DWPose?
¿Qué valor de strength conviene usar?
¿Qué significan start_percent y end_percent?
¿Puedo usar varios ControlNet?
¿Qué ControlNet debo usar con FLUX?
8 min de lectura · Publicado el: 19 jul 2026 · Actualizado el: 19 jul 2026
Guía práctica de ComfyUI y Stable Diffusion
Si llegaste desde búsqueda, lo más rápido es ir al artículo anterior o siguiente de esta misma serie.
Anterior
Guía de prompts para Stable Diffusion: plantillas para productos, avatares, pósteres y assets de juego
¿No sabes cómo escribir una plantilla de prompt para Stable Diffusion? Esta guía usa productos, avatares, pósteres y assets de juego para explicar prompt positivo, Negative prompt, pesos, iteración en ComfyUI y revisión comercial.
Parte 4 de 5
Siguiente
Este es el artículo más reciente de la serie por ahora.



Comentarios
Inicia sesión con GitHub para dejar un comentario