Documentation
SwiftLabel is a professional desktop annotation tool for building computer vision datasets. It supports object detection, segmentation, pose estimation, face detection and image classification — with AI-assisted labeling built in.
Installation
SwiftLabel is a native desktop application built with C++ and Qt, available for Windows and Linux. No runtime dependencies are required — the installer bundles everything.
Windows
- Download
SwiftLabel-1.2.0-Full-Setup.exefrom the downloads page. - Run the installer and follow the setup wizard.
- Launch SwiftLabel from the Start Menu or desktop shortcut.
Linux
- Download
SwiftLabel-1.2.0-x86_64.AppImagefrom the downloads page. - Make it executable:
chmod +x SwiftLabel-1.2.0-x86_64.AppImage - Run it:
./SwiftLabel-1.2.0-x86_64.AppImage
Your First Project
A SwiftLabel project is a single .swiftlabel file that stores your annotation data, class definitions, and settings. Images are referenced by path — they are not embedded unless you export a SwiftPackage.
- Go to File → New Project (or press CtrlN).
- Choose a project type from the wizard.
- Save your project with File → Save Project (CtrlS) before adding images.
- Import images via File → Import Images.
- Click + Add in the Label Classes panel to create your first class.
- Select a tool and start annotating.
Interface Overview
| Area | Description |
|---|---|
| Title Bar | Menu bar with File, Edit, and Help menus. |
| Tool Bar | Quick access to New, Open, Save, Import, Export, Undo/Redo and navigation controls. |
| Top Bar | Project type badge, AI tool buttons, and theme toggle. |
| Side Tool Bar | Annotation tool selector. Only tools valid for the current project type are enabled. |
| Canvas | Main drawing area. Shows the current image and all annotations. Stats overlay in the top-right corner. |
| Canvas Top Bar | Filename, image progress, Labels / Stats toggles, zoom controls. |
| File List | Left panel listing all images. Green = labeled, grey = unlabeled. |
| Right Panel | Label Classes, Annotations list, Comments, Dataset Statistics. |
| Film Strip | Horizontal thumbnail strip at the bottom for quick image navigation. |
Project Types
When you create a new project you must select a project type. The type controls which annotation tools are available and which export formats are shown.
Object Detection
Draw axis-aligned bounding boxes around objects. Each box is assigned a class label.
Available tools: Select, Bounding Box, AI Auto-Label
Recommended exports: YOLOv8, COCO JSON, Pascal VOC, CreateML
[x, y, width, height] where all values are in the range 0.0–1.0 relative to the image dimensions.Semantic Segmentation
Draw polygon masks where every region gets a class label. Ideal for scene understanding tasks where you need pixel-level classification.
Available tools: Select, Polygon, SAM Click-to-Segment
Recommended exports: YOLOv8 Seg, COCO JSON, LabelMe, CVAT XML
Instance Segmentation
Draw individual polygon masks per object instance with class labels and per-instance IDs.
Available tools: Select, Polygon, AI Auto-Label (segmentation model), SAM Click-to-Segment
Recommended exports: YOLOv8 Seg, COCO JSON, LabelMe, CVAT XML
Pose Estimation
Annotate body or hand skeletons using ordered keypoint sets. Supports three built-in schemas and fully custom schemas.
Available tools: Select, Keypoint, AI Pose (Body / Hand)
Built-in schemas:
- COCO 17 — Full body skeleton (nose, eyes, ears, shoulders, elbows, wrists, hips, knees, ankles) with left=blue / right=red coloring
- Hand 21 — MediaPipe hand skeleton (wrist + thumb, index, middle, ring, pinky chains) with per-finger colors
- Custom — Define any number of keypoints and skeleton edges
Exports: Pose projects export to YOLO Pose and COCO JSON (keypoints + skeleton in categories). Both round-trip on import.
Face Detection
Annotate face regions with bounding boxes and optional 5-point landmark keypoints (left eye, right eye, nose, left mouth corner, right mouth corner).
Available tools: Select, Bounding Box, Point, AI Face
Recommended exports: SwiftPackage, COCO JSON
Classification
Assign a single class label to each image. Useful for training image-level classifiers.
Available tools: Select only
Recommended exports: Multiclass (folder per class), CLIP, PaliGemma
Annotation Tools
Tools are activated via the Side Tool Bar or keyboard shortcuts. Only tools compatible with the current project type are enabled.
Select Tool V
Click an annotation to select it. Drag to move. Use the handles to resize bounding boxes or drag vertices on polygons. Press Delete to remove the selected annotation.
Bounding Box B
Click and drag to draw a bounding box. Release to complete. The active class (highlighted in the Label Classes panel) is automatically assigned. If no class is defined, a prompt appears to add one.
Polygon P
Click to place polygon vertices one by one. Close the polygon by pressing Enter, double-clicking the first point, or right-clicking. A minimum of 3 points is required.
Keypoint K
In Pose projects, clicking places keypoints in schema order (nose → left eye → right eye → ...). The skeleton is drawn automatically based on the configured edges. Press Enter to finalise a set and start the next person.
AI Tools
All AI tools use ONNX Runtime for inference and run fully offline. You can configure task-specific models in Settings → Models.
Detection & Segmentation Auto-Label
Runs a YOLO detection or segmentation model across your dataset to generate initial bounding boxes or polygon masks. The model is loaded automatically from Settings → Models based on your project type.
- Click the AI Auto-Label button in the Side Tool Bar.
- Adjust the Confidence and NMS IoU thresholds.
- Click Run on Current Image or Run on All Images.
- Review predictions on the canvas, refine them if needed, then save the project or export the dataset.
SAM Click-to-Segment
Click any object on the canvas and SAM (Segment Anything Model) generates a precise polygon mask instantly. No training required — works zero-shot on any image and any object.
- Open a Semantic or Instance Segmentation project.
- Click the SAM button in the Top Bar.
- Click on the object you want to segment — SAM generates a polygon mask automatically.
- Refine the mask with the Select tool if needed.
segmentation_mobile_sam.onnx model. Configure the path in Settings → Models → Segmentation → SAM (Click Segment).Body & Hand Pose
The Pose Annotation dialog has a model selector with two modes:
- Body — YOLOv8-Pose model (
body.onnx), 17 COCO keypoints with left/right colored skeleton. - Hand — 21-keypoint hand model (
hand.onnx), drawn with per-finger colors (thumb, index, middle, ring, pinky) and named joints (Wrist, Thumb CMC … Pinky Tip).
Run inference on the current image or the whole dataset, inspect each detected person/hand in the keypoint list, toggle per-keypoint visibility (Visible / Occluded / Unlabeled), drag keypoints on the canvas to refine, then click Accept.
Face AI
Face detection with 5-point landmarks (eyes, nose, mouth corners) using a YOLOv8-Face model (face.onnx). Works like the pose tool: batch-run, review, approve.
Export & Import
SwiftLabel supports 26 export formats and can import most of them back. Use File → Export Dataset to open the export dialog.
Format Reference
| Format | Project Type | Geometry Type |
|---|---|---|
| Native | ||
SwiftPackage | All types | BoundingBox, Polygon, Polyline, Point, Keypoint |
| YOLO Family | ||
YOLO | Object Detection, Segmentation, Pose | BoundingBox, Polygon, Keypoint |
YOLOv3 Keras | Object Detection | BoundingBox |
YOLO TensorFlow | Object Detection | BoundingBox |
YOLOv4 PyTorch | Object Detection | BoundingBox |
YOLOv4 Scaled | Object Detection | BoundingBox |
YOLOv5 PyTorch | Object Detection | BoundingBox |
YOLOv5 OBB | Object Detection | Polygon (4-point oriented bbox) |
YOLOv6 MT | Object Detection | BoundingBox |
YOLOv7 PyTorch | Object Detection | BoundingBox |
YOLOv8 | Object Detection, Segmentation, Pose | BoundingBox, Polygon, Keypoint |
YOLOv8 OBB | Object Detection | Polygon (4-point oriented bbox) |
YOLOv9 | Object Detection | BoundingBox |
YOLOv11 | Object Detection | BoundingBox |
YOLOv12 | Object Detection | BoundingBox |
Roboflow YOLO | Object Detection | BoundingBox |
YOLO Pose | Pose Estimation | Keypoint (bbox + normalized keypoints with visibility) |
| Standard Formats | ||
COCO | Object Detection, Segmentation, Pose | BoundingBox, Polygon, Keypoint |
Pascal VOC | Object Detection | BoundingBox |
CVAT XML | Object Detection, Segmentation, Pose | BoundingBox, Polygon, Point |
LabelMe | Object Detection, Segmentation, Pose | BoundingBox, Polygon, Polyline, Point, Keypoint |
Darknet | Object Detection | BoundingBox |
RetinaNet | Object Detection | BoundingBox |
| AI / VLM Formats | ||
CreateML | Object Detection | BoundingBox |
Florence-2 | Object Detection | BoundingBox |
PaliGemma | Object Detection | BoundingBox |
CLIP | Classification | BoundingBox (full-image) |
Multiclass | Classification | BoundingBox (full-image) |
Importing Datasets
Use File → Import Dataset to load annotations from an existing dataset. SwiftLabel auto-detects the format. After import, classes are registered automatically from the label data.
Exporting Datasets
The export dialog shows all formats compatible with your project type. You can optionally:
- Split into train / val / test sets with configurable ratios.
- Copy images into the export folder (required for most training setups).
- Embed images in LabelMe JSON as base64.
Keyboard Shortcuts
Full shortcut reference. Press F2 at any time to see this list inside the application.
All Shortcuts
| Action | Shortcut |
|---|---|
| Project | |
| New Project | CtrlN |
| Open Project | CtrlO |
| Save Project | CtrlS |
| Save Project As | CtrlShiftS |
| Tools | |
| Select / Move | V |
| Bounding Box | B |
| Polygon | P |
| Keypoint | K or O |
| Classification | C |
| Finalise keypoints | Enter |
| Navigation | |
| Next image | D |
| Previous image | A |
| Video play / pause | Space |
| Jump to previous annotated frame | [ |
| Jump to next annotated frame | ] |
| Discard image | X |
| Editing | |
| Undo | CtrlZ |
| Redo | CtrlY |
| Delete selected | Delete |
| Deselect | Esc |
| View | |
| Zoom in | + |
| Zoom out | − |
| Fit to window | F |
| Zoom 100% | G |
| Toggle label tags | L |
| Show shortcuts | F2 |
Settings
Open Settings via the gear icon in the top-right corner. Settings has two tabs:
General — UI theme (Light / Dark, persisted across sessions) and license management.
Models — one model path per AI task. Defaults point to the models/ folder next to the executable; the Full installer ships these pre-installed.
| Setting | Default | Description |
|---|---|---|
| Detection | models/detection.onnx | YOLOv8/YOLO11 detection model for Object Detection projects. |
| Segmentation | models/segmentation.onnx | YOLO segmentation model for Segmentation projects. |
| SAM (Click Segment) | models/segmentation_mobile_sam.onnx | Segment Anything Model for zero-shot click-to-segment. |
| Body | models/body.onnx | YOLOv8-Pose body model (17 keypoints). |
| Hand | models/hand.onnx | Hand pose model (21 keypoints). |
| Face | models/face.onnx | YOLOv8-Face model (5 landmarks). |
Video Annotation
Import a video file with File → Import Video. SwiftLabel decodes the video and presents each frame as a separate entry in the File List.
- Use the frame slider in the Canvas Top Bar to scrub through frames.
- Use Jump Back / Forward buttons (or ← / →) to move 10 frames at a time.
- Annotations are stored per-frame and saved with the project.
- The slideshow button plays frames automatically for review.
License & Trial
SwiftLabel starts with a 14-day free trial — every feature unlocked, no account or credit card needed. After purchase you receive a license key by email.
- Open the license dialog at startup, or via Settings → General → License → Manage.
- Paste your key and click Activate. Activation requires a one-time internet connection.
- Use Deactivate This Machine to release a seat before moving to another computer.