LabelCraft - Intelligent Image Annotation Tool
Version 3.1.0 — Project-first annotation for detection, pose, OBB & segmentation, based on labelImg
LabelCraft is a graphical image annotation tool with project management, multi-shape drawing, and YOLO-Pose support. It is a major evolution of labelImg — thanks to TzuTa Lin for the original work.
Highlights (v3.0)
- Shapes: rectangle, pose (bbox + keypoints), polygon, ellipse, circle
- Projects:
.lbcproject files (legacy.labelcraftstill opens), detect / pose tasks - Import / Export: LabelCraft JSON, YOLO Detect, YOLO Pose, PASCAL VOC, CreateML, COCO, CSV
- Workflow: pending queue, completed list, verify status, auto-save, default label
- UI: compact project info panel, cleaned menus & shortcuts, taskbar app icon
- i18n: English, 简体中文, 繁體中文, 日本語, Deutsch, Français (live switch)
Screenshot
Install
pip (recommended)
pip install -U labelcraft
labelcraft
From source
git clone https://github.com/syd168/LabelCraft.git
cd LabelCraft
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
pyside6-rcc -o libs/resources.py resources.qrc # if you change icons
python main.py
Or use ./start.sh (Linux/macOS) / start.bat (Windows).
Quick workflow
- File → New Project (
Ctrl+N) — name, location, labels, detect or pose - Add images / folders into the pending queue
- Draw with W (rect), P (pose), G (polygon), E (ellipse), C (circle)
- Ctrl+S save annotation · Ctrl+Alt+S save project
- Data → Export… (
Ctrl+Shift+E) when ready
Project files use {name}.lbc. Annotations live under {project_dir}/annotations/.
Keyboard shortcuts (common)
| Shortcut | Action |
|---|---|
Ctrl+N / Ctrl+O |
New / Open project |
Ctrl+Alt+E / Ctrl+Alt+S |
Edit / Save project |
Ctrl+S |
Save annotation |
Ctrl+I / Ctrl+Shift+E |
Import / Export |
W P G E C |
Rect / Pose / Poly / Ellipse / Circle |
Ctrl+E |
Edit label |
Delete / Ctrl+D / Ctrl+Z |
Delete / Duplicate / Undo |
Ctrl+V |
Copy previous image boxes |
V |
Verify current image |
A / D |
Prev / Next image |
Ctrl+F / Ctrl+Shift+F |
Fit window / Fit width |
See Help → Shortcuts in the app for the full list.
Project layout
LabelCraft/
├── main.py # Entry
├── labelcraft_ui.py # Main window
├── libs/ # Core (project, canvas, I/O, i18n, …)
├── resources/ # Icons & assets
├── requirements.txt
└── setup.py # PyPI packaging
Development notes
- Python 3.8+, dependency: PySide6 ≥ 6.5, lxml
- Locales:
libs/locales/*.json - After editing
resources.qrc, recompile:
pyside6-rcc -o libs/resources.py resources.qrc
Changelog
Latest highlights (3.1.0): Rotated rectangles (OBB), YOLO OBB / YOLO Seg / COCO Seg export, redesigned export dialog.
Full history: CHANGELOG.md.
License
MIT — see LICENSE.
Acknowledgments
- labelImg by TzuTa Lin
- Contributors and users of LabelCraft
Release files for LabelCraft 3.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| labelcraft-3.1.0.tar.gz | 1.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| labelcraft-3.1.0-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 2.9 MB
Release files / labelcraft-3.1.0.tar.gz
| Download URL | labelcraft-3.1.0.tar.gz |
|---|---|
| Size | 1.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
546209f8679774a405591be4ca2a82b24464c91d16ca8467a0777756c4dc3013
|
|
BLAKE2b-256 checksum How to use checksums |
2e8a7f46131d0bf6600a95a984185b8c0b60455b8b10f567d485e276900393ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.9
|
Release files / labelcraft-3.1.0-py2.py3-none-any.whl
| Download URL | labelcraft-3.1.0-py2.py3-none-any.whl |
|---|---|
| Size | 972.9 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
a271116544b9ca565846717db419172a6de9497cba9e43ef04142d80cff299e7
|
|
BLAKE2b-256 checksum How to use checksums |
7a28727c25013e63e21957934b59e39b9cf0bf23f2a659589c255c37ab2f5d1b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.9
|