| import json |
| import os |
| import folder_paths |
| import server |
| from .utils import find_tags |
|
|
| class easyModelManager: |
|
|
| def __init__(self): |
| self.img_suffixes = [".png", ".jpg", ".jpeg", ".gif", ".webp", ".bmp", ".tiff", ".svg", ".tif", ".tiff"] |
| self.default_suffixes = [".ckpt", ".pt", ".bin", ".pth", ".safetensors"] |
| self.models_config = { |
| "checkpoints": {"suffix": self.default_suffixes}, |
| "loras": {"suffix": self.default_suffixes}, |
| "unet": {"suffix": self.default_suffixes}, |
| } |
| self.model_lists = {} |
|
|
| def find_thumbnail(self, model_type, name): |
| file_no_ext = os.path.splitext(name)[0] |
| for ext in self.img_suffixes: |
| full_path = folder_paths.get_full_path(model_type, file_no_ext + ext) |
| if os.path.isfile(str(full_path)): |
| return full_path |
| return None |
|
|
| def get_model_lists(self, model_type): |
| if model_type not in self.models_config: |
| return [] |
| filenames = folder_paths.get_filename_list(model_type) |
| model_lists = [] |
| for name in filenames: |
| model_suffix = os.path.splitext(name)[-1] |
| if model_suffix not in self.models_config[model_type]["suffix"]: |
| continue |
| else: |
| cfg = { |
| "name": os.path.basename(os.path.splitext(name)[0]), |
| "full_name": name, |
| "remark": '', |
| "file_path": folder_paths.get_full_path(model_type, name), |
| "type": model_type, |
| "suffix": model_suffix, |
| "dir_tags": find_tags(name), |
| "cover": self.find_thumbnail(model_type, name), |
| "metadata": None, |
| "sha256": None |
| } |
| model_lists.append(cfg) |
|
|
| return model_lists |
|
|
| def get_model_info(self, model_type, model_name): |
| pass |
|
|
| |
| |
| |