Pipeline Import and Export
Trained model downloads
You can download your trained models through the administrative interface.
Warning
Use caution when modifying data through the admin interface
- Open the admin interface at https://viame.kitware.com/girder (or
myserver.com/girderif you host your own instance) -
Navigate to your personal workspace by clicking My Folders under your user dropdown in the top right corner.

-
Navigate to the
VIAME/VIAME Training Resultsfolder and into the folder you wish to download
-
Select all items and download using the menu

Custom Pipeline Upload
It's possible to upload custom pipes to DIVE Web through the girder interface.
Warning
This feature is not yet standardized, and the instructions below may change.
- Open the girder interface at
/girderand create a new private folder calledMyPipelines- For our demo instance, open https://viame.kitware.com/girder
- Create a new folder in that private folder, and give it a name you'd like to associate with your new pipeline.
- Upload one or more files inside your new pipeline subfolder:
- A pipeline file ending in the
.pipefile extension - Whatever other model
.zipfiles are required by the pipe, named exactly as they appear in your.pipefile above.
- A pipeline file ending in the
- Finally, set the pipeline folder metadata key
trained_pipelinewith valuetrue. - Your new pipeline will be available under the
Run Pipeline -> Trainedmenu from the DIVE web app.

Accepting input
If your pipe must accept input, set the pipeline folder metadata property requires_input to true .
Including base pipelines
User-uploaded pipelines may depend on any pipe already installed from the base image or an addon using include <pipename>.pipe . Depending on other user-uploaded pipes is not supported.
Tip
KWIVER pipe files can be exported for use with DIVE using kwiver pipe-config
Pipe file headers
DIVE reads optional comment headers at the top of a .pipe file to decide how to present and run the pipeline. Headers are case-insensitive. Pipes without these headers behave as they always have.
Example:
1 2 3 4 5 6 | |
| Header | Meaning |
|---|---|
# Description: |
Human-readable summary shown in the Run Pipeline UI. May continue on following # comment lines until the next named header. |
# Input: / # Output: |
Declared media/annotation kinds for the pipe (used when discovering and categorizing static pipelines). |
# Requires Calibration: True |
Restricts the pipe to stereo datasets that have a calibration file attached. Values true, yes, and 1 are accepted. |
# Metadata File: <block>:<key> |
Opt-in: when the dataset has an attached Metadata File, DIVE appends a KWIVER override -s <block>:<key>=<path> at run time. Without this header, no metadata file is injected. |
# Image List Keys: <k> [k…] |
Opt-in: binds the run's per-camera input image list(s) to each listed KWIVER key. Keys may be space- or comma-separated. A key containing {cam} is expanded once per camera (1-based), e.g. stabilizer:image_list{cam} → image_list1, image_list2, …. A key without {cam} receives camera 1's list only. |
Metadata File vs Configuration File
These are different files with different jobs:
| Import field | What it is | Consumed by |
|---|---|---|
| Configuration File | DIVE JSON (meta / attributes, styles, FPS, …) |
DIVE itself |
| Metadata File | Opaque sidecar (.json, .txt, or .csv), e.g. a UAV flight log |
Only pipelines that declare # Metadata File: |
DIVE does not auto-discover a flight log in the media folder — the user must pick it at import (UI or CLI --metadata). The file format is opaque to DIVE; the KWIVER process behind the pipe owns the schema. Metadata is available on single-camera and multicamera imports alike; it is not stereo-gated (unlike calibration).
Note
Injection is opt-in and silent when either side is missing: if a pipe declares # Metadata File: but the dataset has no attached file (or the reverse), the job still runs without that -s override. Prefer attaching the sidecar at import for registration pipes that need it.
Tip
# Image List Keys: is intended for image-sequence (and multicam image) runs where DIVE builds line-separated image manifests. On video runs the bound value is the video path, which may not be what a registration-style process expects.