PostFx LUT
Drop in a .cube and grade like a colorist
- look
- look
If you've ever collected a stack of .cube LUTs - from a DaVinci Resolve course, a filmmaker's freebie pack, a "film emulation" download - PostFx LUT is the node that finally lets you use them in ComfyUI. It attaches a 3D .cube LUT to your image as a look, which means it plays by the same rules as every other node in ComfyUI-PostFx: deterministic, CPU-only, no model, and chainable. A LUT is literally a lookup table - a baked, deterministic color transform - so this is the purest example of the KB's "reach for the cheap deterministic primitive" rule. You are not generating anything; you're mapping every pixel through a grade someone already made.
Mechanically it's a thin wrapper over the pack's postfx pipeline, and it has one structural quirk worth knowing: the LUT applies mid-pipeline, in display/sRGB space. That means if you chain it on top of a theme (via the optional look input), the theme's color grade runs first, then your LUT, then grain/vignette/sharpen finish on top. So a LUT layered over a film stock doesn't fight the grain - the texture passes survive it. Standalone, it just applies the LUT to a neutral base.
Here's what you set:
- lut (required) - a dropdown of
.cubefiles found in the package'sluts/folder. Out of the box the folder is empty, so the dropdown has onlynone. Drop your own files in there, restart ComfyUI, and they appear. - intensity (required) - 0.0 to 1.0, default 1.0. Blends the LUT with its input; 0 is off. Your "make this look accidental instead of instagram-filtered" control.
- lut_path (optional) - an absolute path to any
.cubeanywhere on disk, which overrides the dropdown. Handy for a LUT you don't want to copy into the pack folder. - look (optional) - a base look (theme or custom) to layer the LUT on top of.
Output is a look of type POSTFX_LOOK, feeding into PostFx Apply (with its own condition and strength) or into another look node.
Install is the same pack install: ComfyUI Manager (search ComfyUI-PostFx), or:
cd ComfyUI/custom_nodes
git clone https://github.com/0xBeycan/ComfyUI-PostFx.git
pip install -r ComfyUI-PostFx/requirements.txt
then restart. The only heavy thing is the postfx package; there are no model downloads, and it runs on CPU.
Troubleshooting is mostly about file placement. The dropdown is built at startup, so a .cube you drop into ComfyUI/custom_nodes/ComfyUI-PostFx/luts/ won't show up until you restart ComfyUI - that's the number-one "why is it not there" moment. If you use lut_path and point at a file that doesn't exist, the node raises FileNotFoundError with the exact path, which is your clue to check for typos. And two quiet traps: lut = none with an empty lut_path silently produces a no-op look (nothing applied), and if you connect a look input, the LUT layers on top of it - so a strong theme under a strong LUT can double-grade into mud. Keep intensity low in that case.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| lut | COMBO | none | A .cube file from the package luts/ folder. |
| intensity | FLOAT | 1.000–1 | Blend the LUT with its input (0 = off). |
| lut_pathopt | STRING | Absolute path to a .cube (overrides the dropdown). | |
| lookopt | POSTFX_LOOK | Base look to layer the LUT on top of. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| look | POSTFX_LOOK | — |