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

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

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.93.1
File Size Uploaded
pixcull-3.93.1.tar.gz 6.7 MB Details

Built distribution (wheel)

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

Release history Release notifications | RSS feed

This release

3.93.1 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