Realistic Lineart
Natural outlines for photo-based ControlNet
- image
- IMAGE
This extracts natural, sketch-like outlines from an image - thicker and softer than Canny, more "hand-drawn" than a hard edge detector. It's the realistic sibling of the anime lineart node: where Anime Lineart is tuned for drawn content, this one handles photographs and realistic images, pulling out the kind of confident outline an artist would sketch from a photo. Feed those lines into a lineart ControlNet and the model redraws the scene following your outlines while reinventing style, color, and detail. It's a great middle ground between the surgical precision of Canny and the looseness of scribble.
Why you'd reach for it
Canny traces every edge, including texture - great for architecture, noisy for portraits and organic subjects. Realistic Lineart is more selective and more forgiving: it captures the meaningful outlines and lets the small stuff go, which makes it a friendlier structural guide for people, animals, and natural scenes where a perfect edge map would just fight you. The KB frames lineart as the preferred conditioning for character consistency work - you keep the silhouette and let everything else change. This node is the version for realistic source images.
The inputs and output
Two fields, and the toggle is the interesting one:
coarse(default disable) - this switches between two flavors. Disabled gives you the standard realistic lineart: cleaner, finer outlines. Enabled gives youlineart_coarse- bolder, chunkier strokes, more of a rough sketch look. Coarse is the pick when you want the ControlNet to guide loosely and grant the model more creative room; the fine mode holds structure more tightly. Flip it and preview both - the right choice depends on how much freedom you want.resolution(default 512) - working size; match your render. ThePixelPerfectResolutionnode can compute the ideal value.
The single output is an IMAGE - white lines on black - feeding a ControlNet Apply node with a lineart ControlNet (control_v11p_sd15_lineart). The node makes the hint image; the ControlNet model is separate.
Installing it
ComfyUI Manager: search ComfyUI's ControlNet Auxiliary Preprocessors, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/Fannovel16/comfyui_controlnet_aux
pip install -r requirements.txt
Restart ComfyUI. The lineart weights (sk_model.pth / sk_model2.pth) download from HuggingFace on first run.
Where people get burned
First, the constant: the line map is inert without a lineart ControlNet loaded and wired to this node's output. Second, match the flavor to the subject - this is the realistic lineart node, tuned for photos and realistic images; on anime or manga source, the Anime Lineart or Manga Lineart nodes give cleaner results because they're trained for drawn content. Using the wrong lineart node is the most common reason someone's lines come out muddy. Third, think about the coarse toggle as a strength dial in disguise: chunkier coarse lines plus a moderate ControlNet weight is a loose, creative redraw; fine lines plus high weight is a faithful trace. And as always, ending the ControlNet partway through the steps keeps the output from looking mechanically traced - lineart sets the composition, then let the model finish detail on its own.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| coarseopt | COMBO | disable | 2 options: disable, enable |
| resolutionopt | INT | 51264–16384 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |