Import model

Dockerfile
First run can take longer while the worker pulls the configured Docker image.

Overview

Registers a model trained in Supervisely as an OvalBee model asset.

The node pulls the checkpoint from Supervisely Team Files and reads the experiment files next to it, so the framework, task type, and class names come across without you retyping them.

Import model Predict DEIM Evaluate object detection

Prerequisites

RequirementWhat you need
Supervisely credentialsAn existing supervisely secret with read access to the team files.
Supervisely experimentA finished training experiment whose checkpoint sits in a checkpoints folder inside the experiment folder.
Class names in SuperviselyThe class names the model predicts, recorded in model_meta.json, in experiment_info.json, or inside the checkpoint itself.

How it works

1

Reads experiment_info.json from the experiment folder, two levels above the checkpoint path, and stops there when it names no model, framework or task type — nothing is downloaded.

2

Collects the class names from model_meta.json, falling back to the checkpoint itself when that file is missing.

3

Downloads the checkpoint and stores it in OvalBee together with the experiment info and the training config when one is present.

4

Stores the checkpoint as a model asset, then registers it under the framework, task type, model name and classes it found so the pickers can find it.

FAQ

The full Team Files path of the checkpoint, for example /experiments/12_animals/checkpoints/best.pth. The experiment folder is taken two levels above that path, so a checkpoint stored anywhere else means the experiment files are not found.

Three sources, in order: model_meta.json in the experiment folder, then the path experiment_info.json points at, then the checkpoint state itself. The run fails when none of them yields class names, because a model without classes cannot be applied.

The run fails: the framework, task type and model name are what the model is registered under, and none of them can be guessed from a checkpoint file. Export the experiment from Supervisely with its info file.

OvalBee’s own keys, not Supervisely’s wording: YOLOv8 is registered as yolo and object detection as object_detection, because the model pickers of the predict, train and export nodes match those keys exactly. A task Supervisely trains but OvalBee has no node for, such as pose estimation, fails the run instead of being imported unusable.

The checkpoint, marked as the one to load, plus experiment_info.json when it exists and the training config when one of training_config.yaml, model_config.yml, or custom_config.yml is found next to it.

Run the node once per checkpoint. Each run imports the single file named in Checkpoint Path and registers it as its own model asset.

An imported model is marked imported in the registry, and the version records the Supervisely path it came from next to the framework, task type and model name that were detected.

Inputs

Supervisely credentials
secretRequired

Your Supervisely server address and API token, stored as a secret. Allowed credential types: supervisely. Key: SLY_SECRET.

Supervisely team ID
integerRequired

Supervisely team whose Team Files hold the checkpoint, as a numeric ID. Key: SLY_TEAM_ID.

Checkpoint path
stringRequired

Path to the checkpoint file in Supervisely Team Files (e.g. /experiments/…/checkpoints/best.pth). The experiment directory is inferred automatically. Key: CKPT_PATH.

Outputs

Model
model

Reference to the registry version created for the imported checkpoint, as <model id>@<version id>. It wires into the Model input of a predict, serve or evaluate node and pins it to exactly these weights, and the nodes that take a checkpoint asset - Export, Apply model - accept it too. Shown as an artifact. Key: MODEL.

JSON config

Machine-readable node interface for automation and advanced usage.

{
"name": "Import model",
"description": "Download a model checkpoint from Supervisely Team Files and register it as an OvalBee model asset. Reads experiment_info.json and model_meta.json to extract framework, task type, and class names automatically.",
"category": "Supervisely",
"namespace": "supervisely",
"templateKey": "supervisely/import_model",
"version": "v1",
"inputs": [
{
"key": "SLY_SECRET",
"label": "Supervisely credentials",
"type": "secret",
"description": "Your Supervisely server address and API token, stored as a secret.",
"required": true,
"default": null,
"visibleWhen": null,
"options": {
"types": [
"supervisely"
]
}
},
{
"key": "SLY_TEAM_ID",
"label": "Supervisely team ID",
"type": "number",
"description": "Supervisely team whose Team Files hold the checkpoint, as a numeric ID.",
"required": true,
"default": null,
"visibleWhen": null,
"options": {
"type": "integer"
}
},
{
"key": "CKPT_PATH",
"label": "Checkpoint path",
"type": "string",
"description": "Path to the checkpoint file in Supervisely Team Files (e.g. /experiments/.../checkpoints/best.pth). The experiment directory is inferred automatically.",
"required": true,
"default": null,
"visibleWhen": null
}
],
"outputs": [
{
"key": "MODEL",
"label": "Model",
"type": "model",
"description": "Reference to the registry version created for the imported checkpoint, as `<model id>@<version id>`. It wires into the Model input of a predict, serve or evaluate node and pins it to exactly these weights, and the nodes that take a checkpoint asset - Export, Apply model - accept it too.\n",
"artifact": true,
"badge": false,
"badgeOpens": null,
"hidden": false
}
],
"runtime": {
"type": "docker",
"requiresGpu": false,
"dockerImage": "cr.internal.supervisely.com/ovalbee-internal/nodes/deim:0.0.14"
}
}