Metadata-Version: 2.4
Name: peepfilt
Version: 0.1.3
Summary: Filter images without people using YOLOv8 (ultralytics).
Author-email: Krishnakanth Allika <path-bunt-frays@duck.com>
License-Expression: CC-BY-NC-SA-4.0
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: fastapi[all]>=0.127.0
Requires-Dist: opencv-python>=4.12.0.88
Requires-Dist: tqdm>=4.67.1
Requires-Dist: ultralytics>=8.3.241
Provides-Extra: gpu
Requires-Dist: torch==2.5.1+cu121; extra == "gpu"
Requires-Dist: torchvision==0.20.1+cu121; extra == "gpu"
Requires-Dist: torchaudio==2.5.1+cu121; extra == "gpu"
Provides-Extra: cpu
Requires-Dist: torch==2.9.1; extra == "cpu"
Requires-Dist: torchvision==0.24.1; extra == "cpu"
Requires-Dist: torchaudio==2.9.1; extra == "cpu"

# peepfilt

Filter images without people using YOLOv8 (Ultralytics). Supports CLI, FastAPI, and a minimal frontend. Auto-selects CUDA if available, otherwise CPU.

## Install

**For CPU only:**
```bash
pip install peepfilt[cpu]
```

**For GPU (CUDA 12.1):**
```bash
pip install peepfilt[gpu] --extra-index-url https://download.pytorch.org/whl/cu121
```

## CLI

```bash
peepfilt images/ \
  --no-people-dir images/no_people \
  --conf 0.25 \
  --batch-size 16
```

## Web UI

Start the API server with the web interface:

```bash
peepfilt-ui
```

Open `http://localhost:8090` in your browser to access the UI. Endpoints:

- GET `/health` – health check
- POST `/scan-dir` – scan a directory for images without people

## Notes
 
- Model: `yolov8n.pt` (Ultralytics)
- Person class only
- Image size: 640
- Defaults: conf 0.25, batch size 16
