Nodes/BilboX's ComfyUI Custom Nodes/BilboX post-processing LUT
ComfyUI Node

BilboX post-processing LUT

Drop a real .cube color grade onto any image in your graph

By syllebra·Created 3 years ago·Updated 12 months ago· 145
BilboX post-processing LUT
  • image
  • IMAGE
lut_name
logNo
printNo

The unglamorous truth about why AI images read as fake: they tend to come out over-saturated and too high contrast. Photographers fix that in post with color grading, and pros grade with LUTs - the same .cube files that DaVinci Resolve and Premiere eat. BilboX post-processing LUT applies one of those to anything in your graph, mid-workflow, without leaving ComfyUI. It's a port of yoonsikp's pycubelut, so it inherits the same battle-tested math.

How it works

On startup the node scans its luts folder for .cube files and builds the lut_name dropdown from whatever it finds. At runtime it reads the chosen file with the colour-science library, applies it to the image per batch, and hands you back a graded image. Two toggles sit on top:

  • log - for LUTs designed for log-encoded footage. It applies a gamma decode before the LUT and a re-encode after (the 1/2.2 powers), so grading LUTs built for log color space land correctly. Leave it on No for normal rec.709 consumer LUTs, which is most of what you'll download.
  • print - debug only. Dumps the image and the LUT table to the console. There's no reason to turn it on unless you're checking whether a LUT is being read correctly.

The inputs and outputs that matter

It's a short node. image takes any IMAGE tensor - the usual spot is right after the VAE decode and before Save, so the grade applies to the final render. lut_name is a dropdown of the .cube files it found. log and print are the two toggles above. One output: IMAGE, which you wire into a preview, a Save Image, or another post-processing node.

Where the LUTs go (the part that trips everyone up)

The pack ships with no LUTs at all - the folder contains only a put_luts_files_here.txt placeholder. So on a fresh install the dropdown is empty, and that's by design, not a bug. Drop your .cube files into:

ComfyUI/custom_nodes/bilbox-comfyui/luts/

or point the node at your own collection. Open luts_directory.txt in the pack folder, uncomment the line, and give it a path to your LUT folder - use an absolute path, since the code resolves relative ones from ComfyUI's working directory, not the pack. Only .cube is supported: no .3dl, no .look, no .cube variants that aren't Iridas-format.

Here's the gotcha: the dropdown is built once, at startup. Add LUTs, then restart ComfyUI before they show up. This is the number-one "is this node broken" moment, and it isn't broken.

Install

Install it like any custom node pack. With ComfyUI Manager, search for BilboX's ComfyUI Custom Nodes (or just "BilboX") and hit Install. Manual route:

cd ComfyUI/custom_nodes
git clone https://github.com/syllebra/bilbox-comfyui

then restart ComfyUI. The pack installs its own Python dependencies from requirements.txt on first load, and colour-science is a chunky one - give it a minute. No model files to download. And for the record, the pack also adds a right-click Reboot menu that can shut down the machine it runs on; fine on your own box, but keep an unauthenticated ComfyUI off the public internet.

Practical take

Grab a free film-emulation LUT pack, drop a handful in, and you'll see the difference immediately - a Kodak-ish cast does more for "looks like a photograph" than another round of quality tokens in the prompt. Keep the folder small, because every file in it becomes an entry in that dropdown. Pair it with the pack's vignette node and you've got a two-step finishing pass with zero extra models.

CategoryBilboX/Post-Processing

Inputs (4)

NameTypeDefaultDescription
imageIMAGE
lut_nameCOMBO0 options:
logCOMBONo2 options: No, Yes
printCOMBONo2 options: No, Yes

Outputs (1)

NameTypeDescription
IMAGEIMAGE