Contenido
Tutorial de ControlNet en ComfyUI: controla la composición con líneas, poses y profundidad
Con solo prompts es difícil controlar con precisión «la pose de una persona», «la perspectiva de un edificio» o «la composición de la imagen». ControlNet te permite proporcionar una imagen de referencia y extraer información estructural (líneas, poses y profundidad) para que la imagen generada siga esa estructura.
Tipos de control habituales
| Tipo | Qué extrae de la imagen de referencia | Ideal para |
|---|---|---|
| Canny | Bordes y líneas | Conservar contornos y detalles, por ejemplo, de productos o edificios |
| Lineart | Dibujo lineal | Colorear un dibujo lineal y convertirlo en una ilustración completa |
| OpenPose | Esqueleto humano (pose, manos y rostro) | Especificar la pose de una persona |
| Depth | Profundidad (distancia) | Conservar la estructura espacial y la perspectiva |
| Scribble | Garabato sencillo | Controlar la composición con un boceto hecho a mano |
| Tile | Detalles de la imagen original | Mantener la coherencia y añadir detalles al ampliar una imagen |
Qué necesitas
- Modelo de ControlNet: colócalo en
models/controlnet/. Debe corresponder a la versión del modelo base (SD 1.5, SDXL y Flux tienen modelos ControlNet distintos). También existen modelos «Union», en los que un solo archivo admite varios tipos de control. - Preprocesador (Preprocessor): convierte la imagen de referencia al formato que necesita ControlNet (por ejemplo, transforma una foto en líneas o en un esqueleto). Canny tiene un nodo integrado; los demás tipos suelen requerir el nodo personalizado comfyui_controlnet_aux (consulta Nodos personalizados y Manager).
Crea el flujo de trabajo (con Canny)
[Load Image] ─▶ [Canny] ─IMAGE────────────────┐
▼
[CLIP Text Encode positive] ─CONDITIONING─▶ [Apply ControlNet] ─positive─▶ [KSampler]
[CLIP Text Encode negative] ─CONDITIONING─▶ ─negative─▶
[Load ControlNet Model] ─CONTROL_NET──▶
vae ─────────▶
Pasos:
- Empieza con el flujo de trabajo de texto a imagen.
- Añade Load Image y carga la imagen de referencia.
- Añade el nodo Canny y conéctale la imagen de referencia. Ejecútalo una vez y comprueba las líneas extraídas con Preview Image.

- Añade Load ControlNet Model y selecciona un modelo Canny.
- Añade Apply ControlNet:
- Conecta
positiveynegativea las salidas de los dos nodos CLIP Text Encode. - Conecta
control_neta Load ControlNet Model. - Conecta
imagea la salida de Canny. - Conecta
vaeal VAE del modelo (algunos modelos ControlNet lo necesitan).
- Conecta
- Conecta las salidas positive y negative de Apply ControlNet a KSampler.
- Ajusta las dimensiones de Empty Latent Image para que tengan la misma proporción que la imagen de referencia.

Parámetros
| Parámetro | Descripción | Recomendación |
|---|---|---|
strength | Intensidad del control | 0.5~1.0. Un valor demasiado alto puede dar una imagen rígida y detalles poco naturales |
start_percent | En qué fase del proceso de generación empieza el control | 0 |
end_percent | En qué fase termina el control | 0.6~1.0 |
Consejo: configura end_percent entre 0.5 y 0.7. Así, ControlNet determina la composición durante la primera mitad y el modelo puede desarrollar los detalles con libertad durante la segunda. El resultado suele ser más natural.
OpenPose: controla la pose de una persona
- Usa el preprocesador DWPose Estimator u OpenPose Pose (de controlnet_aux) para extraer el esqueleto de una foto de una persona.
- Comprueba que el esqueleto sea correcto con Preview Image.
- Conecta un modelo ControlNet de OpenPose.
La persona generada adoptará la misma pose que en la foto, pero su aspecto, ropa y entorno dependerán del prompt.
Depth: conserva la estructura espacial
Usa un preprocesador como Depth Anything para generar un mapa de profundidad. Es útil para:
- Rediseñar una foto de interiores con un estilo de decoración diferente
- Conservar la perspectiva de un edificio o una escena y cambiar la estación, la hora o el estilo artístico
Combina varios ControlNet
Encadena varios nodos Apply ControlNet: conecta las salidas positive y negative del primero a las entradas del segundo. Por ejemplo, OpenPose puede controlar la pose y Depth, la escena. Reduce moderadamente la intensidad de cada uno para evitar conflictos.
Problemas habituales
| Problema | Causa |
|---|---|
| Error o ningún efecto | La versión del modelo ControlNet no coincide con la del modelo base (por ejemplo, usar un ControlNet de SD 1.5 con SDXL) |
| Imagen rígida o con marcas de líneas | strength es demasiado alto o end_percent es demasiado elevado |
| La persona aparece deformada | La proporción de la imagen de referencia y la de salida no coincide, o la extracción del esqueleto es incorrecta |
| No aparece el nodo del preprocesador | Aún no has instalado comfyui_controlnet_aux |
Actualizado 12 de octubre de 2026