Runs 100% locally on your Mac

Caption your images.
Train better models.

Dataset Labeler generates training-ready captions for every image in your dataset — optimized per model for LoRA, Dreambooth, and fine-tuning workflows. No cloud. No API keys. No cost.

LoRA Training Dreambooth Fine-Tuning SD 1.5 SDXL FLUX.1 Hunyuan
Free · macOS · No API keys · No internet needed after setup
dataset-labeler — localhost:8080 ETA: 2m 14s

LoRA training requires
thousands of captions.

Writing them manually takes days. Cloud tools cost money and send your images to external servers. Dataset Labeler solves both — and auto-selects the right caption style for your target model.

Model-optimized captions
Select your target model and the app auto-configures the caption style, token limit and system prompt — Tags for SD 1.5, Dense Prose for FLUX.1, Hybrid for SDXL.
🔒
Completely private
Your training images never leave your computer. No uploads, no cloud processing, no external API calls whatsoever.
$0
Totally free
No subscription, no per-image cost, no token limits. Run it as much as you want on your own hardware.

Right caption style,
for every model.

Each image generation model was trained on a different caption format. Select your target model and Dataset Labeler automatically applies the optimal style, token limit and prompt structure.

Model Text Encoder Token Limit Best Caption Style
SD 1.4 & 1.5
CLIP-L
77
Tags / Keywords
SD 2.0 & 2.1
OpenCLIP-H
77
Simple Prose
SDXL
CLIP-G + CLIP-L
225
Hybrid Tag + Prose
FLUX.1 dev
CLIP-L + T5 XXL
512
Dense Prose
FLUX.1 schnell
CLIP-L + T5 XXL
256
Simple–Medium Prose
Hunyuan DiT
Bilingual MLLM
150
Structural Dense Prose
💡 Select your target model in the app and the caption style, token budget and system prompt are configured automatically.

Open the app.
Everything else is automatic.

The launcher handles the entire setup for you. No Terminal, no manual configuration.

01
Ollama is installed and started
The launcher checks if Ollama is present on your Mac. If not, it opens the download page. If it's installed but not running, it starts it automatically.
✓ Automated
02
The vision model is downloaded
Qwen2.5-VL 7B is pulled locally if not already present. This is a one-time ~6 GB download. Progress is shown with a live log.
✓ Automated
qwen2.5vl:7b
03
A local HTTP server is started
Python's built-in HTTP server serves the app interface from your chosen folder on port 8080. No installation required.
✓ Automated
localhost:8080
04
Select your target training model
Choose your target model — SD 1.5, SDXL, FLUX.1 dev, Hunyuan and more. The app auto-selects the optimal caption style, token limit and system prompt for that model.
✓ Auto-configured
05
Drop images and generate captions
Drop your training images or a whole folder. Click Generate — the vision AI writes detailed, model-optimized captions for every image automatically.
✓ Automated
06
Download your labeled dataset
Export a ZIP containing all your images auto-renamed sequentially (e.g., spidermanxyz_001.png) and perfectly paired with their matching .txt caption files — ready to drop straight into Kohya or SimpleTuner.
[trigger]_dataset.zip

Built for serious
dataset creation.

Every feature is designed around one goal — making your training captions as accurate, detailed and model-compatible as possible.

Model Presets
Auto caption style per model
Select your target image generation model and the app instantly configures the correct caption format, token budget and base prompt — no manual tuning needed.
SD 1.5 → Tags SDXL → Hybrid FLUX.1 → Dense Prose
Image Processing
Smart Crop & Auto-Resize
Images are automatically scaled and cropped to perfectly match your target model's native resolution (e.g., 512px or 1024px). Includes a precise manual crop editor.
512px / 1024px export Manual crop UI
Data Cleansing
Exact Duplicate Detection
Prevent model overfitting by automatically finding pixel-perfect duplicates in your dataset. Review grouped duplicates and auto-delete all but the highest resolution copy.
Pixel-perfect hash 1-click auto-delete
Captioning
Exhaustive visual descriptions
The AI describes every visible element — subjects, clothing, hair, expression, pose, background, lighting, camera angle, color palette and visual style.
Trigger
Trigger token injection
Set a unique trigger token (e.g. spidermanxyz) and every caption will start with it instead of generic dictionary words. Completely prevents model concept bleeding.
Safe token suggestions Dictionary warning
Focus
Custom detail emphasis
Tell the model to place extra detail on a specific element. Use UI presets like "face" or "clothing", or type any custom target like "oil painted pine trees".
face pose custom text
Workflow
Live ETA & Fail-safes
Process up to 5 images simultaneously while a dynamic ETA calculator tracks time remaining. An unsaved changes warning prevents accidental data loss if you close the tab.
Live time tracking Unsaved progress warning
Export
Sequential auto-naming
No more messy file names like IMG_9482.png. The app automatically sequences your entire dataset (e.g., trigger_001.png) and packs it into a ready-to-train ZIP.
trigger_001.png + .txt Kohya / SimpleTuner ready
Bulk Editing
Find & Replace
Notice a recurring AI hallucination across 50 images? Instantly fix it across your entire dataset before exporting with the built-in bulk Find & Replace tool.
Global text replacement Quick fixes

Version History

We’re constantly refining the captioning engine based on the latest AI training research.

Latest Update
v1.4 April 2026
Lossless PNG Export: Upgraded to 100% quality engine for pixel-perfect training data.
Smoothed ETA Tracking: New adaptive moving-average timer for stable processing estimates.
Hallucination Fix: Implemented Repetition Penalty to prevent AI word-looping.
Weighted Focus: New 40% detail quota logic for facial features and textures.
Sequential Naming: Auto-renames files to [trigger]_001.png for Kohya compatibility.
v1.3 April 2026
Integrated manual crop UI with square aspect ratio locks.
Added native resolution auto-scaling (512px / 1024px).
Added "Pro Tip" modals for specific model text encoders.
v1.2 April 2026
Implemented Pixel-Hash duplicate detection.
Added Global Find & Replace for caption cleanup.
Support for FLUX.1 and Hunyuan DiT presets.

Your training data stays
on your machine.

Most AI captioning tools send your images to external servers. Dataset Labeler never does.

🔒
Air-gapped by design
The vision model runs entirely inside Ollama on your Mac. No image, caption, or metadata is ever transmitted to any external server — not even for analytics.
No internet required after setup
No account or login
No telemetry or analytics
No API keys ever

Built on proven,
open source foundations.

Ollama
Local model runtime
ollama.com
Qwen2.5-VL
Vision language model
7B parameters
Electron
macOS launcher app
v30
React
App interface
v18

Start building your
training dataset today.

Free download. macOS only. No setup beyond clicking Launch.

macOS 12+ · Apple Silicon (M-Series) · Free forever

Common Questions

Everything you need to get Dataset Labeler running smoothly on your Mac.

What are the hardware requirements?
Dataset Labeler is built exclusively for Apple Silicon (ARM64). It leverages Unified Memory to allow the GPU to process vision tasks at high speed.

Supported: M1, M2, M3, M4, M5 (All variants).
Recommended: 16GB RAM or higher. While it runs on 8GB, 16GB provides the necessary overhead for the 6GB vision model and system resources.
macOS says the app is "Damaged" and should move to Trash
This is a common Gatekeeper error when running unsigned ARM64 binaries. To fix the signature, move the app to Applications and run these two commands in Terminal:
I see a popup for "Command Line Developer Tools"
Click Install. Dataset Labeler uses Python to run the local server. macOS requires this tiny official utility from Apple to allow the app to communicate with your hardware. It only takes a minute to install.
The Model Download (Qwen) is stuck
If the progress bar stops, it’s likely a connection timeout.

Manual Fix: Open your Terminal and type ollama run qwen2.5vl:7b. This will finish the download with a detailed progress bar. Once it's done, restart Dataset Labeler.
"A JavaScript error occurred in the main process"
This usually happens if the app is opened before the Terminal Fix (Step 1 & 2) is applied, or if the Python tools were not installed. Apply the Terminal fixes, restart your Mac, and try again.

Why the "Damaged" popup?
Transparency first.

We believe in local AI. That means no cloud, no tracking, and no hidden fees. But it also means navigating Apple's "walled garden." Here is exactly what is happening under the hood.

The "Notarization" Policy
Apple requires developers to pay a $99/year fee to "notarize" apps. As an independent open-source project, we choose to keep the app free instead of paying the Apple tax. This is why macOS shows the "Damaged" warning—it simply means we haven't paid Apple to verify the binary.
Why "Command Line Tools"?
Dataset Labeler starts a tiny, private web server on your Mac (localhost:8080) so you can use the interface in your browser. This requires Python. Since Apple stopped pre-installing Python in newer macOS versions, they ask you to install it manually. It is a 100% official Apple utility.
True Local Execution
Cloud-based AI apps are easy to install because they don't do anything on your hardware. Dataset Labeler is different—it brings the 6GB Vision AI (Qwen) directly to your Mac. This requires more setup, but it ensures your data never touches the internet.
Is it safe?

Yes. Dataset Labeler is built with Electron and Python—standard tools used by millions of developers. You can even check the local network traffic; the app makes zero outgoing requests to the internet after the initial model download.

100% Air-Gapped Operation
No Telemetry / Tracking
Community-Standard Terminal Fix

New to AI Training?

Everything you need to know to start creating your own custom AI models.

What is Model Training? +

Model training is the process of teaching an AI to recognize specific concepts. By showing the AI a dataset of images paired with descriptive captions, the model learns the relationship between words and pixels. Dataset Labeler automates the hardest part: writing the captions.

What is LoRA Training? +

LoRA (Low-Rank Adaptation) is a lightweight way to "fine-tune" a giant model like FLUX or SDXL. Instead of retraining the whole model (which is expensive), you train a tiny "plug-in" file (usually 50MB–300MB) that contains a specific person, style, or object.

The Training Checklist +

To create your own custom AI, you need four key ingredients:

  • Images: 15–30 high-quality photos of your desired subject.
  • Captions: Descriptive text for every image (Generated by Data Labeler).
  • Base Model: A model to build upon (e.g., SD1.5 or SDXL).
  • Training Software: Programs like DiffusionBee (for Mac), Kohya_ss, or SimpleTuner.

Fuel the development.

If this tool saved you hours of tagging or helped you train the perfect LoRA, consider buying me a coffee to keep the updates coming.

☕️
Every coffee fuels more features and updates for the local AI community.
Support the Project
Secure payment via Stripe · Apple Pay supported