Skip to content

Run the studio

The studio is krites' primary surface — a local, single-user web UI over a shoot.

First run

On a fresh install, run krites init once first (it writes your config). The packaged macOS launcher chains krites init && krites studio for you. See Getting started → First run.

Launch it

krites studio

krites starts a localhost-bound web server and prints the URL to open. By default it picks a free port; pin one with --port:

krites studio --port 8733

There is no --shoot flag

Unlike the CLI commands, the studio is not scoped to one shoot — it opens onto a library of shoots and you pick one in the UI. krites studio --shoot DIR fails with unknown flag: --shoot. Add a folder with Browse… on the Shoots page, as below.

On macOS, double-clicking Krites (or running krites launch) does the same thing and opens your browser for you — reusing a studio that is already running rather than starting a second one.

Add a shoot from the studio

On the Shoots landing you can register a new shoot without a path by hand: hit Browse… to pick its folder of originals. On a desktop (macOS, or Linux with a display) that's your native OS folder chooser; over a headless/remote session it's an in-app folder browser that walks the server's directories. You can still type or paste an absolute path into the field.

What you can do there

  • Work the cull grid — confirm, override or reject verdicts across thousands of frames (it stays fast; previews are virtualised). It lays out as justified rows by default (uncropped frames, shot order kept); the Rows / Grid toggle switches to a dense uniform lattice and remembers your choice.
  • Inspect a frame in the loupe, straighten/crop/develop it, and remove objects. Hit Before / after to wipe a divider between the untouched original and your developed edits. The Faces strip shows a zoomed crop of every detected face with its eye state, ringing the ones that read as blinking — so you can see why a frame was flagged, not just read it. Hit Focus peaking (or press O) to glow the in-focus edges in green over the frame, so you can see at a glance which plane the cull judged sharp. The Why … panel is a reasons heatmap: each reason is a chip, and a face-bound one (a blink) drops a pin on the offending face — hover a chip to light its pin, or a pin to light its chip. Whole-frame reasons (soft focus, exposure) stay chips.
  • Hit lights-out (the Lights button, or press L) to dim the chrome and let the frames fill your attention; press L again to bring the lights back up.
  • Work in bulk — shift/⌘-click to select a range, then keep/maybe/reject or star-rate the whole selection at once. In the loupe, Select burst grabs every frame in a cluster so you can reject the also-rans in one go. A pace HUD in the footer tracks how many frames you've reviewed and your frames-per-hour.
  • Ask which one to pick — with several frames selected, Review sends them to the AI critic as a single call, so it weighs them against each other and returns a best-of-set read ("the second is the pick, and here's why") alongside each frame's own critique. It runs in the background — tracked in the bell, survives a reload, cancellable — and every frame keeps its own saved review. Optional and off until you configure a provider; the images leave your machine, so krites discloses that the first time and confirms again above ten frames. Reviewing one frame at a time stays in the loupe.
  • Survey the bursts — a full-screen, one-cluster-at-a-time sweep where you crown each burst's keeper (click it or press its number) and its siblings drop to maybe. Skip moves on without deciding; Esc ends the survey.
  • Review your output — the Exported toggle flips the grid to the rendered files in export/ (click one to inspect it full-screen), so you can check the final deliverable without leaving the studio; toggle off to return to the cull.

Everything is non-destructive — edits are records, rendered only on export.

It keeps running after you close the tab

The studio is a server, not a page. Closing the browser leaves it running, and so does closing the terminal you launched it from on macOS. Stop it with Shutdown krites in the studio settings.

The same applies to long jobs: closing the tab does not cancel a cull, an export or a batch review. They keep going, and reopening the studio reattaches to them. To actually stop one, cancel it from the UI.

Restarting the studio does lose a running job — the job registry is in memory. The studio will tell you a cull was interrupted rather than silently forgetting, but it cannot resume one; re-run it.

It cannot be shared over a network

The studio binds loopback only and refuses to start on anything else — not 0.0.0.0, not a LAN address, not a hostname. It is single-user, with one session credential per launch and no accounts. Running krites on a server so a team can cull together is not a supported configuration, and there is no setting that makes it one.

The CLI and the studio are interchangeable

They read and write the same shoot files, and the studio adds no logic of its own. Cull from the CLI and review in the studio, or the reverse, mid-shoot, without exporting or importing anything.

See the studio command reference for the full flag set, and the studio API reference for what the UI is doing underneath.