Cull a shoot, end to end¶
A learning-oriented walkthrough: take a full day's wedding shoot from a folder of RAWs to an album-ready, exported keeper set — and understand what krites is doing at each step. Allow 20–30 minutes plus culling time.
You'll need krites installed (see Getting started) and a folder of frames to work on. Nothing you do here touches your originals.
If you haven't already, initialise your config once — it seeds the
wedding-default cull profile the rest of this walkthrough leans on:
It's idempotent, so it's safe to run again if you're not sure.
1. Register the shoot¶
krites works on a shoot — your originals plus a .krites/ sidecar it creates
alongside them:
Ingest scans the folder, records each frame in the shoot manifest, and sets up the
sidecar. Your files are only read. From here on, pass --shoot
~/Pictures/smith-wedding (or run the commands from inside that directory).
2. Judge every frame¶
Cull analyses each frame and assigns a keep / maybe / reject verdict with reasons: sharpness and motion blur, exposure, and — with the face/eye provider enabled — closed eyes and blinks. It also groups near-duplicate bursts so you're not choosing between ten near-identical frames blind.
The verdicts are records in the sidecar, not changes to your photos. The judgement
comes from a cull profile (wedding-default out of the box) — a set of
thresholds you can tune to your taste.
Inspect the burst clusters it found:
3. Review in the studio¶
The studio is where krites is meant to be driven:
The studio takes no --shoot flag — unlike the CLI commands it is not scoped to
one shoot. It opens onto a library of shoots and you choose one. If the shoot you
just ingested is not listed, add it with Browse… on the Shoots page.
This is a localhost-only web UI over the same shoot files. Work the cull grid: confirm the keepers, rescue anything the profile was too harsh on, and reject the rest. The grid stays responsive across thousands of frames.
Each frame sits on the warm cull canvas with its cues read at a glance: a colour-coded verdict stripe down its left edge (keep / maybe / reject), a rating chip when you've starred it, and a burst marker on frames that belong to a near-duplicate cluster. The frame you're inspecting carries a gold selection ring; a multi-select batch is tinted so it reads apart from the single current frame.
The grid defaults to justified rows — full, uncropped frames at a consistent scan height with your shot order preserved, the way Lightroom lays out a filmstrip. Use the Rows / Grid toggle at the right of the filter bar to switch to a dense, uniform (cropped-to-fill) lattice; your choice is remembered.
Prefer the CLI, or scripting a correction? Override a single frame's verdict directly:
4. Correct the keepers¶
On the keepers, krites proposes non-destructive edits — each a reversible record:
krites straighten IMG_2043.CR2 --shoot ~/Pictures/smith-wedding # level horizon
krites crop IMG_2043.CR2 --shoot ~/Pictures/smith-wedding # composition crop
krites develop IMG_2043.CR2 --shoot ~/Pictures/smith-wedding # apply a look
Need to erase a distraction — a stray guest, an exit sign? See Remove an object. Made a wrong call on a frame? Undo everything on it:
5. Export¶
Export is the only step that writes pixels. It renders the keepers with every
edit baked in — in order removals → straighten → crop → look — into the shoot's
export/ directory. Run it as many times as you like; given the same records it
produces the same output.
A frame with no edits and no resize is copied verbatim, original bytes and
metadata intact. A RAW frame always renders, as a JPEG from its embedded preview:
IMG_2043.CR2 exports as IMG_2043.CR2.jpg.
6. Hand the cull to Lightroom¶
Writing XMP sidecars is a separate command — export renders pixels, it does
not write sidecars:
That puts an .xmp beside each original carrying its verdict as a star rating and
colour label, plus the crop and straighten angle for frames you developed. Point
Lightroom at your originals and the cull is there.
The look does not travel, and neither do object removals — Camera-Raw XMP cannot
express either. If a keeper needs one of those in Lightroom, import the rendered
file from export/ instead of the original.
What you did¶
You took a shoot from import to an album-ready export without ever altering an
original: every verdict and edit was a reversible record, and only the final
export rendered pixels. From here:
- Make the judgement your own: Tune a cull profile.
- Hand off to Lightroom: Export for Lightroom.
- The reasoning behind the design: Explanation.