You are here: Getting Started > Using the Interface > Viewers > Input Process and Viewer Process controls

Input Process and Viewer Process Controls

Input Process and Viewer Process operations can be used to modify the image from the viewed node before it is displayed on your monitor. Both only affect the Viewer in which they are activated and do not affect your rendered output. Input Process is a legacy system which uses a node instantiated in the Node Graph to process the image. This is handy for script-specific, temporary, or experimental use, but can be error prone due to the node accidentally being deleted or changed and is limited to a single node. The Viewer Process system was added in Nuke 5.2 and allows a gizmo (or compiled node) to be registered from the Python programming language at start-up. The registered item appears in a dropdown menu in the Viewer and the node is instantiated internally within the Viewer when the item is selected so there is no danger of accidental deletion or modification. This also enables multiple Viewer Processes to be registered at different points of start-up (as Nuke works through the NUKE_PATH menu.py files).

The Viewer settings contain an option for the Input Process to be applied before or after the Viewer Process, so the two may be used in conjunction, for instance, with the Input Process applying a projection mask after the Viewer Process applies a film look profile. While you could combine the two into a single Viewer Process node, it can be advantageous to keep operations separated. Having both the Viewer Process and Input Process available provides a great deal of flexibility.

You can create an Input Process by creating a node in the Node Graph and naming it as an Input Process using Nuke’s Edit menu. Once an Input Process has been named, the IP button appears in the Viewer controls. When the IP button is activated, any image you view is passed through the Input Process.

Unlike Input Processes, Viewer Processes are registered using Python. They can be session independent and always appear in the Viewer’s Viewer Process dropdown menu. There are two predefined Viewer Processes, sRGB and rec709, but you can also build and add your own. When a Viewer Process is selected from the Viewer Process dropdown menu, any image you view is passed through that Viewer Process.

Whenever possible, the Input Process and Viewer Process are executed on the GPU. 1D LUT and 3D LUT (Vectorfield) have GPU implementations, so the built-in Viewer Processes run on the GPU (unless gl buffer depth has been set to byte in the Viewer settings, in which case all processing is done on the CPU). To get the GPU'd versions of the nodes for use in a custom Viewer Process gizmo, press x over the Node Graph, enter ViewerGain, ViewerGamma, or ViewerClipTest in the command entry window, and press Return.

The following table lists the differences between an Input Process and a Viewer Process.

Input Process

Viewer Process

Set by selecting the node in the Node Graph and choosing Edit > Node > Use as Input Process.

Registered using Python.

Activated using the IP button in the Viewer controls.

Activated using the Viewer Process dropdown menu in the Viewer controls.

Requires that the node exists in the Node Graph. Can quickly and easily be modified by artists. Can also be accidentally deleted, disabling the effect.

Is defined in a text file called menu.py that is run at start-up. Accessible for artists, but not likely to be accidentally modified or deleted.

Script dependent. Unless your Input Process node is saved in the template.nk file that is loaded at start-up, the Input Process is lost when you restart Nuke.

Session independent. The Viewer Processes registered in menu.py are always available in each new session of Nuke.

There can only be one Input Process at a time. Setting a new Input Process overrides any previously used Input Process.

There can be an unlimited number of Viewer Processes available in the Viewer Process dropdown menu. For example, it is possible to register Viewer Processes in any menu.py file at start-up, so Viewer Processes can be added at any directory in your NUKE_PATH.

Useful for temporary or non-critical viewing options that you want in the current shot for convenience, or for testing Viewer Processes before registering them. Can also be used for other things, such as field charts or masks that may be switched on or off and changed around in the shot.

Useful for viewing options that you often need or that should not be modified by artists on a shot-by-shot basis.

NOTE:  Note that Input Processes and Viewer Processes are part of a built-in, fixed pipeline of nodes that are applied to images before they are displayed in the Viewer. This pipeline is either:
gain > Input Process > Viewer Process > gamma > dither > channels > cliptest (if input process order has been set to before viewer process in the Viewer settings)
OR
gain > Viewer Process > Input Process > gamma > dither > channels > cliptest (if input process order has been set to after viewer process in the Viewer settings).
However, depending on what the Input Process and Viewer Process are doing, the order in the built-in pipeline may not be the correct order. Therefore, if your Input Process or Viewer Process have controls that also exist for the Viewer, such as float controls named gain, gamma, or cliptest, then the Viewer drives them from the corresponding Viewer controls and does not do that image processing itself. This allows you to implement these controls in your Input Process or Viewer Process node/gizmo using whatever nodes and order you want. If your Input Process and Viewer Process do not have these controls, then the Viewer applies the effects in its normal way according to the built-in pipeline.
In the built-in pipeline, dither is applied to diffuse round-off errors in conversion of floating point data to the actual display bit depth. Although the cliptest is drawn at the end, it is computed on the image as input to the Viewer.

NOTE:  By default, the predefined Viewer Processes, sRGB and rec709, affect all channels. However, if you want them to only affect the red, green, and blue channels, you can activate apply LUT to color channels only in the individual Viewer Settings or on the Viewers tab of the Preferences.

Input Process Controls

To activate or deactivate the effect of an Input Process, click the IP button in the Viewer controls. Note that the IP button only appears if the input process field in the Viewer settings is not empty. The button is also only enabled when a node in the Node Graph is set as an Input Process.

Toggling the use of the Input Process.

To open the Viewer settings, press S on the Viewer, or select Viewer Settings from the Viewer’s right-click menu. By default, input process is set to VIEWER_INPUT. If a node called VIEWER_INPUT exists in the Node Graph, it is automatically used as the input process for the Viewer. This ensures backwards compatibility with pre-5.2 scripts.

However, the Input Process node does not have to be named VIEWER_INPUT. You can use any node as an Input Process. Do the following:

1.   Select the node in the Node Graph and choose Edit > Node > Use as Input Process.

Alternatively, you can press S on the Viewer to open the Viewer settings and enter the name of the node in the input process field.

2.   In the Viewer settings, you can also define whether the Input Process is applied before or after the Viewer Process currently in use. To do so, set input process order either to before viewer process or after viewer process.

The Input Process node should not be connected to other nodes in the Node Graph. If you attempt to connect it, an error is displayed in the Viewer. If you delete the Input Process node from the Node Graph, the effect of the Input Process is disabled.

Viewer Process Controls

To activate a Viewer Process, select it from the Viewer Process dropdown menu in the top right corner of the Viewer. Any images you now view using this Viewer are passed through the selected Viewer Process.

Nuke includes the following predefined Viewer Process gizmos: sRGB and rec709. By default, sRGB is used because it is a best-guess default for a typical computer monitor.

In addition to using the predefined Viewer Processes, you can also add your own by registering a node or gizmo as a Viewer Process. You can register as many Viewer Processes with custom Viewer LUTs as you like. For more information on creating and registering custom Viewer Processes, see Creating Custom Viewer Processes in the Configuring Nuke chapter in the Nuke User Guide.

All available Viewer Processes (both predefined and custom ones) appear in the Viewer Process dropdown menu in the Viewer controls. To disable the use of a Viewer Process, select None from the Viewer Process dropdown menu.

To open the properties panel of the currently active Viewer Process, select show panel from the Viewer Process dropdown menu.

Note that if the control you want to adjust has the same name as any of the Viewer controls (for example, gain or gamma), you should adjust the control on the Viewer. This drives the control in the following:

the Input Process’ controls if an Input Process is in use

in the Viewer Process’ controls if no Input Process is in use.

TIP:  If you want to render out a file with the Viewer Process effect baked in, you can select Edit > Node > Copy Viewer Process to Node Graph to create an instance of the Viewer Process node in the Node Graph.