{"course":{"slug":"ai-images","title":"Image Generation, in Practice","url":"https://addaly.com/learn/ai-images","level":"beginner","track":"create"},"lesson":{"slug":"choosing-the-control-type","title":"Canny, lineart, depth, softedge, pose, normal","url":"https://addaly.com/learn/ai-images/choosing-the-control-type","position":38,"of":69,"minutes":8,"answer":"Each control type preserves one property of the input and discards the rest, so the choice is made by naming what must survive from the source and what must be free to change.","keyIdea":"Each control type preserves one property of the input and discards the rest, so the choice is made by naming what must survive from the source and what must be free to change."},"body":{"format":"markdown","text":"## One question decides it\n\nNot \"which control is best\". **What must survive from my input, and what must be free to change?**\n\nAnswer that and the control picks itself.\n\n## The types, and what each keeps\n\n**Canny** detects hard edges and produces a thin black-and-white line image. It preserves *every* edge, including texture edges, noise and the grain of a wall. Extremely faithful and correspondingly rigid. Use it when the source is clean and you want the output to match it closely: a product outline, a logo shape, an architectural photograph you are restyling. Its threshold settings matter enormously: too low and you capture noise, too high and you lose the object.\n\n**Lineart** is a learned edge extractor that produces drawing-like lines. It ignores texture and keeps object boundaries. Better than Canny for anything organic, and the right choice for turning a clean drawing into an image.\n\n**Scribble** is the loosest. Trained on rough, wobbly, human lines. Forgiving of bad drawing, which is exactly what you want from a five-minute sketch.\n\n**Softedge** (HED and its relatives) sits between lineart and depth: soft, thick boundaries that convey form without dictating exact contours. It is the most forgiving control for photographic sources and my default when I want \"roughly this arrangement\" rather than \"exactly this shape\".\n\n**Depth** keeps distance and volume, discards edges, texture and colour. The right tool for spatial arrangement and perspective, as the previous lesson covered.\n\n**Normal** encodes surface orientation: which way each bit of a surface is facing. It preserves three-dimensional form and how light will fall on it, more finely than depth. Useful for detailed objects, faces and anything where the sculptural quality matters.\n\n**OpenPose** extracts a skeleton: joints and limbs, nothing else. It keeps a body's position and gesture and discards body shape, clothing, age and identity entirely. Unmatched for posing a figure, and useless for anything that is not a body.\n\n**Segmentation** labels regions by category: sky here, building there, road below. Keeps layout at the level of what-kind-of-thing-goes-where, discards all form. Good for landscape and urban scenes.\n\n> Figure: Each control keeps one property and discards the rest. Layers, top to bottom: Canny: every hard edge (Keeps texture, grain and JPEG blocks too. Rigid.); Lineart: object boundaries (Ignores texture. Right for a clean drawing.); Scribble: rough human lines (Forgiving of a five-minute biro sketch.); Softedge: thick soft boundaries (Roughly this arrangement, not exactly this shape.); Depth: distance and volume (Discards edges, texture and colour entirely.); Normal: surface orientation (Sculptural form, and how light will fall on it.); OpenPose: joints and limbs (Discards body shape, clothing, age, identity.); Segmentation: regions by category (Sky here, building there. All form discarded.). The question is never which is best. Name what must survive from the input and what must be free to change, and the control picks itself.\n\n## Matching a job to a type\n\n- Turn my sketch into a photograph → **scribble**\n- Restyle this photograph but keep the exact objects → **canny** or **lineart**\n- Keep this room's geometry, change everything about its look → **depth**\n- Put a different person in this exact pose → **openpose**\n- Keep this figure's pose and the room's layout → **openpose** plus **depth**\n- Keep the sculptural form of this object → **normal**\n- Keep the general arrangement, let details change → **softedge**\n- Recolour a product but hold its silhouette exactly → **canny**, high strength\n\n## The two settings that matter more than the type\n\n**Strength**: how hard the control pushes, usually 0 to 2 with 1.0 as neutral. Below 0.5 it is a suggestion; above 1.3 it dominates and the output starts to look like a coloured-in control image. The working range is 0.6 to 1.0 for most jobs.\n\n**Start and end steps**: when the control is active. Ending it at 0.6 to 0.8 of the schedule is right for most work, for the reason the sketch lesson gave: the last portion of sampling should be free to build texture. Starting late (around 0.2) is an unusual but useful trick when you want the model to establish its own composition and then be nudged toward your structure.\n\nPeople reach for a different control type when the real problem is that strength is at 1.0 and should be at 0.7. Change the settings before the type.\n\n## The failure mode of every control\n\nAll of them share one: **too much control produces something that looks constructed.** Flat, posed, slightly dead, with the subject's outline just a bit too exactly matching the input.\n\nThe cause is straightforward. The generative process has degrees of freedom, and each constraint removes some. Constrain the edges, the depth, the pose and the colour and there is very little left for the model to decide, so the output stops having the incidental richness that makes an image look real: the small asymmetries, the details nobody specified.\n\nThe practical rule that follows: **constrain only what the brief actually requires, at the lowest strength that holds it.** If the brief needs the pose, use pose and nothing else. Adding depth \"for safety\" costs you the liveliness and buys you nothing the brief asked for."},"check":{"question":"You need to put a different person into the exact pose of a reference photograph, with different clothing, build and setting. Which control type fits?","options":[{"text":"Canny, because the edge map captures the outline of the pose precisely and gives the strongest possible structural constraint.","correct":false,"tempting":"Canny preserves the person's actual silhouette, clothing edges and build, so the new figure would inherit the body you were trying to replace."},{"text":"Depth, because it preserves the three-dimensional arrangement of the limbs while leaving surface appearance free for the prompt to decide.","correct":false,"tempting":"Depth carries body volume as well as limb position, so build and clothing bulk survive alongside the pose."},{"text":"Softedge, because its thick soft boundaries convey the position of the figure without dictating the exact contours of the body.","correct":false,"tempting":"Closer, and still carries a good deal of the original silhouette; softedge is for \"roughly this arrangement\" rather than for stripping a pose out of a body."},{"text":"OpenPose, because it extracts joint positions only and discards build, clothing and identity.","correct":true}]},"prev":{"slug":"depth-from-a-blockout","title":"Get the perspective right by building it","url":"https://addaly.com/learn/ai-images/depth-from-a-blockout"},"next":{"slug":"regional-prompting","title":"Different words for different parts of the frame","url":"https://addaly.com/learn/ai-images/regional-prompting"},"authorship":"Founder and series editor: Dr Mustafa Mun. Written by AI models to a written standard. Exam keys checked blind by a second model: 3,665 of 3,666 agreed. Academic review invited.","review":{"status":"Draft, open for academic review"},"cite":"Addaly (2026) 'Canny, lineart, depth, softedge, pose, normal', in Image Generation, in Practice. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/ai-images/choosing-the-control-type (Accessed: 13 October 2026).","licence":{"name":"CC BY-NC-SA 4.0","url":"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"reader":{"schema":1,"title":"Canny, lineart, depth, softedge, pose, normal","courseTitle":"Image Generation, in Practice","module":{"index":4,"slug":"steering-with-images","title":"Steering with pictures instead of adjectives"},"answer":null,"keyIdea":"Each control type preserves one property of the input and discards the rest, so the choice is made by naming what must survive from the source and what must be free to change.","hero":{"kind":"figure","figure":{"t":"figure","label":"Figure","figure":{"type":"stack","title":"Each control keeps one property and discards the rest","layers":[{"label":"Canny: every hard edge","detail":"Keeps texture, grain and JPEG blocks too. Rigid."},{"label":"Lineart: object boundaries","detail":"Ignores texture. Right for a clean drawing."},{"label":"Scribble: rough human lines","detail":"Forgiving of a five-minute biro sketch."},{"label":"Softedge: thick soft boundaries","detail":"Roughly this arrangement, not exactly this shape."},{"label":"Depth: distance and volume","detail":"Discards edges, texture and colour entirely."},{"label":"Normal: surface orientation","detail":"Sculptural form, and how light will fall on it."},{"label":"OpenPose: joints and limbs","detail":"Discards body shape, clothing, age, identity."},{"label":"Segmentation: regions by category","detail":"Sky here, building there. All form discarded."}],"caption":"The question is never which is best. Name what must survive from the input and what must be free to change, and the control picks itself."},"alt":"Figure: Each control keeps one property and discards the rest. Layers, top to bottom: Canny: every hard edge (Keeps texture, grain and JPEG blocks too. Rigid.); Lineart: object boundaries (Ignores texture. Right for a clean drawing.); Scribble: rough human lines (Forgiving of a five-minute biro sketch.); Softedge: thick soft boundaries (Roughly this arrangement, not exactly this shape.); Depth: distance and volume (Discards edges, texture and colour entirely.); Normal: surface orientation (Sculptural form, and how light will fall on it.); OpenPose: joints and limbs (Discards body shape, clothing, age, identity.); Segmentation: regions by category (Sky here, building there. All form discarded.). The question is never which is best. Name what must survive from the input and what must be free to change, and the control picks itself."}},"blocks":[{"t":"h2","id":"one-question-decides-it","runs":[{"text":"One question decides it"}]},{"t":"p","runs":[{"text":"Not “which control is best”. "},{"text":"What must survive from my input, and what must be free to change?","b":true}]},{"t":"p","runs":[{"text":"Answer that and the control picks itself."}]},{"t":"h2","id":"the-types-and-what-each-keeps","runs":[{"text":"The types, and what each keeps"}]},{"t":"p","runs":[{"text":"Canny","b":true},{"text":" detects hard edges and produces a thin black-and-white line image. It preserves "},{"text":"every","i":true},{"text":" edge, including texture edges, noise and the grain of a wall. Extremely faithful and correspondingly rigid. Use it when the source is clean and you want the output to match it closely: a product outline, a logo shape, an architectural photograph you are restyling. Its threshold settings matter enormously: too low and you capture noise, too high and you lose the object."}]},{"t":"p","runs":[{"text":"Lineart","b":true},{"text":" is a learned edge extractor that produces drawing-like lines. It ignores texture and keeps object boundaries. Better than Canny for anything organic, and the right choice for turning a clean drawing into an image."}]},{"t":"p","runs":[{"text":"Scribble","b":true},{"text":" is the loosest. Trained on rough, wobbly, human lines. Forgiving of bad drawing, which is exactly what you want from a five-minute sketch."}]},{"t":"p","runs":[{"text":"Softedge","b":true},{"text":" (HED and its relatives) sits between lineart and depth: soft, thick boundaries that convey form without dictating exact contours. It is the most forgiving control for photographic sources and my default when I want “roughly this arrangement” rather than “exactly this shape”."}]},{"t":"p","runs":[{"text":"Depth","b":true},{"text":" keeps distance and volume, discards edges, texture and colour. The right tool for spatial arrangement and perspective, as the previous lesson covered."}]},{"t":"p","runs":[{"text":"Normal","b":true},{"text":" encodes surface orientation: which way each bit of a surface is facing. It preserves three-dimensional form and how light will fall on it, more finely than depth. Useful for detailed objects, faces and anything where the sculptural quality matters."}]},{"t":"p","runs":[{"text":"OpenPose","b":true},{"text":" extracts a skeleton: joints and limbs, nothing else. It keeps a body’s position and gesture and discards body shape, clothing, age and identity entirely. Unmatched for posing a figure, and useless for anything that is not a body."}]},{"t":"p","runs":[{"text":"Segmentation","b":true},{"text":" labels regions by category: sky here, building there, road below. Keeps layout at the level of what-kind-of-thing-goes-where, discards all form. Good for landscape and urban scenes."}]},{"t":"h2","id":"matching-a-job-to-a-type","runs":[{"text":"Matching a job to a type"}]},{"t":"ul","items":[[{"text":"Turn my sketch into a photograph → "},{"text":"scribble","b":true}],[{"text":"Restyle this photograph but keep the exact objects → "},{"text":"canny","b":true},{"text":" or "},{"text":"lineart","b":true}],[{"text":"Keep this room’s geometry, change everything about its look → "},{"text":"depth","b":true}],[{"text":"Put a different person in this exact pose → "},{"text":"openpose","b":true}],[{"text":"Keep this figure’s pose and the room’s layout → "},{"text":"openpose","b":true},{"text":" plus "},{"text":"depth","b":true}],[{"text":"Keep the sculptural form of this object → "},{"text":"normal","b":true}],[{"text":"Keep the general arrangement, let details change → "},{"text":"softedge","b":true}],[{"text":"Recolour a product but hold its silhouette exactly → "},{"text":"canny","b":true},{"text":", high strength"}]]},{"t":"h2","id":"the-two-settings-that-matter-more-than-the-type","runs":[{"text":"The two settings that matter more than the type"}]},{"t":"p","runs":[{"text":"Strength","b":true},{"text":": how hard the control pushes, usually 0 to 2 with 1.0 as neutral. Below 0.5 it is a suggestion; above 1.3 it dominates and the output starts to look like a coloured-in control image. The working range is 0.6 to 1.0 for most jobs."}]},{"t":"p","runs":[{"text":"Start and end steps","b":true},{"text":": when the control is active. Ending it at 0.6 to 0.8 of the schedule is right for most work, for the reason the sketch lesson gave: the last portion of sampling should be free to build texture. Starting late (around 0.2) is an unusual but useful trick when you want the model to establish its own composition and then be nudged toward your structure."}]},{"t":"p","runs":[{"text":"People reach for a different control type when the real problem is that strength is at 1.0 and should be at 0.7. Change the settings before the type."}]},{"t":"h2","id":"the-failure-mode-of-every-control","runs":[{"text":"The failure mode of every control"}]},{"t":"p","runs":[{"text":"All of them share one: "},{"text":"too much control produces something that looks constructed.","b":true},{"text":" Flat, posed, slightly dead, with the subject’s outline just a bit too exactly matching the input."}]},{"t":"p","runs":[{"text":"The cause is straightforward. The generative process has degrees of freedom, and each constraint removes some. Constrain the edges, the depth, the pose and the colour and there is very little left for the model to decide, so the output stops having the incidental richness that makes an image look real: the small asymmetries, the details nobody specified."}]},{"t":"p","runs":[{"text":"The practical rule that follows: "},{"text":"constrain only what the brief actually requires, at the lowest strength that holds it.","b":true},{"text":" If the brief needs the pose, use pose and nothing else. Adding depth “for safety” costs you the liveliness and buys you nothing the brief asked for."}]}],"check":{"question":[{"text":"You need to put a different person into the exact pose of a reference photograph, with different clothing, build and setting. Which control type fits?"}],"options":[{"text":[{"text":"Canny, because the edge map captures the outline of the pose precisely and gives the strongest possible structural constraint."}],"correct":false,"tempting":[{"text":"Canny preserves the person’s actual silhouette, clothing edges and build, so the new figure would inherit the body you were trying to replace."}]},{"text":[{"text":"Depth, because it preserves the three-dimensional arrangement of the limbs while leaving surface appearance free for the prompt to decide."}],"correct":false,"tempting":[{"text":"Depth carries body volume as well as limb position, so build and clothing bulk survive alongside the pose."}]},{"text":[{"text":"Softedge, because its thick soft boundaries convey the position of the figure without dictating the exact contours of the body."}],"correct":false,"tempting":[{"text":"Closer, and still carries a good deal of the original silhouette; softedge is for “roughly this arrangement” rather than for stripping a pose out of a body."}]},{"text":[{"text":"OpenPose, because it extracts joint positions only and discards build, clothing and identity."}],"correct":true,"tempting":null}],"order":[0,1,3,2],"why":null},"prev":{"slug":"depth-from-a-blockout","title":"Get the perspective right by building it","minutes":9},"next":{"slug":"regional-prompting","title":"Different words for different parts of the frame","minutes":8}}}