deepDeband (Banding Removal)
Banding removal that actually looks at the image
- image
- debanded_image
Every smoothing filter can make banding disappear - but a good one knows banding from sky. That distinction is the whole reason deepDeband exists. Where the pack's classical node applies generic math (blur the flats, add dither), deepDeband is a trained model from a real ICIP 2022 paper ("Deep Gradient-Domain Image Debanding," Raymond Zhou et al.), taught on 51,490 pairs of pristine and banded 256×256 image patches. It's seen what banding looks like, and it removes exactly that, rather than softening everything to hide it.
So when do you use it? When you have actual gradient banding - skies, studio backdrops, film grain beds, color-graded footage - and the classical node isn't clean enough. It's the middle option in this pack: more powerful than the math, less setup than ABCD, and it works on both 8-bit and 16-bit input in ComfyUI's usual float32 [0, 1] space. One caveat the author flags hard: it was trained on real images and video frames. Feed it a synthetic gradient, a 3D render, or a vector graphic and it can introduce banding instead of removing it. Plan accordingly.
How it works
Read the node source and the pipeline is a tidy deep-learning affair. The image gets reflection-padded up to a 256-multiple canvas (a neat mirror-tiling trick so edges don't get mangled), pushed through a U-Net in [-1, 1] normalized space, and reassembled. Two model variants pick the strategy:
- deepDeband-w (default, recommended) - processes overlapping tiles and fuses them with weighted bilateral-style blending masks. Smoothest result, no visible seams. This is the one the paper recommends.
- deepDeband-f - processes patches directly, faster, but on big images you can see tile boundaries.
The strength slider then blends the result against your original: 1.0 is full debanding, and the tooltip's advice to drop to 0.3–0.7 when you want to keep intentional gradients is exactly right - sometimes the banding is mild and you don't want the model to "fix" a sky that's supposed to look that way.
The inputs that matter
model- deepDeband-w unless you're previewing speed. Leave it.strength(0.0–1.0, default 1.0) - start at 0.7 for footage, 1.0 for stubborn banding. Back off if detail starts to smear.tile_size(128–512, default 256) andtile_overlap(0–128, default 128) - these only matter for images bigger than the tile. The model was trained on 256px patches, so 256 is the sweet spot; the default 128px overlap matches the original deepDeband-w's 50% and is the right quality setting. If memory is tight, drop overlap toward 64.
One honest note from the source: the node's description claims it detects and preserves your input bit depth, but the detection routine in the code just returns "8-bit" for everything - everything runs through ComfyUI's float32 [0, 1] space anyway. In practice it doesn't matter much, because the pack's Save16BitTIFF writes whatever precision it receives. Just know the "automatic 16-bit preservation" in the tooltip is aspirational, not magical.
Installing it and the weights
The node ships in the Bit Depth Enhancer pack. ComfyUI Manager (search "Bit Depth Enhancer") or:
cd ComfyUI/custom_nodes
git clone https://github.com/subraoul/ComfyUI_Bit-Depth-Enhancer.git
cd ComfyUI_Bit-Depth-Enhancer
pip install -e .
Restart ComfyUI, then fetch the checkpoints from the original deepDeband GitHub repo (under pytorch-CycleGAN-and-pix2pix/checkpoints/):
ComfyUI/models/bit_depth_enhancement/deepdeband/
├── deepDeband_w.pth # from deepDeband-w/latest_net_G.pth
└── deepDeband_f.pth # from deepDeband-f/latest_net_G.pth
You only need the generator weights (latest_net_G.pth) - skip the discriminator. Rename them to match exactly. Unlike ABCD, this node uses ComfyUI's proper models_dir lookup, so portable installs are fine. If the files are missing the node just logs an error and returns your image unchanged, which is polite but easy to miss - check the console.
Common issues
- Model not found - wrong filename (
deepDeband_w.pth, note the underscore) or the folder doesn't exist. Createmodels/bit_depth_enhancement/deepdeband/yourself; ComfyUI won't. - Artifacts on renders - the synthetic-image warning is real. Don't deband a 3D render with this; use the classical node there.
- Seams on large images - you dropped the overlap, or you're on deepDeband-f. Raise
tile_overlapback to 128. - Looks mushy - strength too high on fine detail. Drop to 0.5 and blend.
- On Apple Silicon it'll happily use MPS, and there's a CPU fallback if your GPU chokes.
Wire debanded_image into Save16BitTIFF (or any save node) and you're done. For real-world footage banding, this is the node in the pack that actually knows what it's doing.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | Input image from previous ComfyUI nodes. Accepts both 8-bit (0-255 values scaled to 0-1) and 16-bit (0-65535 values scaled to 0-1) images. The node automatically detects and preserves the input bit depth. | |
| model | COMBO | deepDeband-w | Model variant: deepDeband-w (weighted patch fusion, better quality, recommended) uses bilateral weighting to fuse overlapping patch predictions for smoother results | deepDeband-f (full/direct) processes patches independently, faster but may have visible seams on large images |
| strength | FLOAT | 1.000–1 | Debanding strength (0.0-1.0). Controls blending between original and debanded images. 0.0 = original image (no debanding), 1.0 = full debanding effect. Use lower values (0.3-0.7) for subtle enhancement or when preserving intentional gradients. |
| tile_sizeopt | INT | 256128–512 | Tile size for processing (default: 256). The model was trained on 256x256 patches. Larger tiles may reduce seams but use more memory. Smaller tiles use less memory but may have more visible boundaries. Only matters for images larger than tile_size. |
| tile_overlapopt | INT | 1280–128 | Overlap between adjacent tiles in pixels (default: 128). The real deepDeband-w uses 50% overlap (128px for 256px tiles). Higher values reduce visible seams at tile boundaries but increase processing time. Recommended: 128 pixels for best quality matching original deepDeband-w. Set to 64-96 for faster processing (may show slight seams). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| debanded_image | IMAGE | — |