ControlNet in ComfyUI 2026: A Step-by-Step Pose-to-Image Workflow
ComfyUI is powerful and intimidating. This tutorial walks a complete pose-to-image ControlNet workflow node by node - the fastest way to learn both at once.
💡 What You Will Learn
ComfyUI is powerful and intimidating. This tutorial walks a complete pose-to-image ControlNet workflow node by node - the fastest way to learn both at once.
📜 Table of Contents
Why Start With Pose-to-Image
Pose-to-image is the ideal ControlNet starter: the input (a skeleton) is easy to produce, the effect is dramatic (your character strikes the exact pose), and the workflow teaches the node patterns that transfer to depth, Canny and everything else. You will use ComfyUI (127,047 stars) and ControlNet (34,064 stars, plus the sd-webui plugin ecosystem at 17,852 stars - all fetched 2026-08-13).
Step 1: Get the Pieces
- Install ComfyUI and launch it.
- Download a ControlNet OpenPose model (control_v11p_sd15_openpose or the SDXL equivalent) into ComfyUI/models/controlnet.
- Download the matching base model into ComfyUI/models/checkpoints (SD1.5 or SDXL - the ControlNet must match the base model family).
- Install ComfyUI's ControlNet helper custom node if the workflow you load needs it.
Step 2: Extract the Pose
From a reference photo, run the OpenPose preprocessor node (part of ComfyUI's built-in controlnet support): load the image, run pose estimation, and you get a skeleton image. This skeleton is your conditioning input.
Step 3: Build the Node Graph
Load the official ControlNet example workflow (ComfyUI ships templates) and wire it as:
Load Checkpoint -> CLIP Text Encode (positive prompt)
-> CLIP Text Encode (negative prompt)
Load Image (skeleton) -> ControlNet Loader -> ControlNet Apply
-> KSampler (sampling) -> VAE Decode -> Save Image
The critical edge: ControlNet Apply takes both the checkpoint model and the skeleton, and outputs the conditioned model that KSampler uses. Miss that edge and ControlNet silently does nothing.
Step 4: The Settings That Matter
- strength: 0.6-0.9. Too low and the pose drifts; too high and the style dies. Start at 0.8.
- start/end percent: apply ControlNet from 0% to 70% of steps, then let the sampler free-run - this keeps pose fidelity while improving texture.
- CFG: 6-7 for SD1.5, lower for SDXL.
- Positive prompt: describe the subject fully - the pose comes from the skeleton, but identity, clothing and lighting come from your words.
Step 5: Iterate
Generate 4-6 variants with the same seed pattern: fix the seed, vary strength 0.6/0.7/0.8, and pick. When the pose is right but the face is wrong, the problem is the base model or the prompt, not ControlNet - do not chase it with more control.
The Debug Checklist
- Skeleton visible in the preview? Yes - then ControlNet is receiving input.
- Pose ignored? Strength too low or the wrong ControlNet model family.
- Weird seams? The ControlNet model does not match the checkpoint generation.
Fifteen minutes of node-dragging buys you the pattern that unlocks every other ControlNet mode.
