Nuke OCIO FileTransform
Apply any LUT to an image, the OpenColorIO way
- image
- IMAGE
A LUT is the fastest way to make a generated image stop looking generated. Drop a film emulation or camera conversion cube on it and suddenly you have "look." NukeOCIOFileTransform is the node that applies LUT files the professional way - through OpenColorIO's FileTransform, the same machinery Nuke uses - instead of through a naive Photoshop-style color lookup.
It's the node you reach for when you've got a .cube, .3dl, or .spi1d file you actually trust: a camera manufacturer's log-to-linear table, an ACES transform, a colorist's film emulation. The pack even ships two sample ARRI ailog_to_linear cubes so you can see it working on first install. Unlike the sibling NukeVectorfield node, this one doesn't hand-roll the math - it delegates to OCIO, which is both more robust and the thing you want if you're bridging a real post pipeline.
How it works
OpenColorIO reads the LUT file and applies it as a color transform to the image. You get a direction switch (forward runs the LUT as written; inverse undoes it - great for linearizing a log-encoded image), an interpolation mode (default, nearest, linear, tetrahedral, best - tetrahedral is the one to pick for 3D LUTs when you care about quality), and a mix slider (0–1) that fades the transform in. The node fingerprints the LUT file on disk so ComfyUI only re-runs it when the file actually changes - edit the cube, watch the node invalidate.
LUTs are picked from the dropdown, which reads the pack's luts folder, or you can give an absolute path via custom_lut_path. Supported: .cube, .3dl, .csp, .spi1d/.spi3d/.spimtx, .lut, .cub, .vf, and ASC CDL .ccc/.cc.
Inputs and output
image- the thing you're grading.lut_file- dropdown of LUTs in thelutsfolder.direction-forward/inverse.interpolation- default is fine to start;tetrahedralfor quality 3D work.mix- 0 to 1, default 1 (full effect).custom_lut_path- optional absolute path to a LUT outside the folder.
Single IMAGE output. Wire it into a Preview or NukeWrite.
Installing it
Part of the Nuke Nodes pack. Manager: search "Nuke Nodes" and install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/sumitchatterjee13/nuke-nodes-comfyui.git nuke-nodes
cd nuke-nodes
pip install -r requirements.txt
Restart ComfyUI, find it under Add Node → Nuke → Color. This one genuinely needs OpenColorIO - good news, requirements.txt installs opencolorio for you, no model downloads anywhere.
Gotchas
- If the node passes your image through unchanged, OCIO isn't loading. The code logs a console warning and returns the input untouched rather than erroring. Check the terminal for
OpenColorIO not installed- that means your environment skipped the requirements (happens with some Manager installs on a locked env). - LUTs are domain-limited. Standard LUTs are defined for 0–1 input. HDR highlights above 1.0 will clip against the LUT's last entries. If you're grading EXR data, normalize into range first or expect compressed whites.
mixvs intensity: this is a straight fade, not Nuke'sintensityextrapolation - at 0.5 you get exactly half the transform, not a softened version of it.- This pack has essentially zero community footprint (no threads, no tutorials), so don't go looking for someone else's exact settings. The defaults and the two sample LUTs are enough to confirm it works; from there it's your LUTs and your taste.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| lut_file | COMBO | ailog_to_linear_4096_1d.cube | 2 options: ailog_to_linear_4096_1d.cube, ailog_to_linear_65.cube |
| direction | COMBO | forward | 2 options: forward, inverse |
| interpolation | COMBO | default | 5 options: default, nearest, linear, tetrahedral, best |
| mix | FLOAT | 1.000–1 | — |
| custom_lut_pathopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |