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

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.
  • 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.92.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.92.0
File Size Uploaded
pixcull-3.92.0.tar.gz 1.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for pixcull 3.92.0
File Interpreter ABI Platform
pixcull-3.92.0-py3-none-any.whl Python 3 none any Details

Total release size: 3.7 MB

Release files / pixcull-3.92.0.tar.gz

Download URL pixcull-3.92.0.tar.gz
Size 1.8 MB
Tags Source
SHA-256 checksum
How to use checksums
2cd93750f9f12bafebd242733645ccb083779623b554897ff0e239114d05e2db
BLAKE2b-256 checksum
How to use checksums
cd918acfcd138e4118610225371df934be6bcfc5d2eb1796b3ef1176407cd268
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.92.0-py3-none-any.whl

Download URL pixcull-3.92.0-py3-none-any.whl
Size 1.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
dd883628f22ca37052a2aacc869dbbe0deb54fb0c19ffb95e2a025b477ed2c9b
BLAKE2b-256 checksum
How to use checksums
5a8f9978068da9d2e3aa41dc4f84e632db6c974b864062e32028be279b660dde
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.92.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