PixCull
AI photo culling for working photographers.
Six calibrated scoring axes · burst folding · style-aware personalization ·
Lightroom / Capture One round-trip. Judged by MiniMax M3, with the local measurements handed to it as evidence — or fully on-device with --vlm-mode off.
AI 摄影分拣:6 轴评分 · 连拍折叠 · 个性化学习 · Lr/C1 双向 round-trip。
MiniMax M3 云端判图,本机实测指标作为证据一并送入;--vlm-mode off 可全程不出网。
Install
pip install pixcull
Faces, closed eyes and face blur are checked with MediaPipe, an optional
extra: pip install 'pixcull[face]'. Without it a run says so and the
other checks are unchanged.
Python 3.11–3.12. First run downloads the optional scoring models to
~/.pixcull/models/; the measurements they make run on-device and are
Apple-silicon accelerated. Whether the judge is local or cloud is a
separate question — see the last two bullets below.
Upgrading from 3.53.1? The dependency floor moved to numpy 2 and torch 2.5, and five other things behave differently. Read the upgrade notes first.
Quickstart
# score a folder of photos (JPG / RAW) — keep/maybe/cull + per-axis rubric
pixcull run /path/to/photos -o ./out
# write the decisions back as XMP sidecars for Lightroom / Capture One
# (sidecars land next to each original; -t collected gathers them instead)
pixcull export ./out
# score a video → temporal windows + reel candidates
pixcull video clip.mp4 -o ./out
# fold near-duplicates, build a contact sheet, learn your taste, …
pixcull --help
# open the review workspace in your browser (v2.31 — now packaged)
pixcull serve
The pip package ships the full scoring engine, the CLI and the
interactive review workspace: keyboard-first grid, ⌘K palette, per-axis
"why" explanations, n-way compare, maybe-resolution queue, XMP export.
pixcull serve stores runs under ~/.pixcull/runs by default
(--root to change, --host 0.0.0.0 to share on a trusted LAN).
Highlights
- Glass-box scoring — every keep/cull carries a per-axis breakdown (technical / subject / composition / light / moment / aesthetic) and a plain-language "why", not just a number.
- Learns your taste — corrections feed a personal profile that tilts the axis weights toward what you demonstrably value.
- Burst & near-dup folding — stacks collapse to the peak frame with a one-key compare.
- Video too — temporal scoring and reel-candidate detection with the
same glass-box treatment. With the optional audio model
(
pixcull models pull audio-tagger, 16 MB) it also marks laughter, applause and music on the timeline; without it, it says it did not listen. - 13 UI languages, dark/light studio-neutral themes, WCAG-conscious.
- You choose where it runs — with a MiniMax key configured, cloud judging is the default and your photos are uploaded to MiniMax (it asks once, and declining keeps you on-device); with no key, a bare
pixcull runnever leaves the machine.--vlm-mode offforces the on-device path outright. No telemetry either way. - Cloud judging needs a funded MiniMax account. It is their API and their bill, paid with your own key. Without balance the API returns 402 and PixCull falls back to the on-device rule stack, so nothing breaks; it just stops being the thing the first bullet describes.
pixcull m3 doctortells you which of those you are in, and distinguishes 'no balance' from 'bad key' — they look identical otherwise.
Links
MIT © Chris Chen
Metadata
Release files for pixcull 3.93.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pixcull-3.93.1.tar.gz | 6.7 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pixcull-3.93.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.6 MB
Release files / pixcull-3.93.1.tar.gz
| Download URL | pixcull-3.93.1.tar.gz |
|---|---|
| Size | 6.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ae92723777e22c7c59e4b5931c4dce6eed69830b4f8d61903de2e0dcf8218c6b
|
|
BLAKE2b-256 checksum How to use checksums |
a8948d7acfd3dd8a7672a3d34d970168fb062e469e5d0cc238fb88f87cf0d6e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / pixcull-3.93.1-py3-none-any.whl
| Download URL | pixcull-3.93.1-py3-none-any.whl |
|---|---|
| Size | 6.9 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
36ed2e3bc1f968ab994d669d902b4ef322b0e3fe33709237c90e689ff139e504
|
|
BLAKE2b-256 checksum How to use checksums |
a516024cd3a74316acf9753324a45ff5a4c0c187eba0268e2fb98380aab081c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|