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.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.0
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.0.tar.gz | 6.7 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pixcull-3.94.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.6 MB
Release files / pixcull-3.94.0.tar.gz
| Download URL | pixcull-3.94.0.tar.gz |
|---|---|
| Size | 6.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
20454a3c5177834591b6045534f5472e2b7200518a5112ac340cc9128b75c974
|
|
BLAKE2b-256 checksum How to use checksums |
822ef2beea76eb69ecdad1032979269ac0940d0afae10339ff92661548ed94b6
|
| 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.0-py3-none-any.whl
| Download URL | pixcull-3.94.0-py3-none-any.whl |
|---|---|
| Size | 6.9 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b0ba508a09309c23245ce672f22f6222aec2f6664d70ed574e9ea9abb442fee6
|
|
BLAKE2b-256 checksum How to use checksums |
482eb1b2c080e81f3763d4556e89ba0af4707e599efa5aec88729182950a2e36
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|