Skip to content
fiftyone-dataset-inference logo

Create Dataset and Run Inference

fiftyone-dataset-inference

Create a FiftyOne dataset from a directory of media files (images, videos, point clouds), optionally import labels in common formats (COCO, YOLO, VOC), run model inference, and store predictions. Use when users want to load local files into FiftyOne, apply ML models for detection, classification,...

aiskillstore/marketplace0installs430stars

SKILL.md

Full skill instructions

Create Dataset and Run Inference

Overview

Create FiftyOne datasets from local directories, import labels in standard formats, and run model inference to generate predictions.

Use this skill when:

  • Loading images, videos, or point clouds from a directory
  • Importing labeled datasets (COCO, YOLO, VOC, CVAT, etc.)
  • Running model inference on media files
  • Building end-to-end ML pipelines

Prerequisites

  • FiftyOne MCP server installed and running
  • @voxel51/​io plugin for importing data
  • @voxel51/​zoo plugin for model inference
  • @voxel51/​utils plugin for dataset management

Key Directives

ALWAYS follow these rules:

1. Explore directory first

Scan the user's directory before importing to detect media types and label formats.

2. Confirm with user

Present findings and get confirmation before creating datasets or running inference.

3. Set context before operations

set_context(dataset_name="my-dataset")

4. Launch App for inference

launch_app(dataset_name="my-dataset")

5. User specifies field names

Always ask the user for:

  • Dataset name
  • Label field for predictions

6. Close app when done

close_app()

Workflow

Step 1: Explore the Directory

Use Bash to scan the user's directory:

ls -la /​path/​to/​directory
find /​path/​to/​directory -type f | head -20

Identify media files and label files. See Supported Dataset Types section for format detection.

Step 2: Present Findings to User

Before creating the dataset, confirm with the user:

I found the following in /​path/​to/​directory:
- 150 image files (.jpg, .png)
- Labels: COCO format (annotations.json)

Proposed dataset name: "my-dataset"
Label field: "ground_truth"

Should I proceed with these settings?

Step 3: Create Dataset

execute_operator(
    operator_uri="@voxel51/​utils/​create_dataset",
    params={
        "name": "my-dataset",
        "persistent": true
    }
)

Step 4: Set Context

Set context to the newly created dataset before importing:

set_context(dataset_name="my-dataset")

Step 5: Import Samples

For media only (no labels):

execute_operator(
    operator_uri="@voxel51/​io/​import_samples",
    params={
        "import_type": "MEDIA_ONLY",
        "style": "DIRECTORY",
        "directory": {"absolute_path": "/​path/​to/​images"}
    }
)

For media with labels:

execute_operator(
    operator_uri="@voxel51/​io/​import_samples",
    params={
        "import_type": "MEDIA_AND_LABELS",
        "dataset_type": "COCO",
        "data_path": {"absolute_path": "/​path/​to/​images"},
        "labels_path": {"absolute_path": "/​path/​to/​annotations.json"},
        "label_field": "ground_truth"
    }
)

Step 6: Validate Import

Verify samples imported correctly by comparing with source:

load_dataset(name="my-dataset")

Compare num_samples with the file count from Step 1. Report any discrepancy to the user.

Step 7: Launch App

launch_app(dataset_name="my-dataset")

Step 8: Apply Model Inference

Ask user for model name and label field for predictions.

execute_operator(
    operator_uri="@voxel51/​zoo/​apply_zoo_model",
    params={
        "tab": "BUILTIN",
        "model": "yolov8n-coco-torch",
        "label_field": "predictions"
    }
)

Step 9: View Results

set_view(exists=["predictions"])

Step 10: Clean Up

close_app()

Supported Media Types

ExtensionsMedia Type
.jpg, .jpeg, .png, .gif, .bmp, .webpimage
.mp4, .avi, .mov, .mkv, .webmvideo
.pcdpoint-cloud
.fo3d3d

Supported Dataset Types

ValueFile PatternLabel Types
Image Classification Directory TreeFolder per classclassification
Video Classification Directory TreeFolder per classclassification
COCO*.jsondetections, segmentations, keypoints
VOC*.xml per imagedetections
KITTI*.txt per imagedetections
YOLOv4*.txt + classes.txtdetections
YOLOv5data.yaml + labels/​*.txtdetections
CVAT ImageSingle *.xml fileclassifications, detections, polylines, keypoints
CVAT VideoXML directoryframe labels
TF Image ClassificationTFRecordsclassification
TF Object DetectionTFRecordsdetections

Common Zoo Models

Popular models for apply_zoo_model. Some models require additional packages - if a model fails with a dependency error, the response includes the install_command. Offer to run it for the user.

Detection (PyTorch only):

  • faster-rcnn-resnet50-fpn-coco-torch - Faster R-CNN (no extra deps)
  • retinanet-resnet50-fpn-coco-torch - RetinaNet (no extra deps)

Detection (requires ultralytics):

  • yolov8n-coco-torch - YOLOv8 nano (fast)
  • yolov8s-coco-torch - YOLOv8 small
  • yolov8m-coco-torch - YOLOv8 medium

Classification:

  • resnet50-imagenet-torch - ResNet-50
  • mobilenet-v2-imagenet-torch - MobileNet v2

Segmentation:

  • sam-vit-base-hq-torch - Segment Anything
  • deeplabv3-resnet101-coco-torch - DeepLabV3

Embeddings:

  • clip-vit-base32-torch - CLIP embeddings
  • dinov2-vits14-torch - DINOv2 embeddings

Common Use Cases

Use Case 1: Load Images and Run Detection

execute_operator(
    operator_uri="@voxel51/​utils/​create_dataset",
    params={"name": "my-images", "persistent": true}
)

set_context(dataset_name="my-images")

execute_operator(
    operator_uri="@voxel51/​io/​import_samples",
    params={
        "import_type": "MEDIA_ONLY",
        "style": "DIRECTORY",
        "directory": {"absolute_path": "/​path/​to/​images"}
    }
)

load_dataset(name="my-images")  # Validate import

launch_app(dataset_name="my-images")

execute_operator(
    operator_uri="@voxel51/​zoo/​apply_zoo_model",
    params={
        "tab": "BUILTIN",
        "model": "faster-rcnn-resnet50-fpn-coco-torch",
        "label_field": "predictions"
    }
)

set_view(exists=["predictions"]) 

Use Case 2: Import COCO Dataset and Add Predictions

execute_operator(
    operator_uri="@voxel51/​utils/​create_dataset",
    params={"name": "coco-dataset", "persistent": true}
)

set_context(dataset_name="coco-dataset")

execute_operator(
    operator_uri="@voxel51/​io/​import_samples",
    params={
        "import_type": "MEDIA_AND_LABELS",
        "dataset_type": "COCO",
        "data_path": {"absolute_path": "/​path/​to/​images"},
        "labels_path": {"absolute_path": "/​path/​to/​annotations.json"},
        "label_field": "ground_truth"
    }
)

load_dataset(name="coco-dataset")  # Validate import

launch_app(dataset_name="coco-dataset")

execute_operator(
    operator_uri="@voxel51/​zoo/​apply_zoo_model",
    params={
        "tab": "BUILTIN",
        "model": "faster-rcnn-resnet50-fpn-coco-torch",
        "label_field": "predictions"
    }
)

set_view(exists=["predictions"]) 

Use Case 3: Import YOLO Dataset

execute_operator(
    operator_uri="@voxel51/​utils/​create_dataset",
    params={"name": "yolo-dataset", "persistent": true}
)

set_context(dataset_name="yolo-dataset")

execute_operator(
    operator_uri="@voxel51/​io/​import_samples",
    params={
        "import_type": "MEDIA_AND_LABELS",
        "dataset_type": "YOLOv5",
        "dataset_dir": {"absolute_path": "/​path/​to/​yolo/​dataset"},
        "label_field": "ground_truth"
    }
)

load_dataset(name="yolo-dataset")  

launch_app(dataset_name="yolo-dataset")

Use Case 4: Classification with Directory Tree

For a folder structure like:

/​dataset/
  /​cats/
    cat1.jpg
    cat2.jpg
  /​dogs/
    dog1.jpg
    dog2.jpg
execute_operator(
    operator_uri="@voxel51/​utils/​create_dataset",
    params={"name": "classification-dataset", "persistent": true}
)

set_context(dataset_name="classification-dataset")

execute_operator(
    operator_uri="@voxel51/​io/​import_samples",
    params={
        "import_type": "MEDIA_AND_LABELS",
        "dataset_type": "Image Classification Directory Tree",
        "dataset_dir": {"absolute_path": "/​path/​to/​dataset"},
        "label_field": "ground_truth"
    }
)

load_dataset(name="classification-dataset")  

launch_app(dataset_name="classification-dataset")

Troubleshooting

Error: "Dataset already exists"

  • Use a different dataset name
  • Or delete existing dataset first with @voxel51/​utils/​delete_dataset

Error: "No samples found"

  • Verify the directory path is correct
  • Check file extensions are supported
  • Ensure files are not in nested subdirectories (use recursive=true if needed)

Error: "Labels path not found"

  • Verify the labels file/​directory exists
  • Check the path is absolute, not relative

Error: "Model not found"

  • Check model name spelling
  • Verify model exists in FiftyOne Zoo
  • Use list_operators() and get_operator_schema() to discover available models

Error: "Missing dependency" (e.g., torch, ultralytics)

  • The MCP server detects missing dependencies
  • Response includes missing_package and install_command
  • Install the required package and restart MCP server

Slow inference

  • Use smaller model variant (e.g., yolov8n instead of yolov8x)
  • Reduce batch size
  • Consider delegated execution for large datasets

Best Practices

  1. Explore before importing - Always scan the directory first to understand the data
  2. Confirm with user - Present findings and get confirmation before creating datasets
  3. Use descriptive names - Dataset names and label fields should be meaningful
  4. Separate ground truth from predictions - Use different field names (e.g., ground_truth vs predictions)
  5. Start with fast models - Use lightweight models first, then upgrade if needed
  6. Check operator schemas - Use get_operator_schema() to discover available parameters

Resources

License

Copyright 2017-2025, Voxel51, Inc. Apache 2.0 License

More skills from aiskillstore

docx logo
aiskillstore/marketplace

docx

Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks

430 216
View
agent-development logo
aiskillstore/marketplace

agent-development

This handles everything around building autonomous agents for Claude Code plugins.

430 197
View
doc-coauthoring logo
aiskillstore/marketplace

doc-coauthoring

Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.

430 196
View
skill-development logo
aiskillstore/marketplace

skill-development

This is the meta-skill for building skills themselves.

430 196
View
canvas-design logo
aiskillstore/marketplace

canvas-design

Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.

430 193
View
webapp-testing logo
aiskillstore/marketplace

webapp-testing

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

430 191
View
hook-development logo
aiskillstore/marketplace

hook-development

Helps you build event-driven automation for Claude Code using hooks that trigger on tool use, session events, and stop conditions.

430 187
View
algorithmic-art logo
aiskillstore/marketplace

algorithmic-art

Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.

430 185
View
command-development logo
aiskillstore/marketplace

command-development

Shows Claude Code how to build slash commands from markdown files, covering the YAML frontmatter options, dynamic arguments with $1/$2...

430 185
View
plugin-structure logo
aiskillstore/marketplace

plugin-structure

This is your reference when scaffolding Claude Code plugins or figuring out why components aren't loading.

430 183
View
skill-installer logo
aiskillstore/marketplace

skill-installer

Install Codex skills into $CODEX_HOME/skills from a curated list or a GitHub repo path. Use when a user asks to list installable skills, install a curated skill, or install a skill from another repo (including private repos).

430 180
View
web-artifacts-builder logo
aiskillstore/marketplace

web-artifacts-builder

Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.

430 177
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View