◎ Radiance 32-bit Denoise
Edge-preserving denoise that actually handles HDR
- image
- IMAGE
There are two kinds of blur and they do opposite jobs, and this node is the difference made concrete. A Gaussian blur smears everything, edges included. A bilateral filter - which is what Radiance 32-bit Denoise is - smooths flat regions while keeping boundaries crisp, which is what you want when the job is "clean up the noise without turning the image to mush." If you've ever tried to denoise an AI render and watched the hair and fabric details melt, that was the wrong blur.
The Radiance twist is the float pipeline. Stock denoise nodes and most single-purpose custom ones clamp to 8-bit somewhere. This one runs cv2.bilateralFilter on float32 frames, which is what makes it genuinely useful for HDR: if your image carries scene-linear values above 1.0, the denoise operates on them instead of clipping first.
The knobs
- d - the filter diameter, 1 to 50. Bigger = looks at more neighbors. 9 is the default and a sane start; go up if noise is coarse.
- sigmaColor - the color-similarity threshold. This is the edge-preservation control: pixels closer in value than this get smoothed together, so a low value keeps fine detail and a high value smooths more aggressively. Default 0.15.
- sigmaSpace - the spatial neighborhood radius, 0 to 500, default 75. Higher = smoother but slower. This is the knob that actually costs you time on big frames.
- hdr_auto_sigma - default ON, and here's the gotcha the tooltip spells out: on HDR images (pixels above 1.0), a fixed sigmaColor of 0.15 is a tiny fraction of your value range, so the filter effectively does nothing - you'd get 0% denoising and wonder why. When enabled, sigmaColor is scaled by the per-frame maximum value so the filter works correctly in HDR. Leave it on unless you specifically need a fixed, unscaled threshold. This is one of those "RTFM" fixes that would otherwise cost you an hour of confusion, and it's honestly one of the few nodes in the pack where the HDR claims actually hold up end to end.
Output is a single IMAGE at the same bit depth you fed in.
When to reach for it
Three real uses: cleaning up a noisy VAE-decoded frame before it goes to a film-grain or grade pass (noise stacks, and it stacks uglier); smoothing AI-video frames before temporal denoising, since per-frame spatial denoise gives a temporal smoother a cleaner signal to work with; and lightly touching up a render without the "AI airbrush" look - bilateral keeps the texture, which is the whole point. It's not magic: heavy d plus high sigmaSpace gets slow fast on 4K, and it's a deterministic spatial filter, not a temporal one, so frame-to-frame it can leave residual shimmer.
Install
It's in the fxtdstudios/radiance pack - Manager search "Radiance", or:
cd ComfyUI/custom_nodes
git clone https://github.com/fxtdstudios/radiance.git
cd radiance
pip install -r requirements_linux.txt # or windows/mac_silicon
Restart after. Linux needs libopenexr-dev before pip; the pack's full dependency set (OpenEXR, OpenColorIO, colour-science, transformers) makes the first boot slow. If Manager's security level refuses it, the manual clone is the documented workaround. And if you hit dependency conflicts with another pack, reinstall Radiance's requirements last.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| d | INT | 91–50 | — |
| sigmaColor | FLOAT | 0.150–10 | Color similarity threshold for the bilateral filter. For HDR images (pixel values > 1.0), enable 'hdr_auto_sigma' so this is automatically scaled to the image's value range. With fixed sigmaColor=0.15, HDR images receive 0% denoising. |
| sigmaSpace | FLOAT | 75.00–500 | Spatial neighborhood radius. Higher = smoother but slower. |
| hdr_auto_sigma | BOOLEAN | true | BUG-C FIX: When enabled, sigmaColor is multiplied by the per-frame maximum pixel value so the filter works correctly on HDR linear-light images (values > 1.0). Leave enabled for 32-bit HDR workflows. Disable only if you need a fixed, unscaled sigmaColor. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |