DeepBump Upscale
Upscaling built for textures, not photos
- image
- IMAGE
Most upscalers in the ComfyUI ecosystem are trained on photos: feed them a 512px normal map and they'll happily invent painterly details that are wrong - a normal map's values have physical meaning, and a generative upscaler that adds a fake crack also adds a fake direction change that breaks your lighting. DeepBump Upscale comes from the texture world, and it treats the input like a material, not a photograph.
It's the lowres→highres model from DeepBump, upscaling game textures and PBR maps 2x or 4x while trying to preserve the surface detail rather than invent plausible-looking ones. If you've got old 256px or 512px texture sets you're modernizing, this is the tool for it.
How it works
The node runs the DeepBump lowres-to-highres model under ONNX Runtime, tiling the image into 256px chunks so a 4K upscale doesn't blow up VRAM. On Windows it can use DirectML for GPU acceleration (install onnxruntime-directml); otherwise it falls back to CPU.
Inputs are minimal:
image- the texture(s) to upscale.scale_factor-x2orx4(default x2).
One IMAGE output at the new resolution.
Where it fits (and where it doesn't)
This sits in a different bucket from the usual upscaling conversation. It's not a generative restorer - it's a pixel-model upscaler aimed at materials, closer in spirit to an ESRGAN-style model than to the detail-inventing restorers people debate for photos. That's the right tool because PBR maps shouldn't have invented details:
- Normal maps - upscale them here (or keep them at native res) rather than through a photo-trained model.
- Height/AO maps - same logic; the values encode shape, don't let a model redraw them.
- Albedo - fine here too, though for pure color detail a general-purpose upscaler may look nicer.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/lilquail/ComfyUI-Leputen-Utils
First startup clones DeepBump-dml into vendor/DeepBump and installs onnxruntime. Windows GPU users: pip install onnxruntime-directml, restart. Node under Leputen-Utils → DeepBump.
Troubleshooting
- "DeepBump modules not found" - vendor clone failed; run
git clone https://github.com/lilquail/DeepBump-dml.git vendor/DeepBumpinside the pack dir. - x4 is slow - it's four times the tiles, and the model isn't a one-pass convenience. Batch small or settle for x2.
- Soft result - DeepBump prioritizes not inventing over sharpening. If the result feels mushy, pair it with a light sharpen rather than a second upscale.
- GPU not used - check the startup log for the DirectML line; install
onnxruntime-directmlon Windows to fix.
The takeaway: keep a DeepBump Upscale handy for material maps and reach for your favorite photo upscaler for anything you actually want to look new. Mixing them up is how you get normal maps with built-in seams.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | The input image(s) to upscale. | |
| scale_factor | COMBO | x2 | Upscaling factor. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |