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

  1. Download SwiftLabel-1.2.0-Full-Setup.exe from the downloads page.
  2. Run the installer and follow the setup wizard.
  3. Launch SwiftLabel from the Start Menu or desktop shortcut.

Linux

  1. Download SwiftLabel-1.2.0-x86_64.AppImage from the downloads page.
  2. Make it executable: chmod +x SwiftLabel-1.2.0-x86_64.AppImage
  3. Run it: ./SwiftLabel-1.2.0-x86_64.AppImage
Requirements: Windows 10/11 or Ubuntu 22.04+ (64-bit). No internet connection required. AI features require ONNX model files (see AI Tools).

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.

  1. Go to File → New Project (or press CtrlN).
  2. Choose a project type from the wizard.
  3. Save your project with File → Save Project (CtrlS) before adding images.
  4. Import images via File → Import Images.
  5. Click + Add in the Label Classes panel to create your first class.
  6. Select a tool and start annotating.
Tip: Save your project file in the same folder as your images. This keeps relative paths consistent if you move the project.

Interface Overview

AreaDescription
Title BarMenu bar with File, Edit, and Help menus.
Tool BarQuick access to New, Open, Save, Import, Export, Undo/Redo and navigation controls.
Top BarProject type badge, AI tool buttons, and theme toggle.
Side Tool BarAnnotation tool selector. Only tools valid for the current project type are enabled.
CanvasMain drawing area. Shows the current image and all annotations. Stats overlay in the top-right corner.
Canvas Top BarFilename, image progress, Labels / Stats toggles, zoom controls.
File ListLeft panel listing all images. Green = labeled, grey = unlabeled.
Right PanelLabel Classes, Annotations list, Comments, Dataset Statistics.
Film StripHorizontal 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

The bounding box is stored as normalized coordinates [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

Press Enter to close a polygon, or double-click the first point. You can drag existing vertices to adjust after drawing.

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.

For faster annotation, run AI Auto-Label with a segmentation model to pre-generate polygons, then refine them with the Select tool.

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.

  1. Click the AI Auto-Label button in the Side Tool Bar.
  2. Adjust the Confidence and NMS IoU thresholds.
  3. Click Run on Current Image or Run on All Images.
  4. Review predictions on the canvas, refine them if needed, then save the project or export the dataset.
Class names are read from the ONNX model metadata, so custom-trained and Roboflow-exported models show their real class names automatically.

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.

  1. Open a Semantic or Instance Segmentation project.
  2. Click the SAM button in the Top Bar.
  3. Click on the object you want to segment — SAM generates a polygon mask automatically.
  4. Refine the mask with the Select tool if needed.
SAM uses the 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.

Any YOLO-pose ONNX model works — SwiftLabel reads the keypoint count from the model output shape, so custom schemas (e.g. animal pose) load without configuration.

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

FormatProject TypeGeometry Type
Native
SwiftPackageAll typesBoundingBox, Polygon, Polyline, Point, Keypoint
YOLO Family
YOLOObject Detection, Segmentation, PoseBoundingBox, Polygon, Keypoint
YOLOv3 KerasObject DetectionBoundingBox
YOLO TensorFlowObject DetectionBoundingBox
YOLOv4 PyTorchObject DetectionBoundingBox
YOLOv4 ScaledObject DetectionBoundingBox
YOLOv5 PyTorchObject DetectionBoundingBox
YOLOv5 OBBObject DetectionPolygon (4-point oriented bbox)
YOLOv6 MTObject DetectionBoundingBox
YOLOv7 PyTorchObject DetectionBoundingBox
YOLOv8Object Detection, Segmentation, PoseBoundingBox, Polygon, Keypoint
YOLOv8 OBBObject DetectionPolygon (4-point oriented bbox)
YOLOv9Object DetectionBoundingBox
YOLOv11Object DetectionBoundingBox
YOLOv12Object DetectionBoundingBox
Roboflow YOLOObject DetectionBoundingBox
YOLO PosePose EstimationKeypoint (bbox + normalized keypoints with visibility)
Standard Formats
COCOObject Detection, Segmentation, PoseBoundingBox, Polygon, Keypoint
Pascal VOCObject DetectionBoundingBox
CVAT XMLObject Detection, Segmentation, PoseBoundingBox, Polygon, Point
LabelMeObject Detection, Segmentation, PoseBoundingBox, Polygon, Polyline, Point, Keypoint
DarknetObject DetectionBoundingBox
RetinaNetObject DetectionBoundingBox
AI / VLM Formats
CreateMLObject DetectionBoundingBox
Florence-2Object DetectionBoundingBox
PaliGemmaObject DetectionBoundingBox
CLIPClassificationBoundingBox (full-image)
MulticlassClassificationBoundingBox (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.

Imported image paths are resolved relative to the dataset folder. If images are missing, the annotations will still load but images will not display.

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.
The Export button is disabled until you select an output folder. Use the folder icon to browse.

Keyboard Shortcuts

Full shortcut reference. Press F2 at any time to see this list inside the application.

All Shortcuts

ActionShortcut
Project
New ProjectCtrlN
Open ProjectCtrlO
Save ProjectCtrlS
Save Project AsCtrlShiftS
Tools
Select / MoveV
Bounding BoxB
PolygonP
KeypointK or O
ClassificationC
Finalise keypointsEnter
Navigation
Next imageD
Previous imageA
Video play / pauseSpace
Jump to previous annotated frame[
Jump to next annotated frame]
Discard imageX
Editing
UndoCtrlZ
RedoCtrlY
Delete selectedDelete
DeselectEsc
View
Zoom in+
Zoom out−
Fit to windowF
Zoom 100%G
Toggle label tagsL
Show shortcutsF2

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.

SettingDefaultDescription
Detectionmodels/detection.onnxYOLOv8/YOLO11 detection model for Object Detection projects.
Segmentationmodels/segmentation.onnxYOLO segmentation model for Segmentation projects.
SAM (Click Segment)models/segmentation_mobile_sam.onnxSegment Anything Model for zero-shot click-to-segment.
Bodymodels/body.onnxYOLOv8-Pose body model (17 keypoints).
Handmodels/hand.onnxHand pose model (21 keypoints).
Facemodels/face.onnxYOLOv8-Face model (5 landmarks).
Paths under the application folder are stored relative, so settings survive reinstalls and machine moves. Browse to any location to use a custom model.

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.
Video frames are decoded on demand — the original video file must remain accessible for the project to load correctly.

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.

  1. Open the license dialog at startup, or via Settings → General → License → Manage.
  2. Paste your key and click Activate. Activation requires a one-time internet connection.
  3. Use Deactivate This Machine to release a seat before moving to another computer.
Licensed installs work offline. The app revalidates in the background every few days when a connection is available, with a generous offline grace period.