Python CLI · offline · YOLO26 / YOLO11 / YOLOv8

From messy annotation export to a clean, leakage-free YOLO dataset. One command.

YOLO Dataset Forge converts YOLO, COCO, VOC, LabelMe and CVAT, auto-fixes the label bugs that silently ruin training, and splits by patient, session or video so your validation scores mean something.

One-time payment · single-user commercial license · free 1.x updates · secure checkout by Stripe

COCOPascal VOCLabelMeCVAT⇄ YOLOboxes + polygonsPython 3.9+Pillow + PyYAML only
Terminal output of yoloforge prepare: validation errors and warnings auto-fixed, split train=64 val=8 test=8, leakage groups 0

Most YOLO problems start before training

The model is rarely the hard part. The dataset plumbing is, and its bugs don't crash anything. They just quietly make your model worse or your metrics too good to be true.

Silent label bugs

Boxes outside the image, class ids out of range, pixel coordinates instead of 0–1, duplicate boxes, EXIF-rotated photos. And one nasty one: a few box-only rows in a segmentation set make Ultralytics silently drop all masks.

Format juggling

Your annotation tool exports COCO, VOC, LabelMe or CVAT. YOLO wants normalized txt files, a strict folder layout and a data.yaml. Fixing labels means converting back again. Most projects end up with a pile of one-off glue scripts.

Leakage from random splits

Frames from the same patient, video or session land in both train and val. The model "recognizes" near-duplicates, val mAP looks great, and real-world performance doesn't follow. Rare classes may never reach val/test at all.

What it does

A small, readable Python toolkit and CLI (yoloforge) that runs entirely on your machine. No account, no upload, no telemetry.

⇄

Convert any-to-any

YOLO (detect + segment) ⇄ COCO JSON ⇄ Pascal VOC ⇄ LabelMe ⇄ CVAT for images 1.1 XML. Polygons included, multi-part COCO polygons merged, formats auto-detected, class order enforceable with --classes.

🩺

Validate & auto-fix

20+ checks: malformed lines, pixel coords, out-of-range classes, out-of-bounds/inverted/tiny/duplicate boxes, degenerate polygons, mixed box/seg rows, image size mismatch, corrupt or duplicate images. Fixes go to a new folder; your source data is never modified.

⚖️

Group-aware stratified split

Multi-label iterative stratification (Sechidis et al., 2011) over groups from --group-regex. All frames of one patient/session/video stay in one split, rare classes still reach val/test, and a leakage check confirms it. Same seed, same split.

📊

Offline HTML report

One self-contained file: class balance per split, leakage check, box-size scatter, centre heatmap, size buckets, aspect-ratio and objects-per-image histograms, every issue found, labelled thumbnails and recommendations.

👁️

Visualize

Draw boxes and polygons onto images to eyeball labels before you spend GPU hours. validate --strict exits non-zero on unfixed errors, so it works as a CI gate.

🚀

Train · eval · ONNX

Thin wrappers that call your own Ultralytics yolo CLI, with task auto-detection, --dry-run, and presets for a CPU smoke test, small datasets and small objects.

One command, ready to train

yoloforge prepare runs validate, auto-fix, stratified group split, YOLO layout, data.yaml, report.html and validation.json in one go.

# install the wheel you receive
$ pip install ./yoloforge-1.0.0-py3-none-any.whl

# try it on the bundled synthetic data (deliberately broken labels)
$ yoloforge synth --out raw --n 80 --inject-errors
$ yoloforge prepare raw --out dataset --group-regex '^(subj\d+)_'

# your own COCO export from CVAT / Label Studio / Roboflow / ...
$ yoloforge prepare path/to/instances.json --images path/to/images --out my_dataset

# train with your own Ultralytics install
$ yoloforge train --data my_dataset/data.yaml --model yolo26n.pt --epochs 100

What you get in my_dataset/

  • images/{train,val,test} and labels/{train,val,test} in the standard YOLO layout
  • data.yaml ready for yolo train
  • report.html: class balance, leakage check, geometry, issues, thumbnails
  • validation.json: every issue found and what was fixed
  • Your original export, untouched

Other commands: convert, validate [--fix] [--strict], split, report, visualize, synth, train, eval, export. There's also a Python API (read_dataset, validate, stratified_split, build_report).

Sample HTML dataset report with class distribution by split and split balance table

Know your data before you train

The report is a single offline HTML file you can share with your team or attach to a client deliverable. Here's a real one generated from the synthetic sample dataset.

Open the sample report →

What's included

  • Full Python source (yoloforge package + CLI) and a ready-to-install wheel
  • 28 pytest tests (~2 s, no GPU or Ultralytics needed)
  • Worked example: messy export → validate → prepare → 2-epoch CPU training → test eval → ONNX
  • Synthetic dataset generator with deliberately broken labels, plus a sample HTML report
  • 3 training presets: CPU smoke test, small datasets, high-res small objects
  • README with quickstart, command reference, validation-check table and Python API
  • Single-user commercial license and free updates for all 1.x versions

Requirements

  • Python 3.9+ on Linux, macOS or Windows
  • Only two dependencies: Pillow and PyYAML
  • Works with Ultralytics YOLO26, YOLO11 and YOLOv8 datasets
  • Ultralytics is not included. You need it only for train / eval / export and install it yourself (pip install ultralytics)
  • No model weights or third-party datasets bundled

How it compares to the free tools

The free tools below are excellent, and many people should just use them. Forge is for when you want conversion, validation, group-aware splitting and a report in one offline command. Here's an honest look at where each one fits.

ForgeUltralytics converterssupervisionlabelme2yoloFiftyOneRoboflow
Main strengthOne-command dataset prep for YOLOBuilt into the YOLO toolchainFlexible CV utilities librarySimple LabelMe → YOLOVisual dataset exploration & curationEnd-to-end hosted platform
Formats → YOLOCOCO, VOC, LabelMe, CVATCOCO (+ some others)COCO, VOCLabelMeMany formatsMany (via upload)
YOLO → back to annotation formatsCOCO, VOC, LabelMe, CVAT—COCO, VOC—Many formatsMany (via upload)
Validation + auto-fix of label errors20+ checks, fixes to a new folder———Explore / find issues visuallyPartial (health check)
Stratified multi-label splitYesRandomRandomRandomVia your own codeRandom
Group-aware split (no patient/session leakage)Yes + leakage check———Via your own code—
Offline HTML dataset reportYes, single file———Interactive app insteadWeb UI
Offline, data stays on your diskYesYesYesYesYes (open-source version)Cloud upload
Price / license$29, single-user commercialFree, AGPL-3.0 (or Enterprise)Free, MITFree, open sourceFree open source; paid EnterpriseFree tier + paid plans

Based on our reading of each project's public documentation, October 2026. These tools change quickly, so check their docs for the current feature set. If you spot an error, please tell us and we'll fix it. All trademarks belong to their owners.

FAQ

Short answers. The full details are in the README and LICENSE that ship with the kit.

What does the license allow?

A perpetual single-user commercial license. You can use Forge on any computers you personally use, for personal, academic and commercial work, including work for your employer or clients. Datasets, reports, configs and models you produce are yours, with no royalties. You can modify the code for your own use. You can't redistribute or resell the code, publish it in a public repository, share one license between several people, or offer it as a hosted service. Teams need one license per user.

Is this affiliated with Ultralytics? What about AGPL-3.0?

No. YOLO Dataset Forge is an independent product, not affiliated with or endorsed by Ultralytics. It contains no Ultralytics code and ships no model weights. Convert, validate, split, report and visualize don't need Ultralytics at all. The train, eval and export commands simply run the yolo program that you install separately. Ultralytics is licensed under AGPL-3.0 (or a paid Ultralytics Enterprise License), and pretrained weights are downloaded under its terms. Shipping Ultralytics-based models in a closed product or network service may require an Enterprise License. That's between you and Ultralytics, and this isn't legal advice.

What's your refund policy?

Yes. Within 14 days of purchase, email kryszut83@gmail.com and briefly tell us why it didn't work for you, and you'll get a full refund.

How do I receive the files after paying?

Instantly. Right after checkout, the Stripe confirmation page shows your download link for the zip. Save that link.

Which operating systems and Python versions are supported?

Python 3.9 or newer on Linux, macOS and Windows. It's pure Python with two dependencies (Pillow, PyYAML), and no GPU is needed for dataset work.

What are the known limitations?
  • No RLE masks. COCO RLE segmentations are reported, not converted. Polygons are fully supported.
  • No keypoints / pose datasets.
  • No CVAT video tracks. CVAT "for images 1.1" XML (boxes, polygons) is supported.

If one of these is a blocker for you, please wait or ask before buying.

Will it modify my original data?

No. Fixes are always written to a new output folder, and your source dataset is never touched. Keeping backups is still a good habit.

Which YOLO versions does it work with?

It writes the standard Ultralytics YOLO dataset layout and data.yaml, used by YOLO26, YOLO11 and YOLOv8 for detection and segmentation.

Do I get updates?

Yes. All 1.x updates are free.

Built by a physician-developer

I'm Krystian Szut, a physician (internal medicine & gastroenterology) who builds computer-vision tools in Python. My R&D project ECG Sight reads ECGs from photos and scans using YOLO26 models. Its segmentation model reaches mask mAP@50 0.668 on 441 validation images.

In medical imaging, a split that leaks frames of one patient between train and validation can make a model look far better than it is. I kept rewriting the same conversion, validation and split scripts, so I turned them into a tested, reusable tool. ECG Sight is a research project, not a clinical or certified medical device, and Forge is a general-purpose dataset tool, not medical software.

Stop debugging datasets. Start training.

$29  one-time · single-user commercial license · free 1.x updates

Buy YOLO Dataset Forge

Secure checkout by Stripe. Promo codes can be entered at checkout.