Skip to content

Commit 2562c9e

Browse files
committed
fix(adetailer): normalize native detector model paths
1 parent fb45857 commit 2562c9e

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

rookieui/services/model_inventory.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from __future__ import annotations
22

33
import logging
4+
import ntpath
45
import os
56
import threading
67
import time
@@ -108,6 +109,13 @@
108109
)
109110

110111

112+
def _join_models_dir_path(models_dir: str, *relative_parts: str) -> str:
113+
# CRITICAL: folder_paths.models_dir may come from a Windows-style host snapshot even when tests run on Linux;
114+
# do not use the runner OS path module blindly or native detector paths will pick mixed separators.
115+
path_module = ntpath if "\\" in models_dir or (len(models_dir) >= 2 and models_dir[1] == ":") else os.path
116+
return path_module.normpath(path_module.join(models_dir, *relative_parts))
117+
118+
111119
def ensure_native_ultralytics_model_paths(folder_paths_module: Any | None) -> Any | None:
112120
if folder_paths_module is None:
113121
return None
@@ -122,7 +130,7 @@ def ensure_native_ultralytics_model_paths(folder_paths_module: Any | None) -> An
122130
# IMPORTANT: register native detector model folders here so RookieUI does not require an external detector pack
123131
# just to make host `folder_paths` aware of Ultralytics bbox/segm model locations.
124132
for folder_name, relative_parts in _NATIVE_ULTRALYTICS_MODEL_FOLDERS:
125-
full_path = os.path.join(models_dir, *relative_parts)
133+
full_path = _join_models_dir_path(models_dir, *relative_parts)
126134
try:
127135
add_model_folder_path(folder_name, full_path, is_default=True)
128136
except TypeError:

0 commit comments

Comments
 (0)