lutspeak reads a LUT or look file and writes a plain description of what it does to the image: contrast, blacks and highlights, colour cast, hue shifts and skin tones. You do not need footage, only the file.
Everything runs in your browser. Your files are never uploaded anywhere.
Page visits are counted anonymously with GoatCounter: no cookies, no IP addresses, and nothing at all about the files you open. Opt out at lutspeak.com#toggle-goatcounter.
Opening a LUT
Drag a file onto the page, or click "Open LUT". Supported types are .cube, .3dl, .alf4, .alf4c, .aml and .l16. Drop several files, or a whole folder, to check them all at once.
Camera and output
Most LUTs expect log footage from a particular camera. lutspeak needs to know which, because reading a LUT through the wrong log measures the wrong points on its curve and every number below comes out wrong.
"Camera" is set to auto detect and works this out from the file name. If it cannot tell, or the name is misleading, choose from the list: the major cinema cameras are there, plus ACES and DaVinci Wide Gamut. If your LUT takes an ordinary video image rather than log, choose "Other / display-referred".
"Output" sets which display the transform targets, usually Rec709. It appears once you have chosen a camera that offers a choice of displays, and the Camera control then reads as the whole transform, such as "ARRI LogC4 to Rec709".
Always check the "Read as" line at the top of the report. It is the one assumption everything else rests on, and the "change" button beside it jumps straight to the control.
Choosing what to compare against
lutspeak describes a LUT by comparing it to something else. "Compare to" sets what:
- standard render (default): the camera's own official image, so the report describes only what your LUT adds on top of it.
- another file: your show's base LUT, or another camera's render. You can drop a file straight onto the control. As with A/B, when the two measure close the verdict says so instead of describing a grade, and the description names your reference file rather than saying "the reference".
- another LUT (A/B): describes the second file relative to the first. The report names both at the top, marked "describing the look" and "against the reference", in the same orange and teal the graphs use. Above them it states what both files are being read as, such as "ARRI LogC4 to Rec709 LUTs"; the Camera and Output controls set it. When the two files measure close, the verdict says so instead of describing a grade: "essentially the same look, with an early highlight clip", and "show numbers" carries the largest difference between them found anywhere.
- nothing: compare against an unchanged signal, to see the raw transform alone.
Reading the report
The verdict is one sentence naming what the LUT does. The paragraph below it walks through what was measured. "Show numbers" reveals the figures behind the words: exact contrast ratio, exposure offset in stops, black floor, peak white, saturation by band.
Red boxes are warnings, and they matter more than anything under them. Each one opens to a fuller explanation of what it means and what to do, so you never have to come back here to decode one.
What the words mean
The description uses a fixed vocabulary, so the same word always means the same size of move and you can calibrate against it. Percentages are the change against the reference.
- Contrast. "a touch more" or "a touch softer" from about 4%, "punchy" or "soft" from 10%, "high-contrast" or "flat" from 28%.
- Saturation. "muted" from about 11% down, "heavily muted" from 28% down. A boost is quoted as a number until 28% up, where it becomes "richly saturated".
- Warmth and tint. "a touch warm" or "cool", then plain "warm" or "cool", then "heavily". The same three steps apply to green or magenta tint. "Split-toned" means the ends pull opposite ways, the orange-and-teal arrangement.
- Exposure. In stops a cinematographer says out loud, a third at a time: "a print-down of about 1⅓ stops".
- Blacks. "lifted", then "heavily lifted", as the floor rises off true black. "Crushed" when shadow detail is lost, "a deeper black floor" when blacks sit denser than the reference.
- Highlights. "clip" when they hit one level, "a plateau" when they level off early, "capped" when the brightest the look reaches is well under white. "Flat" is reserved for contrast and never used of highlights.
- Hue. A family "leans", then "pushes", then "swings" toward another hue as the rotation grows.
Some looks are named outright instead: a bleach bypass, a day-for-night, a black-and-white or sepia conversion, an inverted LUT, or a file that maps everything to one colour.
The panels
The tone curve plots input brightness against output, with the reference behind it, and marks where shadows crush or highlights clip.
The skin spheres render the same head as the reference sees it and as your LUT sees it. Tap them (or press and hold with a mouse) to blink one against the other in place.
The hue and saturation shape is a wheel. A perfect circle means no colour change; bulges gain saturation and dents lose it. Arrows mark only the hues rotated far enough for the report to call it a rotation, so no arrows means no hue turned appreciably.
Checking several files at once
Drop a folder and you get a table of every file with its contrast, saturation and warmth. Click a row to open its full report. A line above the table states what the files are being read as; a folder that mixes encodings is called out with counts, since a stray display cube among log grades is worth noticing before trusting the columns.
Two things are called out above the table: files that render the same image, and any file with a problem in how it was built, listed by problem. The same-image groups are the quick way through a folder of badly named revisions, and they come in two strengths: near-identical, where the files are interchangeable, and same look, where one particular differs and is named, such as "grade_v4 vs grade_v3: essentially the same look, with an early highlight clip". Where some files in a group are cleanly made and others are not, the group also says which to keep, since files that render the same image are not always equally well built and the verdict cannot tell them apart. From eight files up you also get a filter box, so typing 8-bit lists only those files. A shorter list is already on screen, so it does not get one.
That last one matters on anything you did not export yourself. A damaged copy and a clean one describe the same look, and the verdict reads identically for both.
Is the file itself well made
Separately from what the look does, lutspeak checks how the file was built: whether it has been through an 8, 10 or 12-bit round trip, whether the grid is noisy rather than smooth, whether the neutral ramp reverses anywhere, whether values fall outside the normal range, or whether it contains invalid numbers.
This reads the raw grid and uses no camera setting and no reference, so it stays true even if you have the camera set wrong. A well-made LUT shows nothing here at all.
Detail
Under "View", "Detail" sets how much the report says. Each setting keeps everything the one below it said.
- Terse: the verdict alone.
- Normal: adds the readout paragraph.
- Full: adds "What this means", up to four points on what the measurements imply for footage going through the LUT, such as which detail can no longer be graded back. Written as consequences, not instructions, because the report knows what the LUT does but not what your grade is for.
It also sets how warnings explain themselves: plain language at Terse and Normal, the underlying mechanism and thresholds at Full. The setting is remembered between visits.
The numbers are not on this ladder. They stay behind "show numbers" at every setting, so you can read a one-line verdict and still check a figure.
Data levels
Some LUTs output legal or video range, with black and white sitting inside the normal 0 to 100 percent range. Unflagged, that reads as lifted blacks and capped whites when it is nothing of the kind. "Auto" detects it and is right almost always; the other two settings let you force it.
Not every encoding allows both. Sony records S-Log at full range in every codec and on SDI, and offers no legal option at all, so a Sony log file whose output sits in the video window cannot be a data-level container. Auto leaves those alone rather than expanding them, since expanding would compress the highlight headroom S-Log3 keeps above 90% white, and says so in a warning instead. You can still force legal by hand, because a file can always be built against the wrong convention.
The control sits under "View" beside Detail, and on Auto it says which way it read the loaded file. When the level is worth your attention, because the file sits near the legal window, was detected as legal, or you have set it by hand, the "Read as" line at the top of the report names it as well, with a button straight back to the control.
Professional mode and the Process Lab
Professional mode, at lutspeak.com itself on desktop, builds and describes chains of nodes rather than single files: LUTs, CDLs, conversions, creative tools, readouts and exports, with the same measured honesty as the main page.
Its Process node is the Process Lab: five historical colour processes, Three-strip and Two-colour Technicolor, Kodachrome, Gasparcolor and Dufaycolor, modelled as one physical machine (records exposed through their spectral sensitivities, characteristic curves, dyes recombined by real absorption spectra) rather than as filters. What each era could not show falls out of the physics: two records cannot print a blue sky, and the model does not pretend otherwise.
Every parameter on the card is a real quantity you can change: record contrast and balance, dye density, and each dye's absorption band, draggable along a spectrum drawn from the colour-matching functions themselves. You can also print one stock's records through another stock's dyes, a physically coherent look that never existed. All of it is measured by the same instruments as any other node.
The Interlayer node is film's inter-image effect as its own control: each colour layer suppresses the others in proportion to its own development, so colours purify by competing, with a structure no saturation dial or channel mixer can reach, and greys that cannot move. The card's grid dials how hard each layer suppresses each other layer, and its proof strip shows the current settings' effect at three exposures, rendered through the actual engine.
The Image viewer node puts your own still into the chain: load a TIFF, PNG or JPEG, declare what colour space the file is, and a floating window shows it rendered live through the chain up to that point, updating as you edit. 16-bit TIFFs keep their full depth, and two viewers at two points of a chain are a before and after, side by side.
Pro mode has its own manual at lutspeak.com/pro-guide: the two lanes, every node, where each one can go, and worked examples for building a look, comparing two versions of a show LUT, matching cameras and delivering a cube.
Any node with more than one setting carries a reset arrow that returns it to the settings it was created with, and each lane has a button that copies its whole chain onto the other lane, input encoding included, for comparing two versions of one look. Readouts and image viewers stay behind, since neither means the same thing in the other lane.
Every node in a chain carries a "?" that opens the node reference: what that node is for, what it expects to be handed, and what it hands on, for all eighteen of them. It is the fastest way to learn what can go where.
One honest boundary, stated on every preset: the dyes are modelled from each process's documented behaviour, not scanned from surviving stock, and anything spatial, film grain, the réseau's mosaic texture, halation, is outside what any LUT can carry.
Theme, copying and printing
"View" also switches between dark and light themes. The copy and print buttons sit at the top of the report. Copy always puts the complete text on your clipboard, numbers and all, whatever Detail is set to, so a pasted report stands on its own. Print gives you what is on screen, so it follows the Detail setting, and can save a PDF.