ComfyUI Node Runs on cloud

BAE Normal Map

The reliable standard normal estimator, zero knobs

By Fannovel16·Created 3 years ago·Updated 4 months ago· 4,138
BAE Normal Map
  • image
  • IMAGE
resolution512

If you want a normal map and don't want to think about it, this is the node. BAE is the standard normal-map estimator for ControlNet - the safe, reliable default that the control_v11p_sd15_normalbae model was practically built around. One input, one output, no parameters to fuss with. It produces a surface-normal map (the characteristic purple-blue-green image showing which way each surface faces) to feed a normal ControlNet.

What it's for

A normal map encodes surface orientation rather than distance - where a depth map says "this is near, that is far," a normal map says "this surface faces up-left, that one faces toward the camera." That's the information a renderer uses to fake fine geometric detail, and it's what a normal ControlNet conditions on. Normal maps pair naturally with relighting and material-aware workflows (IC-Light and friends): give the model an accurate map of how surfaces face and you can convincingly relight or re-material a subject.

BAE (weights: scannet.pt) is the estimator the ControlNet ecosystem standardized on. It's not the flashiest - DSINE, another node in this pack, gives sharper, more modern normals - but BAE is dependable and matched to the canonical normalbae ControlNet, which is why it's the default recommendation.

The inputs and output

About as simple as a node gets:

  • image - your source.
  • resolution (default 512) - processing size; match it to your render. That's the only knob.

The single output is an IMAGE - the normal map - which wires into a ControlNet Apply node with a normal ControlNet (control_v11p_sd15_normalbae). Inert until that model is loaded.

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 scannet.pt weight downloads from HuggingFace on first run.

Where people get burned

The classic mistake is confusing normal maps with depth maps. They look different (normals are colorful, depth is grayscale) and they do different jobs (surface orientation vs distance), and crucially their ControlNets are not interchangeable. A BAE normal map feeds a normal ControlNet; feed it to a depth model and you'll get nonsense. Decide what you're actually after - geometry for composition is depth, surface facing for lighting is normals - and load the matching model.

Second, the honest comparison within this pack: BAE is the safe standard, DSINE is the sharper modern pick, and MiDaS normal is the older, rougher one. If BAE's normals aren't detailed enough for a demanding relight, try DSINE. But for most normal-map work, BAE's simplicity and its tight match to the normalbae ControlNet make it the sensible default - no field-of-view assumptions, no backbone choices, nothing to get wrong.

And the universal reminder: the normal map does nothing on its own. Load the normal ControlNet, route the map through a ControlNet Apply node, and mind the usual weight discipline at that stage.

CategoryControlNet Preprocessors/Normal and Depth Estimators

Inputs (2)

NameTypeDefaultDescription
imageIMAGE
resolutionoptINT51264–16384

Outputs (1)

NameTypeDescription
IMAGEIMAGE