Dataset versions and pipeline

A dataset version records how to materialize train/valid/test data for export or training: splits, preprocessing, and augmentation.

Create a version

UI: Project detail → Generate / Versions.

API:

POST /api/projects/{project_id}/versions
Content-Type: application/json

{
  "name": "640 stretch + light aug",
  "notes": "",
  "split_config": {"train": 70, "valid": 20, "test": 10},
  "preprocessing_config": null,
  "augmentation_config": {}
}

List versions:

GET /api/projects/{project_id}/versions

Versions are numbered sequentially per project.

Pipeline defaults

GET /api/pipeline/defaults

Returns the default preprocessing and augmentation configuration used when you leave options empty.

Preprocessing (typical defaults)

  • Resize (e.g. 640×640)

  • Stretch / letterbox style handling per config

  • Auto-orient (EXIF)

Augmentation

Augmentations are off by default. When enabled, options can include flips, rotation, brightness/contrast, blur, noise, hue/saturation, and an apply_to scope such as:

Value

Meaning

train

Train split only

train_valid

Train + valid

all

All splits

Exact keys mirror the Generate UI and preprocess service defaults.

When to create a new version

Create a new version when you change:

  • Label quality or class set meaningfully

  • Split strategy

  • Image size / preprocess settings

  • Augmentation recipe for training experiments

Keep older versions so you can compare training runs reproducibly.

Relation to training and export

Both Train and Export take a version_id. The job rebuilds the dataset according to that version’s pipeline rather than mutating your original project images in place.