From 1762f3524ac13988e1040462736353185d8e4435 Mon Sep 17 00:00:00 2001 From: Thomas A Date: Sat, 24 May 2025 20:31:55 +0200 Subject: [PATCH] Check for existence of model.path & model.labelmap_path on config save. --- frigate/config/config.py | 4 ++++ frigate/detectors/detector_config.py | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/frigate/config/config.py b/frigate/config/config.py index 6ec048acd..4b6eb68aa 100644 --- a/frigate/config/config.py +++ b/frigate/config/config.py @@ -511,6 +511,10 @@ class FrigateConfig(FrigateBaseModel): elif detector_config.type == "edgetpu": model_config["path"] = "/edgetpu_model.tflite" + # Verify that the model path points to an existing file. + if not os.path.exists(model_config["path"]): + raise ValueError(f"Model path '{model_config['path']}' does not exist.") + model = ModelConfig.model_validate(model_config) model.check_and_load_plus_model(self.plus_api, detector_config.type) model.compute_model_hash() diff --git a/frigate/detectors/detector_config.py b/frigate/detectors/detector_config.py index 3893908d2..103b973c2 100644 --- a/frigate/detectors/detector_config.py +++ b/frigate/detectors/detector_config.py @@ -103,6 +103,12 @@ class ModelConfig(BaseModel): def __init__(self, **config): super().__init__(**config) + # Verify that the labelmap path points to an existing file. + if not os.path.exists(config.get("labelmap_path", "/labelmap.txt")): + raise ValueError( + f"Model labelmap_path '{config.get('labelmap_path', '/labelmap.txt')}' does not exist." + ) + self._merged_labelmap = { **load_labels(config.get("labelmap_path", "/labelmap.txt")), **config.get("labelmap", {}),