Many shots, one look
Load shots from different scenes and lighting conditions. Every thumbnail follows the grade, so you find the compromise before you export it rather than after.
Free · no account · nothing uploaded
Drop screenshots, camera RAW files or a video clip. Grade them with the controls a
colorist actually uses. Export a .cube, .3dl, Unreal, Unity,
ReShade or HALD LUT — with no watermark, and not one pixel leaving your machine.
Chrome, Edge, Firefox and Safari · desktop or phone
Grading
Most online LUT makers give you one image and eight sliders. A look that survives contact with a real project has to hold up on a night exterior and a lit interior at the same time, so Nyans grades a whole contact sheet at once — every thumbnail updates live as you work.
Load shots from different scenes and lighting conditions. Every thumbnail follows the grade, so you find the compromise before you export it rather than after.
Push any source ±4 EV to bring it into range. That offset feeds the scopes, the picker and Auto match, but stays out of the exported LUT by design.
White balance with a grey eyedropper, exposure, contrast with pivot, highlights, shadows, whites, blacks, lift/gamma/gain/offset wheels, master and per-channel curves, an 8-band HSL mixer on Oklab hues, vibrance, split toning and output levels.
Drop in a film still or concept art and a solver fits the broad-stroke controls until the whole sheet's Oklab statistics agree with it. The result is ordinary knob positions — blend it, refine it, undo it in one step.
Open any 3D .cube and the same solver fits the control stack to it, usually within about ΔE 0.1. An opaque LUT someone handed you becomes something you can actually edit.
Drop in any .cube you already own and carry on with a strength slider. It stacks in right after the tone curves, so everything below trims the look rather than feeding it — and the whole thing still bakes down to one exported LUT.
Continuous Sat-vs-Sat and Luma-vs-Sat curves in Oklab, alongside the 8-band hue mixer. Pull saturation out of the highlights, or only out of what is already saturated, without disturbing anything else.
Mask a palette to keep and an asset to adjust; Harmonize solves only the HSL mixer, so your look knobs stay where you put them. Export texture fix instead solves a standalone B→A transform and hands you .cube + HALD for batch-applying to textures.
Team reds, UI colours, skin tones. Live ΔE badges warn the moment a grade drags them, and Auto match treats them as hard constraints instead of suggestions.
Exports
The same grade writes out to whatever your pipeline actually reads — an NLE, a game engine, or a post-processing injector. Bundle several into one zip if the answer is "all of them".
| Format | Shape | Reads it |
|---|---|---|
| .cube | 16³ / 32³ / 65³ | DaVinci Resolve, Premiere Pro, Final Cut Pro, After Effects, Photoshop, Lightroom, OBS, CapCut |
| .3dl | Autodesk 3D LUT | Flame, Lustre, Nuke, older broadcast pipelines |
| Unreal strip | 256 × 16 PNG | Unreal Engine 4 & 5 colour grading LUT slot |
| Unity strip | 1024 × 32 LDR PNG | Unity post-processing / URP / HDRP |
| ReShade | lut.png | ReShade injector on any game |
| HALD CLUT | 512 × 512 PNG | ImageMagick, G'MIC, batch texture pipelines |
| PQ shaper .cube | Scene-referred HDR | Engines grading before the tonemapper |
Toggle between the float pipeline and the actual quantised LUT at 16³, 32³ or 65³, trilinear or tetrahedral. Cheap LUT sizes reveal their artefacts here, not three hours later in-engine.
Export any shot at its original dimensions, with either the float grade or the quantised LUT preview baked in — plus a separate pass that renders bloom, halation, grain and vignette into the pixels.
Share copies a link with the whole grade gzipped into the fragment. No upload, no server, no expiring bucket — the look travels in the address bar.
LUT Lab
Not every LUT you are handed is sound. LUT Lab loads any 3D .cube as float
data and shows you its declared input domain, where its output runs past the legal range,
and which cells have folded or gone singular — then lets you repair, resize or recombine it.
Read the declared input domain, the output excursions and the folded or singular cells off the actual numbers, instead of guessing from a preview swatch.
Resize the grid, blend the LUT from 0 to 200%, or compose it before or after a second LUT. Download the result, stack it, or reverse-fit it back into editable controls.
Custom input domains and values outside 0–1 survive the round trip rather than being quietly clamped on the way through — which is where most LUT utilities lose data.
Input
A photo, a game capture and an EXR all enter the pipeline at the same place, as scene-linear light — so a look built on one behaves the same on the others.
With a skin-tone line, clipping zebras and an exact in→out pixel probe. Plus colour-vision-deficiency simulation, because gameplay readability is a colour problem too.
Bloom, halation, grain and vignette preview as a layer that cannot bake — bloom reads its neighbours, grain and vignette depend on position in frame. They stay out of thumbnails, comparisons and scopes, and export as an engine recipe naming the settings that reproduce them.
Shots and mask scribbles persist to OPFS, the grade to local storage. Nothing to sign into, nothing to sync, nothing to lose.
Why free
Every browser LUT tool that charges you does so because it decodes, grades and stores your footage on someone else's machine. Nyans doesn't have that bill, because it doesn't do that. The grading runs on your GPU, the files stay on your disk, and the server only ever hands out the app itself.
So there is no free tier to outgrow: no watermark, no export cap, no locked formats, no account, no trial clock.
.cube text, and any .cube you already own can be loaded back in and taken apart.FAQ
.cube at 16, 32 or 65 points, .3dl, an Unreal Engine 256×16 strip, a Unity 1024×32 LDR strip, a ReShade lut.png, a 512×512 HALD CLUT, and a PQ shaper .cube for engines grading in scene-referred HDR before the tonemapper. Several formats can be bundled into a single zip..cube is the standard 3D LUT format read by DaVinci Resolve, Premiere Pro, Final Cut Pro, After Effects, Photoshop, Lightroom, OBS and CapCut. Drop the file into the application's LUT folder and it turns up in its LUT list..cube, usually within about ΔE 0.1, which turns an opaque LUT into an editable grade. Or load it as a creative layer and keep grading on top of it with a strength slider — both still bake down to one exported LUT..cube as float data to see its declared input domain, output excursions and folded or singular cells; resize the grid, blend it from 0–200%, or compose it before or after a second LUT. Download the result, stack it, or reverse-fit it into editable controls. Custom domains and values outside 0–1 survive the round trip instead of being silently clipped.No sign-up. No upload. No watermark.