Nuke OCIO Display
Turn scene-referred renders into images that look right on your screen
- image
- IMAGE
Here's the moment color science stops being optional: you render something in a linear or wide-gamut color space, and when you look at it, it's dark, desaturated, and flat. The image isn't wrong - it's scene-referred, meaning it's storing the raw light values of the scene, and raw scene values never look like what a screen should show. NukeOCIODisplay is the node that fixes it: it applies a display transform, converting from a working color space like ACEScg into something your monitor can actually represent, the way Nuke's Viewer does on every frame.
If you've been fighting dark, muddy renders and reach for a "brightness" slider, this is the node you were supposed to meet first. The whole ACES pipeline - working in ACEScg, transforming to display at the end - is designed around exactly this step.
How it works
It's the display/view transform half of the OCIO equation. The other node in the pack, NukeOCIOColorSpace, converts between arbitrary color spaces. This one takes a scene-referred image in a chosen input_colorspace, then runs it through a display and a view - the combination that determines the tone mapping and color rendering for a specific screen target. Pick "sRGB - Display" with the SDR video view and you get the standard result: a properly bright, saturated image that looks right on a normal monitor.
The pack hardcodes the ACES 2.0 Studio Config, so there are 9 displays and 4 views available, and config is locked to that single option - you don't manage any config files.
The inputs that matter
image- your scene-referred input.config- locked to "ACES 2.0 Studio Config"; nothing to do here.display- the target display: sRGB, Display P3, Rec.1886 Rec.709, Rec.2100-PQ, and HDR variants. For most people, sRGB - Display is the answer.view- how to tone-map into that display: "ACES 2.0 - SDR 100 nits (Rec.709)" is the standard SDR look; Raw skips tone mapping; the others are variants.input_colorspace- where your image is currently living, e.g. ACEScg (the default and the common working space).invert- forward or inverse; inverse lets you go from a display image back to scene-referred, which is how you'd re-create an IDT step.
Output is a single IMAGE, now display-referred and ready to save or composite against other display-referred content.
Installing it
It ships in the Nuke Nodes pack:
cd ComfyUI/custom_nodes
git clone https://github.com/sumitchatterjee13/nuke-nodes-comfyui.git nuke-nodes
cd nuke-nodes
pip install -r requirements.txt
Or search "Nuke Nodes" in ComfyUI Manager and restart. It's under the Nuke category. The important dependency is opencolorio (2.2+, included in requirements.txt) - without it this node errors out, and that's the first thing to check if it does.
Common issues
- "OpenColorIO not installed" error - run
pip install opencolorioand restart ComfyUI. This is the #1 failure with the OCIO nodes. - Result still looks dark - you're probably feeding it linear data but the
input_colorspacesays something else (or vice versa). Be honest about what your upstream node is actually outputting. - Colors look different from Nuke - expected; this is the pack's hardcoded ACES 2.0 config, and unless your Nuke session uses the same config, the tone mapping won't be identical.
If your workflow produces dark, weird-looking renders, this node is the missing final step - scene-referred in, screen-ready out.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| display | COMBO | sRGB - Display | Target display. Lists come from the active OCIO config ($OCIO or built-in ACES); changing $OCIO needs a ComfyUI restart. |
| view | COMBO | ACES 2.0 - SDR 100 nits (Rec.709) | View transform (must belong to the chosen display). Lists come from the active OCIO config ($OCIO or built-in ACES); changing $OCIO needs a ComfyUI restart. |
| input_colorspace | COMBO | ACEScg | Colourspace of the input image. Lists come from the active OCIO config ($OCIO or built-in ACES); changing $OCIO needs a ComfyUI restart. |
| invert | COMBO | forward | 2 options: forward, inverse |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |