ComfyUI Node

MX_LUT

Drop a HaldCLUT image in and inherit a whole film look

By Intersection98·Created 2 years ago·Updated 2 years ago· 13
MX_LUT
  • image
  • lut_image
  • IMAGE
gamma_correction

MX_LUT is the pack's color-grading node, and it works the way colorists actually work: you feed it a lookup-table image - specifically a Hald CLUT - and it remaps every pixel of your render through that table. Film emulation, teal-and-orange, whatever weird grade someone bottled into a LUT file - one input and your whole image inherits it.

It's part of Intersection98/ComfyUI-MX-post-processing-nodes, and it's the node that makes "grade your AI image like it was shot on Agfa Vista 200" a one-wire operation. The pack even ships a folder of sample LUTs (img and lut) including film stock names like that, so you can try it immediately.

How it works

A Hald CLUT is a special image whose pixels encode a 3D color mapping: the image's own RGB value at each position is the lookup table. MX_LUT reads the LUT image's dimensions to derive the table size (clut_size = cube_root(width)), then for every pixel in your photo it indexes into the 3D table and replaces the color. It's exactly how video editors apply .cube files, just expressed as an image so ComfyUI can handle it natively.

The gamma_correction toggle is the film-timing detail: with True, the input is gamma-decoded (raised to 1/2.2) before the LUT is applied, which makes the grade behave more like real film/tone curves and less like a straight color replace. For film-emulation LUTs, leave it True; that's the setting that makes them look right.

The inputs that matter

  • image - the photo or render you're grading.
  • lut_image - the Hald CLUT image, fed in as an IMAGE. This is where people stumble: it must be a Hald CLUT, not a random color photo. Use the ones in the pack's img and lut folder or download proper HaldCLUTs.
  • gamma_correction - True or False, as above.

Output is a single IMAGE, same resolution as your input.

Install

Standard MX pack install. ComfyUI Manager (search MX or ComfyUI-MX-post-processing-nodes), or:

cd ComfyUI/custom_nodes
git clone https://github.com/Intersection98/ComfyUI_MX_post_processing-nodes
cd ComfyUI_MX_post_processing-nodes
pip install -r requirements.txt

Restart ComfyUI; the node sits under Processing/color adjust. No models to download, but you do need LUT images - grab the samples that ship with the pack (or any HaldCLUT set) and load them with a standard LoadImage node.

Where people get burned

The LUT-vs-photo confusion is the #1 issue. If your output looks like static or random noise, the thing you plugged into lut_image wasn't a valid Hald CLUT - it needs that specific cube-shaped layout. Second, gamma_correction genuinely changes the result; leaving it False on film-emulation LUTs gives a harsher, more "digital" grade that doesn't match the LUT author's intent. Third, there's a known quirk: this node is declared as an output node (OUTPUT_NODE = True) and its IS_CHANGED returns a constant, which is the pack author's way of forcing a re-run - harmless, but it means the node may re-execute even when inputs look unchanged. And a tip that applies to the whole pack: for a subtle grade rather than a full emulation, chain MX_LUT into MX_Blend (normal mode, low blend_factor) so you can dial the look back - the LUT's raw output is all-or-nothing.

CategoryProcessing/color adjust

Inputs (3)

NameTypeDefaultDescription
imageIMAGE
lut_imageIMAGE
gamma_correctionCOMBO2 options: True, False

Outputs (1)

NameTypeDescription
IMAGEIMAGE