Metadata-Version: 2.4
Name: pixcull
Version: 2.44.0
Summary: Local-first AI photo culling for professional photographers — 6-axis rubric, XMP/IPTC export, Lightroom & Capture One ready.
Project-URL: Homepage, https://github.com/ChrisChen667788/pixcull
Project-URL: Repository, https://github.com/ChrisChen667788/pixcull
Project-URL: Issues, https://github.com/ChrisChen667788/pixcull/issues
Project-URL: Documentation, https://github.com/ChrisChen667788/pixcull#readme
Project-URL: ModelScope, https://www.modelscope.cn/profile/haozi667788
Author-email: Chris Chen <hello@pixcull.dev>
License-Expression: MIT
License-File: LICENSE
Keywords: ai,capture-one,computer-vision,image-classification,image-quality-assessment,iptc,lightroom,local-first,on-device-ai,photo-culling,photography,raw-photography,rubric-scoring,wedding-photography,xmp
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Image Processing
Requires-Python: <3.13,>=3.11
Requires-Dist: imagededup>=0.3.2
Requires-Dist: insightface>=0.7
Requires-Dist: jinja2>=3.1
Requires-Dist: numpy<2,>=1.26
Requires-Dist: onnxruntime>=1.17
Requires-Dist: opencv-python>=4.9
Requires-Dist: pandas>=2.2
Requires-Dist: pillow>=10.2
Requires-Dist: pydantic>=2.7
Requires-Dist: pyiqa>=0.1.11
Requires-Dist: pyyaml>=6.0
Requires-Dist: rawpy>=0.19
Requires-Dist: rembg>=2.0.57
Requires-Dist: rich>=13.7
Requires-Dist: safetensors>=0.4
Requires-Dist: sqlmodel>=0.0.16
Requires-Dist: structlog>=24.1
Requires-Dist: torch<3,>=2.2
Requires-Dist: torchvision<1,>=0.17
Requires-Dist: tqdm>=4.66
Requires-Dist: transformers<6,>=4.40
Requires-Dist: typer>=0.12
Provides-Extra: asr
Requires-Dist: funasr>=1.1; extra == 'asr'
Requires-Dist: torchaudio>=2.0; extra == 'asr'
Provides-Extra: asr-mlx
Requires-Dist: mlx-whisper>=0.4; extra == 'asr-mlx'
Provides-Extra: asr-whisper
Requires-Dist: faster-whisper>=1.0; extra == 'asr-whisper'
Provides-Extra: bird
Requires-Dist: segment-anything>=1.0; extra == 'bird'
Requires-Dist: ultralytics>=8.2; extra == 'bird'
Provides-Extra: dev
Requires-Dist: build>=1.0; extra == 'dev'
Requires-Dist: hatchling>=1.20; extra == 'dev'
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Requires-Dist: types-pillow; extra == 'dev'
Requires-Dist: types-pyyaml; extra == 'dev'
Provides-Extra: face
Requires-Dist: mediapipe>=0.10.14; extra == 'face'
Provides-Extra: shots
Requires-Dist: scenedetect>=0.6; extra == 'shots'
Provides-Extra: sync
Requires-Dist: zeroconf>=0.131; extra == 'sync'
Description-Content-Type: text/markdown

# PixCull

**Local-first AI photo culling for working photographers.**
Six calibrated scoring axes · burst folding · style-aware personalization ·
Lightroom / Capture One round-trip. **No photo ever leaves your disk.**

本地优先的 AI 摄影分拣:6 轴评分 · 连拍折叠 · 个性化学习 · Lr/C1 双向 round-trip,
原图永远不离开你的硬盘。

![PixCull results grid](https://raw.githubusercontent.com/ChrisChen667788/pixcull/main/docs/screenshots/01-results-grid.png)

## Install

```bash
pip install pixcull
```

Python 3.11–3.12. First run downloads the optional scoring models to
`~/.pixcull/models/` (everything runs on-device; Apple-silicon accelerated).

## Quickstart

```bash
# 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
pixcull export ./out --xmp

# 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
```

```bash
# 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](https://raw.githubusercontent.com/ChrisChen667788/pixcull/main/docs/screenshots/03-lightbox.png)

## 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, audio events (laughter / applause /
  music), reel-candidate detection with the same glass-box treatment.
- **13 UI languages**, dark/light studio-neutral themes, WCAG-conscious.
- **Local-first, always** — no uploads, no cloud, no telemetry.

## Links

- [GitHub + full README](https://github.com/ChrisChen667788/pixcull)
- [Releases](https://github.com/ChrisChen667788/pixcull/releases)
- [ModelScope mirror](https://www.modelscope.cn/models/haozi667788/pixcull)

MIT © Chris Chen
