Open the tool

lutspeak user guide

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:

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.

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.

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.

Open the tool and describe a LUT