Nodes/ComfyUI-Leputen-Utils/DeepBump Normal to Curvature
ComfyUI Node

DeepBump Normal to Curvature

Curvature maps without a 3D package — DeepBump does the math

By lilquail·Created 9 months ago·Updated 9 months ago· 1
DeepBump Normal to Curvature
  • image
  • IMAGE
blur_radiusMEDIUM

A curvature map - grayscale where white marks convex (outward) areas and black marks concave (inward) ones - is one of those textures you only realize you need when you're trying to mask edge wear on a game asset. You can bake it in a 3D package if you have the geometry. If you only have a normal map, DeepBump Normal to Curvature derives it with the DeepBump AI model, right inside ComfyUI.

It's the honest shortcut: no mesh, no bake, just a normal map in, a curvature-style mask out. People use it for wear-and-tear masks, grime overlays, edge highlighting, and detail maps - anywhere you want a mask that reacts to surface shape.

How it works

The node runs the DeepBump-dml normals→curvature model under ONNX Runtime, in 256px tiles so it stays light on VRAM. On Windows it can use DirectML for GPU acceleration; otherwise it falls back to CPU.

The one meaningful knob is blur_radius (SMALLEST → LARGEST, default MEDIUM), which controls the scale of features the model picks up. A small radius catches fine detail like scratches; a large radius reads broad shapes like panel bevels. There's no right answer - it depends on what your mask is for, so expect to try a couple of settings.

Output is a single IMAGE, grayscale, same resolution as the input.

Inputs and outputs

  • image - the input normal map. The tooltip notes it accepts DirectX or OpenGL format, so you don't need to flip Y first.
  • blur_radius - feature-scale selector, MEDIUM default.

One IMAGE output. It's a standalone generator, so it doesn't need the rest of the DeepBump suite to be useful.

Install

Same pack, same caveat about the extra repo:

cd ComfyUI/custom_nodes
git clone https://github.com/lilquail/ComfyUI-Leputen-Utils

First startup clones DeepBump-dml into vendor/DeepBump and installs onnxruntime. For Windows GPU acceleration: pip install onnxruntime-directml, then restart. Find the node under Leputen-Utils → DeepBump.

Troubleshooting

  • "DeepBump modules not found" - the vendor clone failed; fix it with git clone https://github.com/lilquail/DeepBump-dml.git vendor/DeepBump inside the pack folder.
  • Everything is gray mush - check the input is really a normal map, and try a different blur_radius. SMALLEST on a smooth map gives you noise; LARGEST on a noisy map gives you blobs. The scale knob is the whole game here.
  • Slow on CPU - expected. Windows + onnxruntime-directml is the fix; the startup log confirms which provider is active.
  • Seams between tiles - the DeepBump models tile internally; if you're seeing visible boundaries, make sure the input is actually tileable first, since these models assume textures.

Small but genuinely useful node. Curvature masks are a pain to produce any other way when you don't have geometry, and "normal map in, wear mask out" is about as direct as texture tooling gets.

CategoryLeputen-Utils/DeepBump

Inputs (2)

NameTypeDefaultDescription
imageIMAGEThe input normal map (DirectX or OpenGL format).
blur_radiusCOMBOMEDIUMControls the scale of detected features.

Outputs (1)

NameTypeDescription
IMAGEIMAGE