santa hat
deerdeer nosedeer glow
Sign In

Black Magic Master Class - Hyper Perspective with Controlnet MLSD


If you find our articles informative, please follow me to receive updates. It would be even better if you could also follow our ko-fi, where there are many more articles and tutorials that I believe would be very beneficial for you!

ko-fi 就更好了,
那里有多得多的文章和教程! 相信能使您获益良多.

For collaboration and article reprint inquiries, please send an email to [email protected]
合作和文章转载 请发送邮件至
[email protected]

by: Ash0080

Hello everyone, today we will continue to explore ControlNet, and our focus today is on MLSD. MLSD is probably a unfamiliar concept for most SD users, as it is mainly used to extract straight lines, with classic applications in architectural drawing and interior design. Here's an example for comparison, I have also included the line drawing extracted by Canny.

original canny MLSD

from book < 基礎から実践まで全網羅 背景の描き方 > (高原 さと)

Experimentation and Speculation

Before we dive into today's main topic, let's first get familiar with MLSD. By using MLSD, we can easily maintain the same perspective while adjusting the prompts to generate scenes in different styles, which is very convenient.

Using Canny or Lineart, it's difficult to achieve the same level of accuracy in perspective, and they are more likely to generate incorrect perspective.

Therefore, we can speculate that MLSD is a model specialized in perspective.

Verification and Expansion

Since we suspect that MLSD may be specialized in perspective, let's try something more unconventional :D

I found a random architectural wireframe on Google and fed it into MLSD to see if it can correctly draw the spatial perspective.

Although there are some errors present, overall it seems like there aren't major issues with the perspective.

Since there are no major issues with the perspective, let's add a character to the scene. We can add a separate layer in Photoshop and do some cleaning up of the background.

The result doesn't look very good, it seems like MLSD is not very good at drawing characters. This is not surprising, as MLSD is mainly designed to extract straight lines and is not specifically optimized for drawing complex objects such as characters.

Since we separated the background and the character into different layers in Photoshop, let's try feeding them separately into Lineart (Canny can also be used, but Lineart has stronger constraints on the lines, making it more stable in this hyper-perspective scenario) and MLSD. Don't forget to use ADetailer to fix up the face.

"Hurra!", you've learned another eye-catching skill!


(masterpiece, best_quality, absurdres:1.2), (perspective:1.3),
1girl, (from_below:1.3), pencil_skirt, high_heels, (very_long_hair, white_hair, floating_hair:1.2), hyper wide angle, looking_down, fantasy, scenery, 1other, (architecture, skyscraper:1.2) street, bird,
Negative prompt: easynegative, np_simple_negatives, (normal_quality, low_quality, worst_quality:1.3), fishnets, black background,( linear_hatching, hatching_\(texture\):1.4), outline, sketch, open_mouth,
Steps: 25, Sampler: DPM++ 2M Karras, CFG scale: 6, Seed: 269914560, Size: 768x512, Model hash: 1e42760ba7, Model: bbmixLIN_v10, Denoising strength: 0.53, Clip skip: 2, ADetailer model:, ADetailer confidence: 0.3, ADetailer dilate/erode: 32, ADetailer mask blur: 4, ADetailer denoising strength: 0.4, ADetailer inpaint only masked: True, ADetailer inpaint padding: 32, ADetailer version: 23.6.2, ControlNet 0: "preprocessor: none, model: control_v11p_sd15_lineart [43d4be0d], weight: 0.9, starting/ending: (0, 0.75), resize mode: Crop and Resize, pixel perfect: True, control mode: Balanced, preprocessor params: (512, 64, 64)", ControlNet 1: "preprocessor: none, model: controlnet11Models_mlsd [77b5ad24], weight: 0.95, starting/ending: (0, 0.9), resize mode: Crop and Resize, pixel perfect: False, control mode: Balanced, preprocessor params: (512, 0.1, 0.1)", Hires upscale: 2, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: v1.3.2


MLSD has a very strong ability to draw perspective, but its shortcomings are also very obvious. It is almost impossible to draw characters properly. Therefore, by combining it with other ControlNet models, we can achieve things that SDs could not do or were difficult to do before. Hyper perspective is just one of them. Perhaps you can discover other wonderful uses, and we look forward to sharing and exploring these new discoveries with you.

Although it only takes 10 minutes to read through this short article, it took me two days to write it.

If you found this article helpful, please subscribe to our Fanbox to support us.

Thank you.