Metadata-Version: 2.4
Name: oneopen-annotator
Version: 0.1.1
Summary: Open-source localhost data preparation and training framework with YOLO & SAM auto-annotation
Author: oneopensource
Maintainer: oneopensource
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/1-OpenSource/OneOpen-Annotator
Project-URL: Documentation, https://github.com/1-OpenSource/OneOpen-Annotator#readme
Project-URL: Repository, https://github.com/1-OpenSource/OneOpen-Annotator
Project-URL: Issues, https://github.com/1-OpenSource/OneOpen-Annotator/issues
Project-URL: Bug Tracker, https://github.com/1-OpenSource/OneOpen-Annotator/issues
Keywords: annotation,yolo,sam,computer-vision,dataset,training,labeling,localhost
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Image Processing
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: fastapi>=0.110.0
Requires-Dist: uvicorn[standard]>=0.27.0
Requires-Dist: sqlalchemy>=2.0.0
Requires-Dist: pydantic>=2.5.0
Requires-Dist: pydantic-settings>=2.1.0
Requires-Dist: python-multipart>=0.0.9
Requires-Dist: jinja2>=3.1.0
Requires-Dist: aiofiles>=23.2.0
Requires-Dist: pillow>=10.0.0
Requires-Dist: numpy>=1.24.0
Requires-Dist: opencv-python-headless>=4.8.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: httpx>=0.26.0
Provides-Extra: yolo
Requires-Dist: ultralytics>=8.3.0; extra == "yolo"
Provides-Extra: libreyolo
Requires-Dist: libreyolo>=1.2.0; extra == "libreyolo"
Provides-Extra: sam
Requires-Dist: torch>=2.0.0; extra == "sam"
Requires-Dist: torchvision>=0.15.0; extra == "sam"
Provides-Extra: all
Requires-Dist: oneopen-annotator[libreyolo,sam,yolo]; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest>=7.4.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
Requires-Dist: ruff>=0.2.0; extra == "dev"
Dynamic: license-file

<p align="center">
  <img src="https://raw.githubusercontent.com/1-OpenSource/OneOpen-Annotator/main/docs/logo.svg" alt="OneOpen Annotator" width="96" height="96">
</p>

<h1 align="center">OneOpen Annotator</h1>

<p align="center">
  <strong>Open-source, localhost-only data preparation &amp; training</strong><br>
  Annotate, generate versions, export, and train YOLO — all on your machine.
</p>

<p align="center">
  <a href="https://pypi.org/project/oneopen-annotator/"><img alt="PyPI" src="https://img.shields.io/pypi/v/oneopen-annotator.svg"></a>
  <a href="https://pypi.org/project/oneopen-annotator/"><img alt="Python" src="https://img.shields.io/pypi/pyversions/oneopen-annotator.svg"></a>
  <a href="LICENSE"><img alt="License" src="https://img.shields.io/badge/License-Apache_2.0-blue.svg"></a>
  <a href="https://github.com/1-OpenSource/OneOpen-Annotator"><img alt="Localhost" src="https://img.shields.io/badge/runs-localhost-14b8a6.svg"></a>
</p>

---

## Install

```bash
pip install oneopen-annotator
```

With extras:

```bash
# YOLO Label Assist + local training (Ultralytics)
pip install "oneopen-annotator[yolo]"

# LibreYOLO backend
pip install "oneopen-annotator[libreyolo]"

# SAM interactive segmentation
pip install "oneopen-annotator[sam]"

# Everything
pip install "oneopen-annotator[all]"
```

From source (editable):

```bash
git clone https://github.com/1-OpenSource/OneOpen-Annotator.git
cd OneOpen-Annotator
pip install -e ".[yolo]"
```

## Quick start

```bash
oneopen init          # create ~/.oneopen
oneopen serve         # http://127.0.0.1:8765
```

Or:

```bash
python -m oneopen_annotator serve
```

Open **http://127.0.0.1:8765** — no account, no cloud upload.

## What it does

| Step | Capability |
|------|------------|
| **Projects** | Detection, segmentation, classification — create or **import** folder/zip |
| **Upload** | Bulk images, stored under your chosen project location |
| **Annotate** | Boxes & polygons; classes required before labeling |
| **Label Assist** | YOLO auto-label (YOLOv8–v10, YOLO11, YOLO26, LibreYOLO, custom weights) |
| **SAM** | Interactive segmentation (optional `[sam]`) |
| **Generate** | Preprocess, augment, train/valid/test splits, dataset versions |
| **Train / Export** | Local YOLO training; export YOLO zip + COCO |

100% local: SQLite + files under `~/.oneopen` (or a path you pick per project).

## CLI

```text
oneopen serve                 Start the web UI (default :8765)
oneopen serve --port 9000     Custom port
oneopen init                  Initialize local data directory
oneopen version               Print version
```

Environment:

```bash
# optional — override data root
set ONEOPEN_DATA_DIR=D:\oneopen-data   # Windows
export ONEOPEN_DATA_DIR=/data/oneopen # Unix
```

## Data layout

| Path | Contents |
|------|----------|
| `~/.oneopen/oneopen.db` | SQLite database |
| `~/.oneopen/projects/<id>/` | Default project location (`images/`) |
| `~/.oneopen/exports/` | Exported datasets |
| `~/.oneopen/models/` | Weights & training runs |

## Optional: SAM

1. Install: `pip install "oneopen-annotator[sam]"` and [segment-anything](https://github.com/facebookresearch/segment-anything).
2. Place a checkpoint at `~/.oneopen/models/sam_vit_b_01ec64.pth` (or configure equivalently).

## Requirements

- Python **3.10+**
- A modern browser
- Optional GPU for faster YOLO/SAM/training

## License & credits

**Apache License 2.0** — free to use, modify, and redistribute, including commercially.

Redistributors must keep copyright notices and the [`NOTICE`](NOTICE) file, so **author credit stays with the project**.

```
Copyright 2026 oneopensource
```

See [`LICENSE`](LICENSE) and [`NOTICE`](NOTICE).

### Citation

If you use OneOpen Annotator in research or a product, please credit:

```bibtex
@software{oneopensource_oneopen_annotator_2026,
  author = {oneopensource},
  title  = {OneOpen Annotator},
  year   = {2026},
  url    = {https://github.com/1-OpenSource/OneOpen-Annotator},
  note   = {Open-source localhost CV annotation and training}
}
```

## Author

**oneopensource** — creator and maintainer of OneOpen Annotator.

Contributions welcome under the same Apache 2.0 license.
