Model Preparation#
Live Video Captioning needs at least one Vision Language Model (VLM) in ov_models/. Object detection is optional and uses models in ov_detection_models/.
The provided helper uses the ephemeral model-download container flow from the Model Download project in Open Edge Platform. It starts a temporary container, downloads or converts the model, writes the files to this repository, and removes the container when finished. No separate model-download setup is required.
Prerequisites#
Docker is installed and running.
curlandpython3are available on the host.The commands are run from the
live-video-captioningdirectory.For gated Hugging Face models, set a token first:
export HUGGINGFACEHUB_API_TOKEN=<your-huggingface-token>
Usage#
Use the helper script with the following arguments:
./model_download_scripts/download_models.sh \
--model <huggingface-model-id> \
--type <vlm|vision> \
--weight-format <int4|int8|fp16> \
--device <CPU|GPU|NPU>
Parameters:
--model: Hugging Face model identifier (for example,OpenGVLab/InternVL2-1B).--type: Model category. Usevlmfor Vision Language Models,visionfor object-detection models.--weight-format: Precision/quantization format. Supported values areint4,int8, andfp16.--device: Target conversion device (for example,CPU,GPUorNPU, depending on host support).
Weight format options:
Supported weight formats are int4, int8, and fp16. The default is int8.
Format |
Memory use |
Accuracy |
When to use |
|---|---|---|---|
|
Lowest |
Lower |
Memory-constrained systems |
|
Medium |
Good |
Recommended default |
|
Highest |
Best |
Maximum accuracy, more RAM required |
Download a VLM model#
You can use the following commands to run conversion for the desired target device. The corresponding models are generated under ov_models/.
For CPU:
./model_download_scripts/download_models.sh \ --model OpenGVLab/InternVL2-1B \ --type vlm \ --weight-format int8 \ --device CPU
For GPU:
./model_download_scripts/download_models.sh \ --model OpenGVLab/InternVL2-1B \ --type vlm \ --weight-format int8 \ --device GPU
For NPU, use
int4quantization:./model_download_scripts/download_models.sh \ --model OpenGVLab/InternVL2-1B \ --type vlm \ --weight-format int4 \ --device NPU
Note: NPU currently requires
int4quantization for VLM conversion. If you pass--device NPUwithint8orfp16, the script automatically overrides it toint4.
You can also download and convert for multiple target devices in a single command by passing a comma-separated --device list:
./model_download_scripts/download_models.sh \
--model OpenGVLab/InternVL2-1B \
--type vlm \
--weight-format int8 \
--device CPU,GPU,NPU
Downloaded VLM models are stored under per-device directories in ov_models/.
Each VLM output directory is placed under its target device path so the UI can automatically associate models with the selected VLM Device:
|
Example Output Directory |
VLM Device tag |
|---|---|---|
|
|
|
|
|
|
|
|
|
VLM Models Validated#
The following VLM models are validated:
Model Name |
Supported Hardware Devices |
OVMS Release TAG Version |
|---|---|---|
OpenGVLab/InternVL2-1B |
CPU, GPU, NPU |
v2026.1 |
OpenGVLab/InternVL2-2B |
CPU, GPU, NPU |
v2026.1 |
openbmb/MiniCPM-V-2_6 |
CPU, GPU, NPU |
v2026.1 |
Qwen/Qwen2-VL-2B-Instruct |
CPU, GPU, NPU |
v2025.4.1 |
Note:
OVMS_RELEASE_TAGin.envcontrols the OVMS image version used by the model download/conversion flow. Refer to the validated-model table above, or consult the official OpenVINO documentation for supported models and their corresponding OVMS versions. Using a different tag can change the bundledtransformers/OpenVINO toolchain and may cause conversion failures.Note: If you want to use newer Hugging Face models, you may need a newer OVMS/OpenVINO stack for conversion, which means updating
OVMS_RELEASE_TAG.Note: Runtime compatibility also matters. Live Video Captioning runs models with DL Streamer, so DL Streamer/OpenVINO must also support the converted model at runtime. If you test newer stacks, you can try weekly images from Docker Hub by updating compose.yaml or Helm chart values.yaml. Weekly images may include stability issues. As of the time of writing, the latest stable DL Streamer release is
2026.1.0, built on top ofOpenVINO v2026.1.
Optional: Download an Object-Detection Model#
Download a YOLO model only if you plan to enable the object-detection pipeline:
./model_download_scripts/download_models.sh --model yolov8s --type vision
The model is prepared under ov_detection_models/.
Then enable detection in .env:
ENABLE_DETECTION_PIPELINE=true
Troubleshooting#
If Docker cannot pull
intel/model-download:<tag>, check theMODEL_DOWNLOAD_IMAGE_TAGvalue in.env(defaults tolatest; this is independent of the application imageTAG).If a gated model fails with an authentication error, set
HUGGINGFACEHUB_API_TOKENand rerun the command.If a download process is interrupted or fails due to network issues, remove the
ovms_modelfolder and the model-specific folder from the failed run (typically named after the model you specified in command depends on the model type:ov_models/for VLMs,ov_detection_models/for vision models). Then rerun the command. The ephemeral model-download container is automatically cleaned up when the helper exits.