Nodes/ComfyUI-Apt_Preset/texture_create
ComfyUI Node

texture_create

Bake normals, curvature, height and highlight maps from one image

By cardenluo·Created 2 years ago·Updated a day ago· 324
texture_create
  • image
  • Normals
  • Curvature
  • Height
  • Highlight
normals_overlap
curvature_blur
height_seamlesstrue
highlight_threshold200
highlight_contrast1.5
highlight_sharpentrue

If you've ever generated a texture with SD and then sat in Blender watching a flat, boring material, this is the node you were missing. texture_create takes one flat image and bakes four PBR-style maps from it: Normals, Curvature, Height, and Highlight. It's a DeepBump-style normal baker living inside ComfyUI - feed it a diffuse texture, get maps you can drop straight into a material stack or the pack's own texture_render preview.

The lineage is real: DeepBump (HugoTini's Blender addon) is the well-known tool for generating normal and height maps from color textures, and this node wraps its deepbump256.onnx model. On Reddit, DeepBump discussions go back to the "SD textures + Blender" era - people have been doing this workflow for years, just with more steps between.

How it works

The pipeline is four stages, one per output:

  • Normals - the flat image is run through the DeepBump ONNX model in 256px tiles. normals_overlap (SMALL/MEDIUM/LARGE) sets how much tiles overlap; more overlap means fewer seams, slower run.
  • Curvature - derived from the normals by a directional edge convolution plus a gaussian blur. curvature_blur (7 steps from SMALLEST to LARGEST) controls how soft the result is - higher = smoother, catches bigger surface bends.
  • Height - normals integrated into a grayscale heightfield via the classic Frankot-Chellappa method. height_seamless (on by default) mirrors the edges so the height map tiles without a seam - leave it on unless you want a bordered bake.
  • Highlight - the one that's not a standard PBR map: it takes pixels brighter than highlight_threshold (default 200), boosts them by highlight_contrast, and optionally sharpens with a Laplacian. It's a quick way to fake glossy highlights on a material.

Each map is computed per image in the batch and stacked back into an IMAGE tensor, so a batch of textures bakes in one pass.

Inputs and outputs

  • image - the flat texture. Anything works, but clean, even lighting bakes best.
  • The four maps: Normals, Curvature, Height, Highlight.

The outputs wire into texture_render for a quick lit preview, or save them and use them in any engine. Normals and Height are the ones you'll actually use in Blender/Unity; Curvature is handy for edge-wear masks; Highlight is the pack's own extra.

Installing it

It's part of ComfyUI-Apt_Preset, but this node has a model dependency the plain install doesn't cover. The DeepBump ONNX file must live at ComfyUI/models/Apt_File/deepbump256.onnx - the README's resource pack (Apt_File) includes it, downloadable from the author's links (or the individual model links on HuggingFace). Install steps:

cd ComfyUI/custom_nodes
git clone https://github.com/cardenluo/ComfyUI-Apt_Preset

then run install.bat (or pip install -r requirements.txt) - onnxruntime is required and isn't a ComfyUI core dependency.

Common issues

The two classic failures are both self-diagnosing from the console: a missing model raises a clear error naming the Apt_File path it looked for (go download it), and missing onnxruntime raises pip install onnxruntime. If the CPU provider is the only one available, expect slow bakes on big images - that's the tiled inference, not a bug. Beyond that, treat the maps as starting points; DeepBump-style bakes love clean inputs and get mushy on noisy AI textures.

CategoryApt_Preset/imgEffect/texture

Inputs (7)

NameTypeDefaultDescription
imageIMAGE
normals_overlapCOMBO3 options: SMALL, MEDIUM, LARGE
curvature_blurCOMBO7 options: SMALLEST, SMALLER, SMALL, MEDIUM, LARGE, LARGER, +1
height_seamlessBOOLEANtrue
highlight_thresholdINT2000–255
highlight_contrastFLOAT1.50.1–5
highlight_sharpenBOOLEANtrue

Outputs (4)

NameTypeDescription
NormalsIMAGE
CurvatureIMAGE
HeightIMAGE
HighlightIMAGE