Skip to main content

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 可全程不出网。

PixCull results grid

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).

PixCull lightbox

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 run never leaves the machine. --vlm-mode off forces 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 doctor tells you which of those you are in, and distinguishes 'no balance' from 'bad key' — they look identical otherwise.

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)

Source distribution for pixcull 3.94.0
File Size Uploaded
pixcull-3.94.0.tar.gz 6.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for pixcull 3.94.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

3.94.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page