|On this page|
You can install libraries that use various techniques (such as machine learning and GPU computation) to provide very fast and high-quality denoising. This node is a convenient front-end to use those libraries to denoise the image in a compositing network.
This utility currently supports Intel Open Image Denoise and the NVIDIA OptiX Denoiser. You must be on a supported platform and have the chosen denoising library installed for this utility to work.
Houdini ships with OIDN so it will be available if you are in a Houdini shell environment.
The NVIDIA OptiX Denoiser only works with NVIDIA cards. It is now included with the NVIDIA driver (version 435 or later). If you have an earlier driver version, you can choose Render ▸ Download NVIDIA OptiX Denoiser in Houdini to download the library automatically.
You can specify multiple image planes to denoise simultaneously.
Some denoising libraries can use normals and/or albedo to get a better sense of the image, guiding how and where it reduces noise. This node lets you optionally specify the name of a normal plane and the name of an albedo plane to use as input for the denoiser.
The idenoise utility lets you apply the same denoisers as this node uses from the command line.
Like most COP nodes, this node lets you vary the effect using a grayscale mask image. This can be especially useful for certain denoising workflows since you can concentrate the effect in areas with high noise, while avoiding applying to much smoothing to other areas.
Image to Denoise
The node applies the chosen denoiser to the image in the first input.
If you connect a grayscale image to the second input, the node uses it as a mask to vary the strength of the denoising effect.
The library to use to denoise the image. Currently supports the following options:
Use the Intel Open Image Denoise library. This library ships with Houdini so it should always be available.
Use the NVIDIA Optix library. This option is only available if you have an NVIDIA graphics card with the appropriate driver (see the Overview above).
Name of the normal plane in the image file to use as input to the denoiser. If this is blank or the corresponding image plane does not exist, the denoiser will not use a normal plane.
Name of the albedo plane in the image file to use as input to the denoiser. If this is blank or the corresponding image plane does not exist, the denoiser will not use an albedo plane.
Motion Vectors Plane
Name of the motion vectors plane in the image file to use for OptiX temporal denoising. This plane is required for OptiX temporal denoising. If this is blank or the corresponding image plane does not exist, the denoiser will not work in Temporal mode.
Previous Frame Plane
Name of the plane where is stored previous frame beauty. This plane is required for OptiX temporal denoising. The previous frame plane could be created using consequent combination of Shift (to shift the sequence to one frame back) and Rename (to rename beauty plane to “prevframe”) COPs, which should merged then with a current frame beauty and then promoted to aidenoise in “Optix 7 Denoiser” mode. If this is blank or the corresponding image plane does not exist, the denoiser will not work in Temporal mode.
A mask can be chosen to limit the effect of the operator to areas defined by the mask. The mask can be taken from the mask input (side input) or from the first input itself.
If no mask is present, this blends the output with the input by a constant amount (0 = all input, 1 = all output).
If a mask is present, this amount multiplies the mask.
Selects the mask plane to use as a mask from the mask input. The mask can be selected from:
A mask can be a component of a plane or an entire plane. If a vector plane is supplied as a mask, its components are multiplied by the images' components.
Scalar Mask ('A', 'C.r')
C.r = I.r * M C.g = I.g * M C.b = I.b * M
Vector Mask ('C')
C.r = I.r * M.r C.g = I.g * M.g C.b = I.b * M.b
Useful for masking the operation to the image’s own alpha plane.
Selects the mask from the side mask input.
Turns off masking, without requiring disconnection of the mask input (useful for temporarily disabling the mask).
Resize Mask to Fit Image
If the mask image is a different resolution than the output image, turning on this parameter will scale the mask to the output image’s resolution.
If this node is changing constantly, and the mask is not, it is somewhat faster to put a Scale COP down to do the resize for the mask image. Otherwise, the scale will occur every time this node cooks.
Inverts the mask so that all fully 'masked' portions become unmasked. This saves you from inserting an Invert COP after the node with the mask.
Specifies the scope for both the RGB components of Color, Alpha, and other planes. The (C)RGBA mask only affects Color components and Alpha. 'C' will toggle all the RGB components.
For planes other than Color and Alpha, the plane name (plus component, if applicable) should be specified in the string field. The pulldown menu can be used to select planes or components present in this node.
A plane is specified by its name. A component is specified by both its plane and component name. The '*' wildcard may be used to scope all extra planes. Any number of planes or components can be specified, separated by spaces.
P N.x N.y P N Pz
Frame Scope ¶
Allows scoping of specific frames in the frame range. This is in addition to the plane scope (so a plane at a certain frame must be both plane scoped and frame scoped to be modified).
All frames are scoped.
All frames inside a subrange are scoped.
All frames outside a subrange are scoped.
Even numbered frames are scoped.
Odd numbered frames are scoped.
A user-defined list of frames are scoped.
For Inside/Outside range, this parameter specifies the subrange of the sequence to scope (or unscope). This can be edited in Timeline viewer mode (⌃ Ctrl + 2 in viewer).
For Inside/Outside Range, this parameter specifies certain number of frames before and after to slowly ramp up to scoped. The operation will be blended with its input to 'ease in' or 'ease out' the scoping effect over a number of frames. This can be edited in Timeline viewer mode (⌃ Ctrl + 2 in viewer).
For unscoped frames, this sets the blend factor between the input and modified images. Normally this is zero (use the input image). By setting this to a non-zero value, you can make unscoped frames be 'slightly' unscoped. The value can vary between 0 (unscoped) and 1 (scoped).
The frame list for 'Specific Frames'. Frame numbers should be separated by spaces.
Automatically Adjust for Length Changes
If the sequence range changes, enabling this parameter will adjust the subrange and frame dropoff lengths to fit the new range.
Start of sequence
End of sequence
Input sequence length
Sequence frame rate
Number of planes in sequence
Width and height of image
Image index (0 at start frame)
Image time (0 at start frame)
Current plane array index
Current plane index
Num of channels in current plane
Composite Project X resolution
Composite Project Y resolution
Composite Project pixel aspect ratio
Composite Project raster depth
Composite Project black point
Composite Project white point