Load LUT
Build or load a color-grading LUT without leaving ComfyUI
- lut
A LUT (look-up table) is just a fixed recipe for remapping color - feed it a color, it hands back a graded one. It's how film and video colorists get a consistent "look" across a whole project without redoing the grade by hand every shot. WAS Load LUT brings that into ComfyUI's graph instead of making you round-trip through DaVinci Resolve: pick a preset, dial in a custom grade, or load your own .cube file, and it hands you a LUT you can apply, blend, or save.
It's part of a small pipeline WAS_Extras ships together (the pack's own README groups them under WASLUT.py): WAS Load LUT to get a LUT, WAS LUT Blender to combine two, WAS Apply LUT to actually grade an image with one, and WAS Save LUT to export back to .cube (its own article, since it's also in our set). This node is the entry point.
How it works
The look dropdown gives you named presets - Cinematic, Vibrant, Desaturated, High Contrast, Soft - plus Custom. It also scans your ComfyUI/models/LUT folder at startup and appends any .cube files it finds there, so the real dropdown you see is usually longer than just those five presets once you've dropped a downloaded or exported LUT into that folder. builtin_size sets the resolution of the generated cube (17–65, odd steps - 17/33/65-point is the standard sizing grading software already expects).
Pick Custom and the ten custom_* sliders take over, synthesizing a LUT from scratch rather than loading one: exposure, contrast, saturation, vibrance (per its tooltip, boosts low-saturation areas more than already-saturated ones), gamma, white-balance temperature and tint, and per-channel red/green/blue balance. It's a fast way to bake a grade without wiring up a chain of separate image-adjustment nodes.
The inputs and outputs that matter
look- the preset or.cubefile to load, orCustomto build one.builtin_size(default 33) - LUT resolution, matters for both builtins and custom synthesis.- The ten
custom_*fields - only do anything whenlookisCustom. Each has a tooltip explaining exactly what it nudges (exposure, contrast, saturation, vibrance, gamma, temperature, tint, red/green/blue balance), so trust those over guessing.
Output: lut (LUT type) - this doesn't touch pixels by itself. Wire it into WAS Apply LUT to grade an image, into WAS LUT Blender to combine it with another, or into WAS Save LUT to write it out as a portable .cube file.
How to install it
Via ComfyUI Manager: search WAS_Extras, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/WAS_Extras
Restart ComfyUI. No model downloads and no extra dependencies for this node - it's pure Python color math plus whatever .cube files you supply yourself.
Common issues & troubleshooting
Your custom .cube files never show up in the dropdown. The node only scans ComfyUI/models/LUT - if that folder doesn't exist yet, create it, drop your .cube files in, and restart ComfyUI (or refresh the node's definitions) so it re-scans.
Changed the custom_* sliders and nothing happened. Those only apply when look is set to Custom. Any other selection ignores them entirely, silently - check the dropdown before assuming the node's broken.
Can't wire lut into an image node. That's expected - LUT is its own WAS-specific socket type, not an IMAGE. You need WAS Apply LUT downstream to actually affect pixels; this node only produces the recipe.
Grade looks flat or barely different from the source. If you're on a builtin look, it's a fixed, fairly gentle recipe by design - for something stronger, switch to Custom and push custom_contrast/custom_saturation/custom_vibrance further than you'd expect, or load a punchier third-party .cube.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| look | COMBO | Which table to produce. 'Custom' builds one from the controls below and ignores any file; the named looks are built in and need no file; entries starting 'LUT: ' are .cube files found in a models/LUT directory or in the pack's own luts directory. | |
| builtin_size | INT | 3317–65 | Edge length of the cube built for a named look or for 'Custom', in samples. 33 is the industry-standard size and is plenty; 65 is finer and eight times the memory. Ignored when a .cube file is chosen, since the file sets its own size. |
| custom_ev | FLOAT | 0.00-4–4 | Exposure in photographic stops, for the 'Custom' look. +1.0 doubles the brightness, -1.0 halves it, 0.0 changes nothing. |
| custom_contrast | FLOAT | 1.000.1–3 | Contrast for the 'Custom' look, around mid grey. Above 1.0 deepens shadows and brightens highlights, below 1.0 flattens the picture towards grey, 1.0 changes nothing. |
| custom_saturation | FLOAT | 1.000–3 | Colour intensity for the 'Custom' look. 0.0 gives black and white, 1.0 changes nothing, 2.0 doubles the distance of every colour from grey. |
| custom_vibrance | FLOAT | 0.00-1–1 | Colour intensity for the 'Custom' look, weighted towards the muted colours. Positive lifts pale colour without pushing already-strong colour further, which is the gentler way to add life to skin tones; 0.0 changes nothing. |
| custom_gamma | FLOAT | 1.000.1–3 | Midtone brightness for the 'Custom' look, leaving black and white where they are. Above 1.0 opens up shadow detail, below 1.0 deepens it, 1.0 changes nothing. |
| custom_temperature | FLOAT | 0.00-1–1 | Warmth for the 'Custom' look. Positive shifts towards orange, as though shot under tungsten light; negative shifts towards blue, as though shot in shade; 0.0 changes nothing. |
| custom_tint | FLOAT | 0.00-1–1 | Green-magenta balance for the 'Custom' look, the second half of white balance. Positive adds green, negative adds magenta, which is what corrects a fluorescent cast. 0.0 changes nothing. |
| custom_red_balance | FLOAT | 0.00-1–1 | Red channel gain for the 'Custom' look, applied on its own. +0.1 raises red by a tenth, -0.1 lowers it, 0.0 changes nothing. |
| custom_green_balance | FLOAT | 0.00-1–1 | Green channel gain for the 'Custom' look, applied on its own. Use the three balance controls together to match a reference render channel by channel. 0.0 changes nothing. |
| custom_blue_balance | FLOAT | 0.00-1–1 | Blue channel gain for the 'Custom' look, applied on its own. +0.1 raises blue by a tenth, -0.1 lowers it, 0.0 changes nothing. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| lut | LUT | The colour lookup table, for Apply LUT, LUT Blender or Save LUT. |