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.
On a Linux machine with no desktop (a server, a container), OpenCV also
needs two system libraries: sudo apt-get install libgl1 libglib2.0-0.
Python 3.11–3.13. 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.7, 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.94.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.94.1.tar.gz | 6.7 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pixcull-3.94.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.6 MB
Release files / pixcull-3.94.1.tar.gz
| Download URL | pixcull-3.94.1.tar.gz |
|---|---|
| Size | 6.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5df0a446c15bc828bdc77654885ff300b7b3b4edfee7749d5cfece2e45a7ca70
|
|
BLAKE2b-256 checksum How to use checksums |
b8ed59acb1aca7c518f62cf8b7ee57113a7cdd2bcaeeef6e51ff8de23cc715c8
|
| 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.94.1-py3-none-any.whl
| Download URL | pixcull-3.94.1-py3-none-any.whl |
|---|---|
| Size | 6.9 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
841d0fc98e4c43d35c55e5080f04c2e3f7a2ffa01adf12b025546bb03074012e
|
|
BLAKE2b-256 checksum How to use checksums |
ac01c945049380bb980c62373d315587a0cf903aada1e8ce760a4c9dcf392dcb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|