TL;DRControlNet and similar tools steer image generation with extra conditioning — pose, edges, depth.
Plain text prompts can't precisely control composition. ControlNet adds a conditioning input — an edge map, human pose skeleton, depth map, or scribble — that constrains the diffusion to match that structure while the prompt sets style/content. It's how you get a generated image in exactly the pose or layout you want. Part of a broader toolkit (img2img, inpainting, LoRAs) for directed, controllable generation.
Key points
Add structural conditioning (pose/edges/depth)
Constrains composition while prompt sets style
Precise control beyond text alone
Part of img2img/inpainting/LoRA toolkit
Common mistakes
Expecting precise layout from text alone
Wrong conditioning type for the goal
Over-constraining and killing creativity
Try it: Explain how a pose skeleton conditions a generated figure.
Example code
<!doctype html><html><head><meta charset="utf-8"></head>
<body style="background:#06040d;color:#e6e0ff;font-family:monospace;padding:20px"><pre>prompt: "a knight" + ControlNet pose skeleton
→ knight generated in EXACTLY that pose
edges/depth/scribble = other controls</pre></body></html>