Nodes/Nuke Nodes for ComfyUI/Nuke OCIO FileTransform
ComfyUI Node

Nuke OCIO FileTransform

Apply any LUT to an image, the OpenColorIO way

By sumitchatterjee13·Created about a year ago·Updated 9 days ago· 59
Nuke OCIO FileTransform
  • image
  • IMAGE
lut_fileailog_to_linear_4096_1d.cube
directionforward
interpolationdefault
mix1.00
custom_lut_path

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 the luts folder.
  • direction - forward / inverse.
  • interpolation - default is fine to start; tetrahedral for 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.
  • mix vs intensity: this is a straight fade, not Nuke's intensity extrapolation - 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.
CategoryNuke/Color

Inputs (6)

NameTypeDefaultDescription
imageIMAGE
lut_fileCOMBOailog_to_linear_4096_1d.cube2 options: ailog_to_linear_4096_1d.cube, ailog_to_linear_65.cube
directionCOMBOforward2 options: forward, inverse
interpolationCOMBOdefault5 options: default, nearest, linear, tetrahedral, best
mixFLOAT1.000–1
custom_lut_pathoptSTRING

Outputs (1)

NameTypeDescription
IMAGEIMAGE