Models & Parameters

ControlNet: Lock the Composition, Keep the Style Open

Also called what is controlnet, ip adapter, control net, openpose controlnet, depth map conditioning

ControlNet is an add-on network that conditions a diffusion model on a structural map extracted from a reference image, such as a pose skeleton, a depth map, or an edge outline. The prompt still decides the style and content, but the layout is pinned to the map you supply.

What it adds to a diffusion model

A plain prompt gives you no control over layout. You can describe a low angle shot of a figure with an arm raised and get a different composition on every run. ControlNet closes that gap: a copy of the model's encoder is trained to accept a second input, a structural map, and to inject it at every denoising step.

The map is extracted from an image you provide by a preprocessor. An openpose preprocessor reduces a photo to a stick figure. A depth preprocessor turns it into a greyscale distance field. A canny preprocessor reduces it to white outlines on black. What survives the preprocessing is what gets enforced, which is the whole design: throw away everything you want the model to reinvent, keep only the part you want held.

Picking the preprocessor

PreprocessorPreservesUse it for
OpenposeJoint positionsReposing a figure, keeping a gesture
DepthSpatial layout, volumeInteriors, camera geometry, product staging
Canny / lineartExact outlinesLogos, packaging, mechanical shapes
Scribble / softedgeLoose shapesYour own sketch as a layout
TileLocal detailUpscaling without inventing new content

The most common mistake here is reaching for canny by default. Canny copies the silhouette exactly, so if the source is a photo of a person, the generated person keeps that person's proportions and haircut. When you want the pose but not the body, openpose is the right tool.

The three numbers that matter

Control weight sets how loudly the map speaks, usually 0 to 2. Real working range is 0.5 to 0.9. Higher is not more accurate, just more rigid.

Guidance start is the fraction of the denoise where conditioning begins, normally 0. Leaving it at 0 is right for layout, since composition is decided in the earliest steps.

Guidance end is where it stops, and it is the underused one. Setting it to 0.6 or 0.7 hands the last third of the process back to the model, which is where shading, texture, and grain get added. This single change fixes most complaints about traced looking output.

When reaching for ControlNet is a waste of time

It cannot add knowledge. If the checkpoint cannot render a convincing horse, a perfect depth map of a horse produces a well shaped bad horse. It also cannot rescue a contradictory prompt: ask for a seated figure while feeding a standing openpose skeleton and you get a broken compromise, usually bent at the hips.

On hosted platforms you often do not see a ControlNet toggle at all. The equivalent surface is a reference image slot, sometimes labelled structure reference or style reference, with the preprocessor chosen for you. The tuning instinct still transfers: if the output feels copied, weaken the reference or shorten how long it applies, and if it feels ignored, the map itself is probably too vague.

The prompt for this

A starting point that reliably produces the effect. Adjust the subject and setting; keep the technical clauses.

A samurai in weathered lacquer armour standing in falling snow, dusk backlight, shallow depth of field, 85mm portrait

Try ControlNet yourself

Open the generator with a starting point already filled in.

Frequently asked questions

What is the difference between ControlNet and an IP adapter?
ControlNet controls structure: where things are, what pose a body holds, how deep the space is. An IP adapter controls appearance: style, palette, and to a degree identity, taken from a reference image. They solve opposite halves of the problem and are often stacked, one for layout and one for look.
Which ControlNet preprocessor should I use?
Pick by what you need preserved. Openpose for body and limb position while everything else changes. Depth when the spatial arrangement and camera geometry matter. Canny or lineart when the exact silhouette matters, for example a product or a logo. Scribble when you drew the layout yourself.
What control weight should I set?
Start at 0.7 and adjust. Below about 0.4 the guidance is a suggestion the model can overrule. Above about 1.0 output starts looking traced: flat lighting, stiff edges, and the prompt losing its say. Weight is the first thing to lower when a result feels rigid.
Why does my ControlNet output look flat or plastic?
Almost always weight held too high for too long. Drop the weight to 0.6 and set the guidance end step around 0.7 so the final passes are free to add shading and texture. Also check the preprocessor preview, since a noisy edge map bakes noise straight into the render.
Can I use more than one ControlNet at once?
Yes, and depth plus openpose is a common pair for figures in a room. Keep the combined weight modest, roughly 1.0 to 1.2 across both, otherwise the two maps fight and you get warped anatomy where they disagree.

Related terms