Skip to main content
Glama

Lutra

Создание LUT для цветокоррекции в браузере. Загрузите скриншоты, RAW-файлы с камеры или видеофрагмент, скорректируйте их настоящими инструментами колориста и экспортируйте LUT в форматах .cube / .3dl / Unreal / Unity / ReShade / HALD. Без установки и без аккаунтов — всё работает локально на вашем GPU через WebGL2. Изображения никогда не покидают вашу машину.

Доступно по адресу https://lutra.gamebench.dev

Зачем

Создание цветокорректирующего LUT обычно требует установки гигабайтов видеопрограмм. Lutra — это веб-приложение размером ~70 КБ (в gzip), построенное вокруг единственного архитектурного правила: любая операция — это чистое попиксельное преобразование цвета, поэтому весь грейд ложится в 3D LUT точно. Пространственные эффекты (блюм, ореол, зерно, виньетка) существуют только как явно подписанный слой предпросмотра и экспортируются как рецепт движка, а не как пиксели, потому что в LUT им места нет — что вы видите в грейде, то и делает LUT.

Related MCP server: mcp-da-vinci

Возможности

Грейдинг

  • Грейдинг по контактному листу — загружайте много кадров в разных условиях освещения; каждая миниатюра живёт по грейду в реальном времени, потому что LUT глобальный и должен работать везде.

  • Индивидуальная проявка кадра — нормализуйте каждый источник в пределах ±4 EV, прежде чем оценивать общий образ. Проявленные исходники, осциллографы, выборочный цвет и Auto match работают с одним и тем же входом; сдвиг проявки по построению не попадает в экспортируемый LUT.

  • Набор инструментов колориста — баланс белого (+ серая пипетка), экспозиция, контраст с pivot, света/тени/белые/чёрные, колёса lift/gamma/gain/offset, мастер-кривые и поканальные кривые R/G/B, 8-полосный HSL-микшер (оттенки Oklab), плавные кривые Sat-vs-Sat и Luma-vs-Sat, насыщенность/сочность с управлением теней и светов по светлоте, сплит-тонирование, выходные уровни и общий регулятор силы лук-эффекта.

  • Слой креативных LUT — добавьте свой уже готовый .cube и продолжайте грешить поверх него регулятором силы слоя. Применяется сразу после тональных кривых; поэтому всё, что ниже, уточняет стиль, а не подпитывает его, — и в один экспортируемый LUT запекается итог.

  • Честный отклик плёнки — bloom, жирность, зерно и виньетка появляются на отдельном слое, который в интерфейсе честно подписан not in the LUT (и словами). Эти эффекты не могут быть запечены (блюд читает соседние пиксели; зерно и виньетка зависят от позиции в кадре), поэтому их нет в миниатюрах, сравнениях и осциллографах, и экспортируются они как engine-рецепт с настройками Unreal/Unity/ReShade для повторения.

  • Сравнение — до/после (удерживайте Space), шторка A/B, миниатюры по кадрам. Undo/redo и горячие клавиши работают везде.

Входной материал

  • Camera RAW.ARW, .CR2, .CR3, .NEF, .DNG, .RAF, .ORF, .RW2 и другие через LibRaw, скомпилированный в WebAssembly. Сначала применяются собственный баланс белого и цветовая матрица камеры, затем кадр поступает в конвейер как scene-linear light — в той самой точке, где это делают EXR и PQ AVIF. Так что фото и игровой захват обрабатываются одинаково. Экспозиция — это фиксированная, документированная константа запаса, а не автоматическая подстройка яркости под кадр, поэтому ночь и снежное поле не developing в разную яркость. Декодер 1,5 МБ спрятан под динамический import() и никак не нагружает загрузку остальных пользователей.

  • HDR и большая глубина цвета — OpenEXR (half/float, NONE/RLE/ZIP), Radiance .hdr и 10/12-битный AVIF (PQ, HLG, высокобитовый SDR) с полной точностью через декодеры без зависимостей + WebCodecs. HDR развивается до display-sRGB с тем же охватом, который предполагает экспортный PQ-шейпер, так что превью и результат в движке совпадают. Brows without WebCodecs ImageDecoder (Safari, Firefox) get pre-developed HDR from the encoded PQ data, so positive matches — and a clear warning when browser hasn't like AVIF and the browser must do tone mapping.

  • Живая цветокоррекция экспози — клипы MP4/MOV/WebM живут в той же плёночном ряду, что и кадры. Made it long, play, mounce by frames in the usual viewport and continue operating as retain years instant. Displayed frames feed over so shared WebGL grade directly from the operating system or on GPU/OS decoder; hardware decode is used in codec/browser/device matches. Clip file bytes and playing head survive restart on your computer/browser, and restore in the strip; they are never uploaded. At copy stages of file are chunked and can be cancelled; quota is checked in advance, and each clip is marked with the LOCAL or SESSION label so the record-access isn't counted as tc.

Сопоставление и приёмка

  • Auto match — drop the verification image, and the solver will try basic adjustments to match Oklab statistics of the entire contact sheet. The output is нф:

    • The output is normalized knob positions: mix with a force slider, make it smoother by immersing, undo in one step.

  • cube import — one solver fits the knob system to any 3D .cube LUT (usually ΔE within 0.1), turning an opaque LUT back into tunable grades.

  • LUT Lab — open a 3D .cube LUT as dark, investigate the photon direction and range of values at entry, exit and the "fragment"/"porous" cells; change dimensions; cut off from 0–100%; connect to input or output with the second LUT; remove you to download, stack or Convert. Non-standard domains/vads beyond 0–1 survive, and don't collapse.

  • Зафиксированные цвета — pin those colors that must survive the session (color attire, red, skin). Live ΔE badges show when the adjustment has changed them; and Auto match = count as constraints.

  • Гармонизmd assets — Gradually choose palette you want to preserve, and the asset to change. Harmonize works only with HSL mixer, so the asset in your style is preserved. Export texture fix instead finds the direct color transform as LUT and saves it as .cube + HOL for batch textures.

  • Осциллографскоп — RGB row, parade, waveform, vectorscope with skin-tone line, "zebra" mon clip, exact pixel "in=out" waveform, and the track-of-colors-visuality inspector is itself exactly feeding the scope; plus semantics of vision mod: "without color defect" — preview for gameplay.

  • Честный предпросмотр интегральный предпросмотр — switch between floating pipeline and actual taper status of an LUT (16³/32³/65³, trilinear or tetrahedron), so not every ladder is scary prior to export, not in engine.

Export and Save

  • Export of source resolution — export the desired frame at full resolution in PNG, the frame shows individual files and is * the current tone * or *graded in the selected paper *and is exported without image. You can generate the cover design of the shot separately, checking blurred, bloom, the audio and the vignette inserted directly in the pixel. *... [[See above]] Export formats — .cube (16/32/65), .3dl, Unreal 256×16LUT sheet, Unity LDR 1024×32 sheet, ReShade lut.png, HALD CLUT 512×512, as well as PQ atomic .cube for the engine ** which grades in the scene-significant HDR before tone mapping. Most final formats can be bundled into one zip. You configure for each engine and even PEG shape read the jovial doctor specialty docs/exports.md.

  • Share link — special shell, Share button copies a URL with an exact link compressed into the fragment. No server, no download.

  • Sessions survive the reload — frames and mask outlines persist to OPFS, a large number of results in localStorage. ** An additional unused tab, go to the project and write in without loss.

  • Works on your phone — on a width below 860px, the video is pinned to the top, the controls scroll below; the touch elements are arranged to the form and two fingers may**mpf navigate viewport.

AI connection

One extra in the toolbar. LUT uses Model Context Protocol for transmission, and Claude, ChatGPT or an MCP-client can interact with **MCP in your project. Claude, ChatGPT or any MCP Client will be screen. The point is not the LUT with text: the assistant can see. It can take a frame, read scopes, in English call it "turn the light" their perspect nudge, then update the frame again, check as on your color — the loop which no "blind" generator can make. To remember global overrides remain ordinary undo steps; the dashboard and film response are always preserved as a single separate subsystems "that cannot be undone".

Two data transports, chosen for you. WebMCP (in cases when the browser already provides (in, e.g., Edge, Chrome, Chrome with Origin Trial starting with 149) falls into an in-browser agent directly without pairing. Everywhere else you get via connector URL passes through the durable and stores nothing:

| Client | What you get | | Client | What you get | | ----------- | ----------------------------------------------- | Suppose | | Claude Code | claude mcp add --transport http lutra <url> for work in terminal. | | Codex | [mcp_servers.lutra] section ~/.codex/config.toml | | Claude app | plain URL, for "Settings → Connectors → Add custom connector." |

Tools: get_look, list_shots , render_shot (the real picture), get_scopes (original or processed), nudge, set_look, set_shot_development, get_film_response, set_film_response, suggest_look, check_lock, undo, get_share_link. The grade data includes color mixer and professional curves, parameterized in lightness/mid /gamma/shoulder shape. These descriptions are declared once in shared/mcpTools.ts, described in src/mcp/tools.ts; worker/mcp.ts is the protocol as a pure function.

Security. There is no API encryption and there is no OAuthToken — the code in your URL IS an identifier, so treat the URL as pa­къзде like a don't post it somewhere public publicly. It works via Fresh New link to revoke. Also, browser link is active while the Lutra window is open. Lutra itself has no API key and does not accept models: smart calls run your own paid subscription, so it goes do not charge estimates and you do not need an account. A special **localhost link is not available from Claude app (it connects to Anremote’s server); Claude Code by Code runs via their token, for each of the two repositories.

Develop

npm install
npm run dev        # http://localhost:5173
npm run build      # type-check + production build → dist/
npm test           # vitest

Possibilities: One runtime department (libraw-wasm, dynamically imported and handled was split to a RAW; devyn depends only Vite + TypeScript).

Move.

Web-server AS user via receive static files with Server Worker — No server code, just static directory:

npm run deploy       # build + wrangler deploy
npm run deploy:dry   # validate without deploying

Custom domain route is in wrangler.jsonc, so on relase the DNS stays and is completely static with relative paths, so it is hosted on Netlify. GitHub pages and any simple hosting or the server using file server — no grading, exporting, and all no backend. The only server-side piece is the MCP pair in worker's (worker/) of the project, and the "WebCP does not need them."

Documentation

  • docs/exports.md — how to use the layout in each engine and what is not guaranteed by the PQ shaper.

  • docs/architecture.md — the architecture with a single grade() method, the mirror model on the CPU, the method of .solvers and the ideas section.

  • docs/professional-parity.md — a missing feature table with competition, why browser-safe interface, plus approval criteria.

  • docs/cloud-architecture.md — the privacy-prioritized server restriction and the total budget of 100 per year.

License

Proprietary — all rights reserved. Terms: `LICENSE.

Ваше input are available under the site https://lutra.gamebench.dev; the source code is private linked and cannot be reused. It may also be used*: release the code under an open-source license later easy, but to recall it — impossible, why the code is closed until conscious toward the dark truth.

Built with processing package also includes LibRaw (LGPL-2.1 or CDDL - 1.0 via distributed via libraw-wasm), and the packaged Photo sets from Licenses. [[lWait](to use.]]

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Create and manage cinematic AI video renders through the Future Video Studio Agent API.

  • Manage AI filmmaking projects, scenes, assets, and generations in Martini.

  • Build and run visual creative-production workflows from your AI agent.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/withaspoon/nyans'

If you have feedback or need assistance with the MCP directory API, please join our Discord server