Photo Cull
Cull a whole shoot in your browser with keyboard ratings, blur detection and burst grouping. Free, fast, and your files never leave your device.
Reads JPG, PNG and WebP directly. RAW files are shown using the preview the camera embedded in the file. Nothing is uploaded and nothing is installed.
How to cull photos in your browser
- Click Open folder and choose the folder your shoot is in. The tool reads the folder and one level of subfolders, builds thumbnails, and never sends a single byte anywhere.
- Work through the grid or open the large loupe view. Use the arrow keys to move, 1 to 5 to set a star rating, P to pick, X to reject and U to clear.
- Watch the badges. Frames with a low blur score get a soft? flag, and heavy shadow or highlight clipping gets a dark? or blown? flag. Drag the blur threshold slider until the flags match your own judgement.
- Expand a burst stack to compare frames shot within a couple of seconds of each other, and use Pick best focus to see which frame scored sharpest before you confirm it.
- Finish with Copy picks to folder to write your keepers into a new picks subfolder, or export a CSV report if your browser cannot write files.
Why use ZillaKit's Photo Cull?
Coming home with two thousand frames is normal now, and the first pass is the part nobody enjoys. Most photo culling software wants an install, a licence key, or an upload to somebody else's cloud before you can even see a thumbnail. Photo Cull is the opposite: it is free, it runs entirely inside the browser tab you already have open, and it reads your shoot directly off your own drive using the browser's own folder access. Your photos are never uploaded, never copied to a server, and never seen by anyone but you, which matters when the shoot is a wedding, a client brief, a school event, or anything else you are contractually not allowed to hand to a third party.
The workflow is built for speed. Thumbnails decode in a small background queue and the grid is virtualised, so scrolling through thousands of images stays smooth instead of grinding to a halt. Ratings are keyboard first, exactly like the desktop tools photographers already have muscle memory for. Blur detection scores every frame using the variance of the Laplacian on a grayscale downscale, which is the same technique used to sort sharp frames from soft ones in computer vision, and the threshold is a slider so you can tune it to your lens, your subject and your standards rather than accepting somebody else's number. Exposure analysis counts pixels sitting at pure black and pure white so blocked shadows and blown highlights get flagged before you waste time on them.
Burst grouping reads the EXIF capture time of every frame and stacks anything shot within one to five seconds into a single tile, so a forty frame sequence of the same jump takes up one slot in the grid instead of forty. Expand the stack, compare, and let the helper suggest the sharpest frame, which you then confirm yourself. Nothing is ever rated, picked or rejected automatically. When you are done, the picks are copied into a new subfolder next to the originals, so you can hand that folder straight to Lightroom, Capture One, darktable or whatever you actually edit in. Originals are never deleted by this tool, under any circumstance.
FAQ
Is anything uploaded when I open a folder?
No. Granting folder access lets the page read files locally through the browser's File System Access API, in the same way a text editor reads a document you opened. The photos are decoded into thumbnails inside the tab and discarded when you close it. There is no server component, no analytics on your file names, and no network request carrying image data. You can confirm this by opening your browser's network panel while you cull, or by disconnecting from the internet after the page has loaded and carrying on as normal.
Which browsers support opening a folder?
Folder access and writing the picks and rejects subfolders need the File System Access API, which is available in desktop Chrome, Edge, Opera and other Chromium based browsers. Firefox and Safari do not support it, and mobile browsers generally do not either. On those browsers the page shows a note and offers a file picker fallback instead, so you can still rate, analyse and group photos, then export a CSV report and a picks list to act on elsewhere.
How well does RAW support work?
RAW files are not decoded from scratch, because full RAW demosaicing in a browser tab would be slow and would need a different decoder for every camera. Instead the tool asks the exifr library for the JPEG preview that the camera writes into the file, and uses that for the thumbnail, the loupe and the analysis. This works for TIFF based RAW formats such as CR2, NEF, ARW, DNG, ORF, RW2 and often RAF. Canon's newer CR3 format is not supported by exifr, so CR3 files appear with a clearly marked CR3 preview unavailable badge and can still be rated, sorted and copied by filename. Embedded previews are often small, so RAW frames are good for judging framing, expression and obvious motion blur, but they are not a substitute for checking critical focus at full resolution in your editor. One thing worth knowing: a blur score depends on the pixel dimensions of the image it was measured on, so scores are only comparable between frames of a similar size. Compare RAW frames against other RAW frames, not against full size JPEGs.
How does burst grouping decide what belongs together?
Every frame's EXIF DateTimeOriginal is read, or the file modification time is used when no EXIF timestamp exists. Frames are sorted by time and any consecutive run where each gap is smaller than the threshold becomes one group. The threshold defaults to two seconds and is adjustable from one to five seconds, so you can tighten it for fast action or loosen it for slower sequences. Groups of a single frame are not shown as stacks. The Pick best focus helper simply proposes the member with the highest blur score and waits for you to confirm it, so nothing is ever picked behind your back.
Can this delete my rejected photos?
No, and it never will. Copying picks writes new copies into a picks subfolder and leaves every original exactly where it is. Moving rejects uses the browser's native file move operation to relocate the file into a rejects subfolder, which changes where the file lives without destroying it, and it only runs after you have granted write permission and confirmed a warning dialog. If your browser does not support native moves, the tool copies the rejects instead and tells you plainly that the originals were left in place. There is no delete path anywhere in this tool.
Are my ratings saved for next time?
No. Ratings, picks and rejects live in memory for the current session only and are gone when you close or reload the tab. Browsers do not give a page a reliable, permanent identity for a folder on your drive, so promising that your ratings would reattach to the right shoot next week would be a promise this tool could not keep. Finish a shoot in one sitting, or export the CSV report before you close the tab.