π¬ LUT Manager
Slap a .cube LUT on anything, with separate intensity and opacity knobs
- image
- image
- lut_path
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 - andlut_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_orderand/ortable_orderto match the LUT's convention. There's no universal right answer - it depends on the file. - The
lut_presetlist is stale? It scanslut_files/; drop a new.cubein there and it should show up after a restart. Nonepreset? 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.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| lut_path | STRING | β | |
| lut_preset | COMBO | None | 3 options: None, NB_Neutral_Orion4D, generated_lut |
| intensity | FLOAT | 1.000β2 | β |
| opacity | FLOAT | 1.000β1 | β |
| data_order | COMBO | BGR | 2 options: BGR, RGB |
| table_order | COMBO | BGR | 2 options: BGR, RGB |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |
| lut_path | STRING | β |