Nodes/Orion4D_MetaNode/🎬 LUT Manager
ComfyUI Node

🎬 LUT Manager

Slap a .cube LUT on anything, with separate intensity and opacity knobs

By orion4dΒ·Created 5 months agoΒ·Updated 5 months agoΒ· 5
🎬 LUT Manager
  • image
  • image
  • lut_path
β—„lut_pathβ–Ί
β—„lut_presetNoneβ–Ί
β—„intensity1.00β–Ί
β—„opacity1.00β–Ί
β—„data_orderBGRβ–Ί
β—„table_orderBGRβ–Ί

A LUT is only useful if something can apply it, and that's the LUT Manager's entire job: take an image, apply a .cube 3D LUT, hand back the result. If you've ever wanted to drop a film emulation or a look you captured with the pack's LUT Generator onto your renders, this is the node that does the applying. It's also the part most people don't expect to be good - LUT application is a solved problem, and this node solves it with two knobs most LUT tools don't give you.

Those knobs are intensity and opacity, and they're deliberately separate. Intensity (0 to 2) controls how strongly the LUT transforms the color - crank it past 1 to push a grade harder than the original table intended. Opacity (0 to 1) is a straight mix back toward the original image, so you can layer a LUT at 40% and keep your underlying colors alive. Together they mean you can take a heavy commercial LUT and dial it into something tasteful instead of living with it as-is.

How it works

You point it at a LUT in one of two ways: type a lut_path directly, or pick from the lut_preset dropdown, which lists .cube files found in the pack's lut_files/ folder (it ships with NB_Neutral_Orion4D and generated_lut ready to go). On each run it loads the LUT, applies it via trilinear interpolation, then layers on intensity and opacity.

Two details matter for actually getting correct colors. The data_order and table_order settings (BGR or RGB) exist because commercial LUTs are not standardized - a LUT from DaVinci may assume one channel order while your pipeline uses another. If the result looks like a channel-swapped nightmare, flipping one of these is the fix. And the node caches the loaded LUT, only reloading from disk when the file's modification time changes - so applying the same LUT across a big batch doesn't re-read the file every frame.

Inputs and outputs

  • Inputs: image (IMAGE), lut_path (STRING), lut_preset (enum), intensity (0–2), opacity (0–1), data_order (BGR/RGB), table_order (BGR/RGB).
  • Outputs: image (IMAGE) - the graded result - and lut_path (STRING), passing back exactly which LUT was used.

Wire the output image to a preview or a saver and you're done.

The natural pairing

LUT Generator β†’ LUT Manager is the intended loop: generate a LUT from a before/after pair, then apply it to your whole batch through the Manager. Since the Generator returns lut_path, you can wire it straight into the Manager's lut_path input and never type a filename. It's the closest thing this pack has to a "one-time capture, batch-time replay" pipeline, and it fits the post-processing philosophy from the KB: a deterministic lookup table beats a diffusion re-roll for color, every time.

Troubleshooting

  • Colors look channel-swapped? Flip data_order and/or table_order to match the LUT's convention. There's no universal right answer - it depends on the file.
  • The lut_preset list is stale? It scans lut_files/; drop a new .cube in there and it should show up after a restart.
  • None preset? That's the passthrough option - no LUT applied, which is handy for comparing.

Installing it

It's part of Orion4D_MetaNode:

cd ComfyUI/custom_nodes
git clone https://github.com/orion4d/Orion4D_MetaNode

Or via ComfyUI Manager (search "Orion4D_MetaNode") and restart. It appears under Orion4D_MetaNode β†’ LUT. No extra dependencies for basic use (the pack lists opencv-python among its base requirements, which ComfyUI already installs). Honest context: young, single-developer pack with a modest footprint - but LUT application is a corner ComfyUI serves poorly, so this is quietly one of the more useful nodes in the set.

CategoryOrion4D_MetaNode/LUT

Inputs (7)

NameTypeDefaultDescription
imageIMAGEβ€”
lut_pathSTRINGβ€”
lut_presetCOMBONone3 options: None, NB_Neutral_Orion4D, generated_lut
intensityFLOAT1.000–2β€”
opacityFLOAT1.000–1β€”
data_orderCOMBOBGR2 options: BGR, RGB
table_orderCOMBOBGR2 options: BGR, RGB

Outputs (2)

NameTypeDescription
imageIMAGEβ€”
lut_pathSTRINGβ€”