From fbbe8bc9104e35afc1534a8339803e3c33ac3338 Mon Sep 17 00:00:00 2001 From: Rick Love Date: Sat, 21 Sep 2024 21:29:02 -0500 Subject: [PATCH] FIX serious performance issue on every prompt --- exllama.py | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/exllama.py b/exllama.py index 179737a..e47c453 100644 --- a/exllama.py +++ b/exllama.py @@ -27,21 +27,29 @@ from folder_paths import add_model_folder_path, get_folder_paths, models_dir _CATEGORY = "zuellni/exllama" _MAPPING = "ZuellniExLlama" - class Loader: + _input_info = None + @classmethod def INPUT_TYPES(cls): - add_model_folder_path("llm", str(Path(models_dir) / "llm")) + def get_input_info(cls): + add_model_folder_path("llm", str(Path(models_dir) / "llm")) - for folder in get_folder_paths("llm"): - for path in Path(folder).rglob("*/"): - if (path / "config.json").is_file(): - parent = path.relative_to(folder).parent - cls._MODELS[str(parent / path.name)] = path + for folder in get_folder_paths("llm"): + for path in Path(folder).rglob("*/"): + if (path / "config.json").is_file(): + parent = path.relative_to(folder).parent + cls._MODELS[str(parent / path.name)] = path - models = list(cls._MODELS.keys()) - caches = list(cls._CACHES.keys()) - default = models[0] if models else None + models = list(cls._MODELS.keys()) + caches = list(cls._CACHES.keys()) + default = models[0] if models else None + + return models, caches, default + + if Loader._input_info is None: + Loader._input_info = get_input_info(cls) + models, caches, default = Loader._input_info return { "required": {