I had an image sequence rendered on one of my nodes, and sadly my D-NOISE add-on did not kick in as expected. This was entirely my fault, and I thought I could perhaps just denoise the sequence rather than re-render it. Turns out it works, even though it does not match the results of a regular denoised render.
Be that as it may, let me show you how to use Blender’s mysterious Compositor to denoise a sequence of images automatically.
Let’s open up a new file in Blender and – gasp – there’s no need to delete the poor default cube. We can leave him be for once. Did you know he has his own short movie and a whole channel on YouTube now? Anyway, head straight into the Compositor Tab at the top of the Blender interface. Marvel at this:
In a nutshell, the Composite Node is our output. We don’t need the Render Layers node, so click on it and press X to delete it. Now add a Denoiser Node and an Image Node to the setup, then connect the yellow inputs with one another, so that the Image Node feeds into the Denoiser Node, and the Denoiser Node feeds into the Composite Node. Like this:
The easiest way to find these nodes is by searching for them. Hit SHIFT+A, then select search and you’ll find them. We need to open our first image in the sequence using the Image Node on the left. Since we need all other images in this sequence, we’ll need to tell the Image Node that this is in fact a sequence and then some other options will show up.
The parameters we need to set here are the Frames and the Start Frame. For Frames, set the number of frames in your image sequence. For the Start Frame you can leave this on the default 1, but if you ever need to, you could set this to any number that corresponds to a portion of an sequence. For example, if you need to denoise frames 401-500 in an existing sequence, you can use 401 as the Start Frame, choose 100 as Frames, and then render frames 401-500 with the regular Blender commands.
Let’s keep it simple though and say we want to render 100 images, starting at Frame 1. Notice that if you advance your timeline, the preview image in the node should change accordingly.
To get a denoised image out of Blender, simply hit Render. Or, if you’re ready to denoise the whole sequence, choose Render Animation. You need to provide the image size, Frame Start and End, and the Cycles Render Engine for this to work. Those can be found in the regular Blender Render Settings. You’ll also need to choose the correct output path and file name for your sequence.
Caveats about D-NOISING renders
While this process works just fine, the results are far inferior to using D-NOISE during a render. I can only image this is because the 3D scene gives the OptiX engine a lot more information about the scene, such as depth and emission. As I said, I virtually know nothing about how this thing works, but judging by the default Compositor setup for a regular render, let’s just say “it’s complicated” and beyond my understanding:
The results speak for itself. Here’s a comparison between a regular render with D-NOISE applied, and the same image rendered un-D-NOISEd and then processed after the fact. The loss of detail is quite remarkable, but understandable if the engine only has the grainy 2D image to work with.
I’ve grown quite fond of Grant Wilk’s AI-accelerated OptiX denoiser. It’s called D-NOISE and is available for free. Although I don’t quite understand how this magic works, I very much appreciate its results with grainy renders.