DeepBump Color to Normal
AI normal maps from flat textures — DeepBump, now a node
- image
- IMAGE
Hand-deriving a normal map from a flat albedo texture is a genuinely annoying job, and the traditional answer - a grayscale-from-luminance pass into a Sobel filter - produces normals that look like they were carved from the texture's brightness instead of its actual surface. DeepBump Color to Normal is the AI alternative: it runs the DeepBump model, which was originally a standalone app/GIMP plugin for exactly this job, and generates a plausible normal map straight from the color image.
It works best on tiling textures, which is the main case you want it for - texture libraries and game assets. For non-tiling, photographic images it's less impressive; don't expect miracles on a portrait.
How it works
The node calls into the DeepBump-dml library that the pack clones into vendor/DeepBump on first startup. The model runs under ONNX Runtime, processing the image in 256px tiles so it doesn't need a ton of VRAM. The overlap input (SMALL/MEDIUM/LARGE, default LARGE) controls how much adjacent tiles overlap when blending - LARGE gives smoother results with fewer tile seams, at the cost of more compute. On Windows it can use DirectML for GPU acceleration; otherwise it falls back to CPU, which is slow enough that you'll notice.
The output is a standard IMAGE normal map in the same size as the input.
Inputs and outputs
Just two required inputs:
image- the color/albedo texture.overlap- SMALL/MEDIUM/LARGE tile blending.
One IMAGE output - wire it to a saver, a Normal Map Converter (if your engine wants OpenGL Y+), or a strength/normalize node.
Install
Part of ComfyUI-Leputen-Utils, with an extra moving part:
cd ComfyUI/custom_nodes
git clone https://github.com/lilquail/ComfyUI-Leputen-Utils
On first startup the pack auto-clones https://github.com/lilquail/DeepBump-dml into vendor/DeepBump and installs onnxruntime. If you want GPU acceleration on Windows, add:
pip install onnxruntime-directml
Then restart. Node lives under Leputen-Utils → DeepBump.
Troubleshooting
- "DeepBump modules not found" - the clone didn't happen (usually git not on PATH or an interrupted first run). Clone manually:
cd custom_nodes/ComfyUI-Leputen-Utils && git clone https://github.com/lilquail/DeepBump-dml.git vendor/DeepBump. - CPU-only slog - on Windows, install
onnxruntime-directml; the pack logs which provider is active at startup (GPU acceleration enabled via DirectML), so you can confirm it took. - Tile seams in the result - bump
overlapto LARGE. It's slower but that's what it's for. - Works on tiling, falls apart otherwise - by design. The model is trained on texture-style inputs.
Two honest caveats. First, DeepBump is GPLv3 (cloned separately, not bundled), so it's fine for your own work but be aware of the license if this feeds a commercial tool. Second, AI normals are plausible, not accurate - for a hero asset you'll still want to hand-fix the result or compare against a real geometry bake.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | The input color image (albedo/diffuse texture) from which to generate a normal map. | |
| overlap | COMBO | LARGE | Controls tile blending. LARGE produces smoother results but is slower. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |