LogoWonderful Launcher
  • Home
  • Pricing
  • Docs
  • Download

ComfyUI ControlNet Guide: Precise Control Over AI Image Generation

Needs verification

Learn what ControlNet is, how it works in ComfyUI, which control types exist, and how to set up your first ControlNet workflow step by step.

What is ControlNet?

ControlNet is a neural network that adds structural control to AI image generation. Instead of relying on text prompts alone, you provide a reference image — an edge map, a depth map, a skeleton pose — and ControlNet ensures the output follows that structure.

Think of it as giving the AI a blueprint. The text prompt says what to draw, and ControlNet says how to arrange it.

Why Use ControlNet?

Without ControlNetWith ControlNet
AI interprets your prompt freely — poses, compositions, and layouts are unpredictableThe output follows the exact structure of your reference image
Generating a specific pose may take dozens of attemptsOne reference image produces the correct pose on the first try
No way to preserve spatial layout from an existing imageDepth maps, edges, and poses can all be extracted and reused

Control Types at a Glance

ControlNet supports many control methods. Each extracts different information from a reference image:

Line and Edge Controls

TypeBest ForDescription
CannyPrecise structureDetects detailed edges — great for architecture, mechanical designs, and any scene with clear outlines
LineartIllustrationsCleaner line extraction than Canny, supports anime-style line art
SoftEdgeSoft compositionsCaptures large contours only, giving the AI more creative freedom
MLSDArchitectureDetects straight lines only — ideal for buildings and interior design
ScribbleSketchesWorks with rough hand-drawn doodles as input

Depth and Spatial Controls

TypeBest ForDescription
DepthScene layoutCreates a depth map (white = close, black = far) to preserve spatial relationships
NormalMapSurface detailControls surface texture and lighting direction
OpenPoseHuman posesDetects body skeleton keypoints to replicate poses

Style and Other Controls

TypeBest ForDescription
ShuffleStyle transferRearranges visual elements from the reference image
TileUpscalingEnhances detail in blurry or low-resolution images
IP-AdapterFace/style consistencyMaintains visual identity across generations
InpaintPartial editingModifies specific regions while keeping the rest unchanged

How ControlNet Works in ComfyUI

The workflow has three stages:

  1. Preprocessing — A preprocessor node extracts control information from your reference image (e.g., the Canny node extracts edges, a Depth preprocessor generates a depth map)
  2. Condition injection — The Apply ControlNet node combines the extracted features with your text prompt conditions
  3. Sampling — The KSampler generates the image, respecting both the text description and the structural constraints

Setting Up Your First ControlNet Workflow

What You Need

ItemWhere to Get It
A checkpoint model (e.g., DreamShaper 8)Civitai
A ControlNet model matching your checkpoint versionHuggingFace — ControlNet v1.1
ComfyUI ControlNet Auxiliary Preprocessors pluginGitHub

ControlNet models are version-specific. SD1.5 ControlNet models only work with SD1.5 checkpoints. SDXL ControlNet models only work with SDXL checkpoints. They are not interchangeable.

File Placement

ComfyUI/
├── models/
│   ├── checkpoints/
│   │   └── dreamshaper_8.safetensors
│   └── controlnet/
│       └── control_v11p_sd15_canny.pth
└── custom_nodes/
    └── comfyui_controlnet_aux/   (installed via Manager)

Building the Workflow

  1. Load Checkpoint — loads your base model
  2. Load Image — loads your reference photo
  3. Preprocessor node (e.g., Canny) — extracts control features from the reference
  4. Load ControlNet Model — loads the matching ControlNet model file
  5. Apply ControlNet — merges extracted features into your prompt conditioning
  6. CLIP Text Encode (x2) — positive and negative prompts
  7. KSampler — generates the image
  8. VAE Decode → Save Image — decodes and saves the result

Key Parameters

ParameterNodeWhat It Does
strengthApply ControlNetHow strictly the output follows the reference (0.0–1.0). Start at 0.8
start_percentApply ControlNetWhen ControlNet influence begins during sampling (0.0 = from the start)
end_percentApply ControlNetWhen ControlNet influence ends (1.0 = until the end)

Lowering end_percent to 0.7–0.8 often produces more natural results — the AI gets structural guidance early, then adds its own detail in later steps.

Using Multiple ControlNets Together

You can chain multiple ControlNet models in a single workflow. For example, combine Depth (for spatial layout) with OpenPose (for pose) to control both scene structure and character pose simultaneously.

Connect them in series: the output of the first Apply ControlNet node feeds into the conditioning input of the second Apply ControlNet node.

Common Issues and Fixes

ControlNet has no visible effect

  • Verify the ControlNet model matches your checkpoint version (SD1.5 with SD1.5, SDXL with SDXL)
  • Increase the strength value
  • Make sure the preprocessor output actually contains meaningful features (preview it)

Output follows structure too rigidly

  • Lower strength to 0.5–0.7
  • Set end_percent to 0.7 so the AI has freedom in later sampling steps

Deformed or broken anatomy

  • Use OpenPose ControlNet alongside your other ControlNet to enforce correct body structure
  • Add anatomy-related negative prompts: deformed, extra limbs, bad anatomy

"ControlNet model not found" error

  • Check that the .pth or .safetensors file is in ComfyUI/models/controlnet/
  • Restart ComfyUI after adding new model files

Preprocessor node missing

  • Install the ComfyUI ControlNet Auxiliary Preprocessors plugin
  • Restart ComfyUI after installation

Related Guides

Ready to try specific ControlNet types? Check out:

  • Canny ControlNet — Edge-based structure control
  • Depth ControlNet — Spatial depth and perspective
  • OpenPose ControlNet — Human pose control

Source References

  • ComfyUI ControlNet usage example
  • ControlNetApply node documentation
  • ComfyUI models concept

Start with Wonderful Launcher if this issue touches your real ComfyUI environment. Use the docs to understand the fix, and use the app to inspect the machine you already have.

Download Wonderful Launcher

Did this fix your issue?

Your answer helps prioritize verified ComfyUI repairs.

Table of Contents

What is ControlNet?
Why Use ControlNet?
Control Types at a Glance
Line and Edge Controls
Depth and Spatial Controls
Style and Other Controls
How ControlNet Works in ComfyUI
Setting Up Your First ControlNet Workflow
What You Need
File Placement
Building the Workflow
Key Parameters
Using Multiple ControlNets Together
Common Issues and Fixes
ControlNet has no visible effect
Output follows structure too rigidly
Deformed or broken anatomy
"ControlNet model not found" error
Preprocessor node missing
Related Guides
Source References