ComfyUI Node

🎨 LUT Loader

Grab a .cube and grade your render like a colorist β€” but read the label first

By MONKEYFOREVER2Β·Created 6 months agoΒ·Updated 3 months agoΒ· 3
🎨 LUT Loader
    • lut_data
    β—„lut_nameβ–Ύβ–Ί

    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 .cube file in the pack's luts/ folder. Two ship with it.
    • lut_data (output) - a custom LUT_DATA type containing the parsed grid plus its domain. Wire it into LUT Apply's lut_data input, 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:

    1. Strength. LUT Apply defaults to strength 0.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.
    2. The dropdown is scanned once, at node construction. Drop your own .cube files into ComfyUI/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.

    Categoryimage/forensic

    Inputs (1)

    NameTypeDefaultDescription
    lut_nameCOMBOSelect 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)

    NameTypeDescription
    lut_dataLUT_DATAβ€”