◎ Radiance LUT Apply
Radiance LUT Apply — drop a real .cube LUT into ComfyUI and stop hand-tuning grades
- image
- image
Every serious colorist works with LUTs - lookup tables, usually .cube files - because a LUT is a grade you can share. Someone spends an afternoon building a film emulation or a teal-and-orange look, exports it as a 33³ cube, and now it's a file anyone can apply. ComfyUI's core has no real 3D LUT support, which is a gap the moment you find a LUT you like. Radiance LUT Apply is the fix: point it at a .cube file and it applies the transform to your image with proper interpolation.
The source's one-liner tells you it's built like the real thing - "trilinear or tetrahedral interpolation" - which is the difference between a toy LUT node and one a colorist would trust. And because this is the Radiance pack, the output doesn't have to clamp to 0–1, which is what makes it usable in an HDR pipeline at all.
How it works
A 3D LUT is a grid of output RGB values sampled across the input color cube - a 33³ LUT has 35,937 entries. Applying it means finding where each input pixel falls in that grid and interpolating between the surrounding points. Trilinear does it with the obvious 8-corner interpolation; tetrahedral splits the cube into tetrahedra and is more accurate at the cost of a little speed. The tooltip says it straight: tetrahedral is more accurate but slightly slower. For stills and one-off grades you won't feel the difference; for batch work over thousands of frames, trilinear is plenty.
The log_space option matters for working with camera footage. A LUT designed for log input - most film-emulation LUTs are - will look wrong applied to linear or sRGB data. Turn on log_space and pick the log_encoding (Log10, Log2, or natural log) to decode before applying, which is how you use log-space LUTs correctly.
The inputs that matter
image- your input.lut_file- picked from a dropdown. The node auto-registers amodels/lutsfolder in your ComfyUI install and lists whatever.cubefiles are in there. If the dropdown says "No LUTs found", create that folder and drop files in - then reload the node list.strength- 0 to 1, how hard to apply the LUT. 1.0 is full strength; 0.5 is half the look.log_space+log_encoding- for log-encoded input and log-space LUTs.clamp_output- off by default. Leave it off for HDR work so values can exceed 1.0; flip it on if your downstream is 8-bit and doing strange things.interpolation- Trilinear (default) or Tetrahedral.
Output: the graded image.
Where it fits
LUTs are the shareable middle ground between the pack's parameter nodes. You can build a look in ◎ Radiance Grade, export the grade_info as a recipe - but a LUT is what a colorist hands you, and now you can take it. It also pairs with the pack's ◎ Radiance LUT Blend, which mixes two LUTs; a common workflow is picking a base film emulation and a creative grade, blending to taste, and applying once.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/fxtdstudios/radiance.git
cd radiance
pip install -r requirements.txt # or requirements_windows.txt / requirements_linux.txt / requirements_mac_silicon.txt
Or search Radiance in ComfyUI Manager, restart. Linux needs libopenexr-dev first.
Gotchas
Three, in order of how often they bite. First, the "No LUTs found" dropdown - it only sees models/luts, and it registers that folder lazily, so you may need to create the directory and refresh. Second, forgetting log_space: applying a log-designed LUT to linear data makes it look like a disaster until you realize it's a space mismatch, not a broken LUT. Third, clamp_output is off by default, so a LUT that pushes past 1.0 will produce super-white values that 8-bit viewers show as clipping - that's correct HDR behavior, but it confuses people previewing on a normal monitor.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| lut_file | COMBO | 1 options: No LUTs found | |
| strength | FLOAT | 1.000–1 | — |
| log_space | BOOLEAN | false | — |
| log_encodingopt | COMBO | Log10 | 3 options: Log10, Log2, Natural Log (Ln) |
| clamp_outputopt | BOOLEAN | false | Clamp to 0-1. Disable for HDR. |
| interpolationopt | COMBO | Trilinear | Tetrahedral is more accurate but slightly slower |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |