Upload model

Overview

Registers a PyTorch checkpoint from your machine as a new version in the workspace model registry.

Drop a .pt or .pth file onto the node, say what the model does, and the run turns it into a registered model version that the predict, train, and export nodes of its framework can pick.

Checkpoint file Upload model Model version

Prerequisites

RequirementWhat you need
Checkpoint fileA PyTorch .pt or .pth file on your local machine.

How it works

1

Upload a checkpoint with the drag-and-drop widget, which fills Storage path with the staging location.

2

Scans that location and keeps every .pt and .pth file it finds.

3

Marks which checkpoint to load later and stores the files as the model’s weights.

4

Registers them as a new version under the task type, classes, and Model info fields you gave, so the model pickers can find it, and returns the version on Model.

FAQ

The one named by model_name in Model info, or by the checkpoint’s filename when that is empty. If the workspace already has a model with that name, the upload is added to it as its next version, otherwise a new model is created. Every run registers a new version, even when you upload the same file again.

Nothing was uploaded. The drag-and-drop widget fills Storage path for you, so an empty field means the file never reached storage.

The field is optional in the interface but the run rejects an empty value. Downstream nodes match a model by its task, so a model registered without one cannot be picked.

A single uploaded file is always the best one. Upload several and the ones whose filename contains best are marked instead. When several files are uploaded and none matches, no checkpoint is marked and the run logs a warning.

The uploaded folder holds no .pt or .pth file. Other formats, including ONNX and TensorRT exports, are not accepted here.

Pick the ontology whose classes the model predicts, and tick a subset only when the model predicts just those. Picking the ontology without ticking anything takes all of its classes. They are stored in the ontology’s order, which has to match the order the model outputs them in, because predictions are named by position. A classification model’s classes are stored as tags, every other task’s as object classes.

A YAML mapping. model_name, framework, baseline_model, and img_size are recognized: model_name names the model in the registry, and baseline_model is the upstream architecture the checkpoint was fine-tuned from (yolo11m), which is what the predict and train nodes rebuild it with. Any other key is kept with the files as extra info, verbatim. Content that is not valid YAML is ignored, and the run then fails because framework is missing.

The model pickers of the predict, train, and export nodes filter on it, so a model without the right framework can’t be picked anywhere. Leave it empty and the run fails, so fill it with the framework the checkpoint was trained with, such as yolo or deim. What you type is turned into that key: YOLOv8 and Grounding DINO are registered as yolo and grounding_dino.

A YOLO checkpoint carries everything Predict YOLO and Train YOLO need. DEIM and EdgeCrafter prediction also read the training config stored with a trained version, which an upload doesn’t include, so use such a checkpoint as a starting point for training. For those frameworks, baseline_model must name the architecture exactly as the train node knows it, e.g. deim_dfine_l or ecdet_s.

Inputs

Classes
ontology

Classes the uploaded model predicts, stored with it in the registry. Key: CLASSES.

Task type
select

Task the model performs. Upload fails without it, since the nodes that take a model select by task. Key: TASK_TYPE.

Options:

  • Object Detection (object_detection)
  • Classification (classification)
  • Semantic Segmentation (semantic_segmentation)
  • Instance Segmentation (instance_segmentation)
Model info
yaml

Details of the uploaded model in YAML. Framework is required - predict, train and export nodes filter on it, so a model without one cannot be picked anywhere. Key: MODEL_INFO.

Storage path
string

S3 location your checkpoint was uploaded to. Filled in automatically when you drop a .pt or .pth file onto the node, and the run fails while it is empty. Placeholder: s3://workspace/user-uploads/%DateTime%/. Key: STORAGE_PATH.

Outputs

Model
model

Reference to the registry version created for the uploaded checkpoint, as <model id>@<version id>. It wires into the Model input of a predict, train, export or evaluate node and pins it to exactly these weights. Shown as an artifact. Key: MODEL.

JSON config

Machine-readable node interface for automation and advanced usage.

{
"name": "Upload model",
"description": "Upload a local .pt or .pth checkpoint and register it as a new version in the workspace model registry.",
"category": "Models",
"namespace": "ovalbee",
"templateKey": "models/general/upload_model",
"version": "v1",
"inputs": [
{
"key": "CLASSES",
"label": "Classes",
"type": "ontology",
"description": "Classes the uploaded model predicts, stored with it in the registry.",
"required": false,
"default": null,
"visibleWhen": null,
"options": {
"selectable": true
}
},
{
"key": "TASK_TYPE",
"label": "Task type",
"type": "select",
"description": "Task the model performs. Upload fails without it, since the nodes that take a model select by task.",
"required": false,
"default": null,
"visibleWhen": null,
"options": {
"options": [
{
"label": "Object Detection",
"value": "object_detection"
},
{
"label": "Classification",
"value": "classification"
},
{
"label": "Semantic Segmentation",
"value": "semantic_segmentation"
},
{
"label": "Instance Segmentation",
"value": "instance_segmentation"
}
]
}
},
{
"key": "MODEL_INFO",
"label": "Model info",
"type": "yaml",
"description": "Details of the uploaded model in YAML. Framework is required - predict, train and export nodes filter on it, so a model without one cannot be picked anywhere.",
"required": false,
"default": "model_name: # names the model in the registry; the checkpoint filename if empty\nframework: # e.g. yolo, deim, timm\nbaseline_model: # e.g. yolo11m\nimg_size: # input image size, e.g. 640",
"visibleWhen": null
},
{
"key": "STORAGE_PATH",
"label": "Storage path",
"type": "string",
"description": "S3 location your checkpoint was uploaded to. Filled in automatically when you drop a .pt or .pth file onto the node, and the run fails while it is empty.",
"required": false,
"default": "",
"visibleWhen": null,
"options": {
"placeholder": "s3://workspace/user-uploads/%DateTime%/"
}
}
],
"outputs": [
{
"key": "MODEL",
"label": "Model",
"type": "model",
"description": "Reference to the registry version created for the uploaded checkpoint, as `<model id>@<version id>`. It wires into the Model input of a predict, train, export or evaluate node and pins it to exactly these weights.\n",
"artifact": true,
"badge": false,
"badgeOpens": null,
"hidden": false
}
],
"runtime": {
"type": "python",
"requiresGpu": false,
"dockerImage": null
},
"widgets": {
"widget": {
"id": "import-drag-drop",
"settings": {}
}
}
}