# Batch Photo Quality Culler

Review sharpness, exposure and near-duplicates. Keep your best photos, not just the highest score.

> Canonical page: https://elysiatools.com/en/tools/batch-photo-quality-culler

- **Category:** Media

- **Keywords:** Batch Photo Quality Culler, Edge detail, Similar groups

## Overview

## Batch Photo Quality Culler

Review sharpness, exposure and near-duplicates. Keep your best photos, not just the highest score.

LOCAL ONLY · No photo uploads · No AI

JPEG / PNG / WebP · 100 photos · 20 MB each · 100 MB total · 40 MP decoded limit

Heuristic signals, not aesthetic judgments. Bokeh, noise and high/low-key scenes can mislead scores. No face or closed-eye detection. Near-duplicate groups are conservative, not semantic scene groups.

Edge detail is a relative multi-scale edge signal, not focus probability. Clipped pixels: luminance ≤8 / ≥247. Originals are unchanged. Metrics use a 256 px analysis thumbnail, not full-resolution exposure metering.

## Inputs

- **Load demo photos** (checkbox)

## When to use

- When you need to prune bursts of continuous-shot photos to isolate the sharpest frame from near-duplicates.
- When sorting through a large batch of images to identify under-exposed or blown-out frames with extreme pixel clipping.
- When culling client galleries or private shoots that cannot be uploaded to third-party cloud services or AI processors.

## How it works

- Load up to 100 local JPEG, PNG, or WebP files into your browser or toggle the demo mode to generate synthetic test photos.
- The browser decodes each image locally and generates a 256 px analysis thumbnail to compute relative multi-scale edge details and identify clipped shadow or highlight pixels.
- Conservative similarity algorithms group near-duplicate captures side-by-side so you can compare technical signals and pick which files to keep while keeping original files completely unchanged.

## Use cases

- Comparing action sequence bursts to discard soft or blurry shots and retain only crisp frames.
- Spotting accidental overexposed or underexposed bracketed shots during initial photo sorting.
- Organizing and trimming near-identical product catalog photos before downstream post-processing.

## Frequently asked questions

### Are my photos uploaded to a server or used to train AI models?

No. All decoding, analysis, and thumbnail generation happen strictly inside your browser using local heuristic algorithms, with zero network uploads.

### What file formats and batch limits are supported?

The tool supports JPEG, PNG, and WebP formats, accommodating up to 100 images, 20 MB per file, a 100 MB total batch limit, and a maximum of 40 decoded megapixels per image.

### Does the tool detect human faces or closed eyes?

No. The analyzer uses non-AI heuristics focused on edge detail and luminance levels; it does not perform facial recognition, eye tracking, or semantic scene clustering.

### How are blown highlights and crushed shadows calculated?

Clipped pixels are flagged on the 256 px analysis thumbnail when luminance levels register at or below 8 for shadows or at or above 247 for highlights.

### Will using this tool modify or compress my original image files?

No. Original file bytes remain completely unchanged throughout the culling session.

## Related tools

- [Thyroid Index (TSH/FT4/FT3 Interpretation)](https://elysiatools.com/en/tools/thyroid-index): Interpret the thyroid axis by pattern-reading TSH with FT4 and (optionally) FT3. Adult reference ranges: TSH 0.4–4.0 mIU/L, FT4 0.8–1.8 ng/dL (≈10–23 pmol/L), FT3 2.3–4.2 pg/mL (≈3.5–6.5 pmol/L). High TSH + low FT4 → overt primary hypothyroidism; high TSH + normal FT4 → subclinical hypothyroidism; low TSH + high FT4/FT3 → overt primary hyperthyroidism; low TSH + normal FT4 → subclinical hyperthyroidism, exogenous hormone, or resolving thyroiditis (check FT3 for T3 toxicosis); low/normal TSH + low FT4 → central hypothyroidism; high TSH + high FT4 → TSH-secreting adenoma or thyroid hormone resistance. Low FT3 with normal TSH/FT4 indicates low-T3 (non-thyroidal illness) syndrome. Units selectable for TSH, FT4, FT3. Derived from ATA 2014/2016, NACB 2002, Garber 2012, and MDCalc. Not medical advice.
- [Lossy Codec Preview Compare](https://elysiatools.com/en/tools/audio-lossy-preview-compare): Hear and measure what streaming does to your master: encode to MP3, AAC or Opus at real streaming bitrates, decode back, and compare loudness shift, true-peak overshoot and headroom against the original — the Apple Digital Masters round-trip audition as a report plus downloadable preview files.
- [Hash Algorithm Comparator](https://elysiatools.com/en/tools/hash-algorithm-comparator): Hash the same input with MD5, SHA-1, SHA-256, SHA-512, BLAKE2b, and BLAKE3 at the same time and compare them side by side: output length, hex/Base64 digest, security status (broken / modern), and a relative speed benchmark. Great for teaching, choosing a hashing algorithm, or sanity-checking checksums.
- [OAuth 2.0 / OIDC Authorization Code with PKCE Flow Visualizer](https://elysiatools.com/en/tools/oauth-oidc-authorization-code-pkce-flow-visualizer): Simulate the Authorization Code flow with PKCE end to end: verifier/challenge generation, authorization URL, token exchange, ID Token validation checklist and an interception-attack demo.
- [PKCE Code Verifier & Challenge Generator](https://elysiatools.com/en/tools/pkce-code-verifier-generator): Generate, validate and verify OAuth2 / OIDC PKCE (RFC 7636) code_verifier and S256 code_challenge pairs. Three modes: (1) generate a fresh verifier + challenge from cryptographically secure random bytes at 256/384/512/768-bit entropy, (2) audit a verifier you already have against the RFC — length (43–128), charset \[A-Za-z0-9-._~\] and ≥256-bit entropy, and (3) verify a verifier/challenge pair by recomputing BASE64URL(SHA256(verifier)). Optionally build the full authorization-request URL and token-exchange body. Complements the generic nonce-generator (which only emits a verifier+challenge pair) with RFC-compliance auditing and pair verification.
- [Checksum Comparator](https://elysiatools.com/en/tools/checksum-comparator): Compare two checksums/hash values to check if they match
- [BIP39 Mnemonic Phrase Generator](https://elysiatools.com/en/tools/mnemonic-bip39-generator): Generate or validate 12 to 24 word BIP39 mnemonic phrases with entropy and PBKDF2-HMAC-SHA512 seed output
- [RSA Encrypt / Decrypt](https://elysiatools.com/en/tools/rsa-encrypt-decrypt): Encrypt text with an RSA public key or decrypt ciphertext with the matching private key, using OAEP padding (SHA-1 or SHA-256). Handles long messages by chunking. Keys and data stay local. PKCS#1 v1.5 is intentionally not offered (Node disables it for decryption due to Bleichenbacher attacks).

## Samples

- [Camera RAW Photo File Samples](https://elysiatools.com/en/samples/camera-raw-samples): Downloadable sample files covering Sony ARW/SRF/SR2, Canon CR2/CR3/CRW, Adobe DNG, Nikon NEF/NRW, Fuji RAF, Olympus ORF, Panasonic RW2, Leica RAW/DNG, and a generic RAW binary file for testing camera RAW upload workflows.
- [Web Image Processing Python Samples](https://elysiatools.com/en/samples/web-image-processing-python): Web Python image processing examples using PIL/Pillow including reading, saving, resizing, and format conversion
- [Android Image Processing Java Samples](https://elysiatools.com/en/samples/android-image-processing-java): Android Java image processing examples including reading/saving images, scaling, and format conversion
- [Android Image Processing Kotlin Samples](https://elysiatools.com/en/samples/android-image-processing-kotlin): Android Kotlin image processing examples including reading/saving images, scaling, and format conversion

## Related content

- [Batch Photo Culling Review and Editing Shortlist Handoff](https://elysiatools.com/en/hubs/batch-photo-culling-review-and-editing-shortlist-handoff): Review technical photo signals and near-duplicate groups, override automatic picks, reconcile the CSV and verify an editing shortlist ZIP without deleting originals or confusing scores with artistic quality.
