Skip to content

Augmentation

The augmentation resource produces a new HuggingFace dataset by applying transforms to an existing one. See the Dataset Augmentation guide for an overview of when and why to use it.

Start a new dataset augmentation job.

from qualia import Qualia
client = Qualia()
job = client.augmentation.create(
project_id="...",
dataset_id="qualiaadmin/spoon10", # HuggingFace dataset ID
transforms="lighting,noise", # Comma-separated transforms
mode="stacked", # stacked or independent
copies=3, # Augmented copies per episode
dataset_mode="copy", # copy or inplace
# Optional fine-tuning of lighting transform ranges:
brightness_range=(-15, 15),
contrast_range=(-10, 10),
color_temp_range=(4000, 6500),
name="My augmentation run",
)

Response

AugmentationJob
{
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "queued",
"message": "Augmentation job created successfully"
}

| Parameter | Type | Required | Description | | ------------------- | --------------------- | -------- | ---------------------------------------------------------------------------------------------------------------- | | project_id | str | Yes | Project to create the job in | | dataset_id | str | Yes | HuggingFace dataset ID to augment | | augmentation_type | str | No | deterministic (default) or generative (currently disabled) | | transforms | str | No | Comma-separated transforms: lighting, noise, blur, occlusion (default: lighting) | | mode | str | No | stacked applies all transforms to each copy, independent creates one copy per transform (default: stacked) | | copies | int | No | Number of augmented copies per episode, 1–20 (default: 3) | | dataset_mode | str | No | copy adds augmented copies alongside originals, inplace replaces them (default: copy) | | brightness_range | tuple[float, float] | No | Brightness adjustment range in percent (default: (-15, 15)) | | contrast_range | tuple[float, float] | No | Contrast adjustment range in percent (default: (-10, 10)) | | color_temp_range | tuple[int, int] | No | Color temperature range in Kelvin (default: (4000, 6500)) | | name | str | No | Job description |

Check the status of an augmentation job. The augmented dataset ID is populated once the job has completed.

status = client.augmentation.get(job.job_id)
if status.status == "completed":
print(f"Augmented dataset: {status.augmented_dataset_id}")

Response

AugmentationStatus
{
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"current_phase": "augmentation_running",
"status": "running",
"instance_type": "n3-RTX-A6000x1",
"region": "NORWAY-1",
"phases": [
{
"name": "queuing",
"status": "completed",
"started_at": "2026-04-09T10:00:00Z",
"completed_at": "2026-04-09T10:00:30Z",
"events": [],
"error": null
},
{
"name": "augmentation_running",
"status": "in_progress",
"started_at": "2026-04-09T10:02:00Z",
"completed_at": null,
"events": [],
"error": null
}
],
"augmented_dataset_id": null,
"created_at": "2026-04-09T10:00:00Z"
}

Augmentation jobs progress through these phases in order:

| Phase | Description | | ----------------------- | -------------------------------------------------- | | queuing | Job is queued and waiting to start | | credit_validation | Validating credit balance | | instance_booting | GPU instance is booting | | instance_activation | Instance is being activated | | instance_setup | Setting up the augmentation environment | | dataset_preprocessing | Downloading and tagging the input dataset | | augmentation_running | Augmentation transforms are being applied | | dataset_uploading | Augmented dataset is being uploaded to HuggingFace | | completed | Job completed successfully | | failed | Job failed (check phase errors for details) | | cancelled | Job was cancelled |

Each phase has a status of started, completed, or failed.

Cancel a running augmentation job. Any unused credits from the reservation are returned automatically.

result = client.augmentation.cancel(job.job_id)

Response

AugmentationCancelResult
{
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"cancelled": true,
"message": "Augmentation job cancelled successfully"
}