π¨ LUT Loader
Grab a .cube and grade your render like a colorist β but read the label first
- lut_data
Colorists don't dial in a look slider by slider; they take a 3D LUT - a lookup table that remaps every color - and shove it onto the footage. This node brings that habit to ComfyUI. LUTLoader is the data half of a two-node pair: it reads a .cube file from the pack's luts/ folder and hands it to the sibling π¨ LUT Apply node, which does the actual grading using tetrahedral interpolation - the same method Resolve and real camera ISPs use, and more accurate than plain trilinear on the neutral axis.
The one input, the one output
There's genuinely not much to this node, and that's fine:
lut_name- a dropdown of every.cubefile in the pack'sluts/folder. Two ship with it.lut_data(output) - a customLUT_DATAtype containing the parsed grid plus its domain. Wire it into LUT Apply'slut_datainput, alongside your image.
Notice the loader never touches an image. It's pure data plumbing: it parses the file, and LUT Apply does the interpolation with a strength blend (0.0 = original, 1.0 = full LUT). The flow is:
[π¨ LUT Loader] β [π¨ LUT Apply] β [SaveImage]
β
[Your Image]
The bundled LUTs - and the trap
The dropdown has two entries and they are not interchangeable:
AppleLog2_to_Rec709_33_Grid.cube- a technical conversion LUT. It expects Apple Log footage (log-encoded video off a real camera) as input. Feed it a normal sRGB render and you get washed-out, wrong colors. This is the biggest footgun in the pack, and both the README and the node's own tooltip flag it.Presetpro - Portra 800.cube- a creative film-emulation look (Portra 800 is the film stock every portrait photographer's grandpa shot on). This is the one you want on regular AI images.
Where people get burned
Two more things, one of which is a trap in disguise:
- Strength. LUT Apply defaults to
strength0.85, but the author's own recommendation is 0.05β0.10. At 0.85 you're not grading your image, you're replacing it - a full-strength Portra emulation looks like a badly overcooked Insta filter. Pull it way down and let the film look whisper instead of shout. - The dropdown is scanned once, at node construction. Drop your own
.cubefiles intoComfyUI/custom_nodes/ComfyUI-CameraForensicRealism/luts/and restart ComfyUI - it won't show up live.
Install
Same pack, same steps as the engine node: ComfyUI Manager (search "ComfyUI-CameraForensicRealism"), or clone and install:
cd ComfyUI/custom_nodes
git clone https://github.com/MONKEYFOREVER2/ComfyUI-CameraForensicRealism.git
cd ComfyUI-CameraForensicRealism
pip install -r requirements.txt
Restart, then find it under Right-click β Add Node β image/forensic β π¨ LUT Loader. The only dependency beyond what ComfyUI already ships is numpy. No models, no GPU requirement - it's cheap.
If you want a quick creative grade on top of a render - or over the pack's own forensic engine - this is the cleanest way to get one, as long as you remember which LUT is which and how little strength the author thinks you actually need.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| lut_name | COMBO | Select a .cube LUT. Note: 'AppleLog2_to_Rec709' is a technical conversion LUT β it expects Apple Log footage as input, not regular sRGB images. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| lut_data | LUT_DATA | β |