From 808580b771dd2b396b96125dedce93c4a88e1142 Mon Sep 17 00:00:00 2001 From: Ethanfel Date: Sun, 5 Apr 2026 09:11:09 +0200 Subject: [PATCH] fix: guard omnivoice import in loader.py so node classes are importable without package Wrap `from omnivoice import OmniVoice` in a try/except ImportError, setting OmniVoice=None when absent. Add a clear runtime ImportError in load_model() so users get an actionable message. Allows `from nodes.loader import OmniVoiceModelLoader` to succeed outside of pytest (where conftest.py injects the mock) while keeping all 13 tests green. Co-Authored-By: Claude Sonnet 4.6 --- nodes/loader.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/nodes/loader.py b/nodes/loader.py index 9686d3b..f1d1ee7 100644 --- a/nodes/loader.py +++ b/nodes/loader.py @@ -1,7 +1,10 @@ import os import torch -from omnivoice import OmniVoice +try: + from omnivoice import OmniVoice +except ImportError: + OmniVoice = None # deferred; will raise at runtime if package is missing try: import folder_paths @@ -46,6 +49,11 @@ class OmniVoiceModelLoader: CATEGORY = "OmniVoice" def load_model(self, model_source, device, dtype, local_path=""): + if OmniVoice is None: + raise ImportError( + "omnivoice is not installed. Run: pip install omnivoice" + ) + if model_source == "Local path" and local_path: source = local_path else: