Your Viewer Is A Super Node With Input Process

Another underutilized feature in nuke is Input Process. In this post I am going to try and convince you to use it more!


Understanding Input Process

You can think of Input Process as adding an invisible node between your viewer and whatever it is looking at. It can be any kind of node that alters the image, so the potential is quite large! Imagine not having to drag around a LayerContactSheet, LensDistortion, or Shuffle node anymore. Your viewer will just act like those nodes instead!

How To Set It Up

Let’s start by making a grade node, keep it disconnected from everything. I like to put my Input Process nodes near the output, and give them a label so people don’t delete them on me.

Select the Grade and go to “Edit > Node > Use as Input Process”

Change the colour on the Grade and look at anything with your viewer. You will see the Grades colour applied everywhere you look now!

You can use the IP button at the top left of your viewer pane to toggle the Input Process on/off at anytime. Input Process will have no effect on the renders, so feel free to go nuts! BUT if you are handing your script to someone else, remember to tell them about it, or disable IP to avoid confusion


Practical Examples

I’ll admit the Grade isn’t the best example, unless you like to look at your comps with rose coloured glasses. Let’s take a look at some more practical ones now.

Lens Distortion

This is probably my most used Input Process. We often find ourselves working in comps with a single lens distortion near the bottom of the pipe, but are working all over the script. This means you can miss edge issues that are happening outside the format, before the lens distortion is applied. Well no more, with a LensDistortion set as your IP, you will always see the edge issues as you are working!

LayerContactSheet

This is great for checking your channels throughout your comp, and turns your viewer into an automatic contact sheet. I often use this to check DI mattes are making it all the way through the pipe without issues. Unfortunately there is a bug where the layer names are not always displayed when using it as an input process. You can get around this by making a group with text nodes for each layer, and using that as an input process instead. This also let’s you do things like add a remove/keep node before the contact sheet to optimize the viewed layers

Shuffle

Similar to above, but for one layer at a time. You could also just set your viewer to that layer/channel instead using the Viewer Process, but sometimes when there are dozens, or hundreds of layers I don’t like to do that.

Transform

This is a bit of a weird one for those tablet users mostly, but you can technically use a 2D transform node as an Input Process for your viewer to make a “Rotate Canvas” Photoshop like feature that lets you draw at different angles. Useful for roto/paint work, and if you are using my Rotate Nodes script, and want to comp sideways for some reason

Text

Sometimes your in a rush and need to leave yourself an important note, but where in the comp are you going to put it so you don’t lose it? How about in your viewer?

(This is mostly a joke… but maybe not?)

Grids

As a long time After Effects user, I sometimes miss the grid overlay feature. This can be recreated with Input Process and a Grid node however!

Masks/Overlays

Some shots have custom masks, or overlay effects. Binoculars are a good example, why waste your time working on stuff outside the mask? Use an input process to only see what is important, wherever you look!

Premults/Unpremults

When working with unpremultiplied data, sometimes the edges of things can get distracting. Use a premult as an Input Process to remove that extra information as you work, but still keep all the benefits of working with unpremultiplied data

Colorspace

Usually these are applied in the Viewer Processes as part of your pipeline, but there are situations where you might want to apply a colorspace transform directly to your viewer

FrameHolds/Retimes

Use one of the many time manipulation nodes as an Input Process, so you don’t have to make 20 FrameHolds on all your AOV pipes

ClipTest/Expression nodes

Use a ClipTest, or a custom expression node to check for extreme values, nan/inf and negative pixels anywhere you look

Difference

If you use a merge node set to difference as you Input Process and connect the A input to whatever you want to diff against, the B input will act as your Viewer Input. This means you can perform a difference operation anywhere you look, but it’s a bit unintuitive to use.

Groups/Gizmos

As briefly mentioned above in the LayerContactSheet part, you can use a group/gizmo as an input process, this will allow you to make much more complex multi-node setups! I mostly use it for contact sheets, but if you have a custom lens distortion node that is a group/gizmo that will also work too. I’m sure there are many other uses for this, but that’s all I got atm.


That’s All!

I’m sure there are other uses for this feature, but I am out of ideas for today. If you think of anything cool, feel free to let me know. I hope this helps you as much as it has helped me!

Next
Next

How To Calculate Distance In Nuke