|
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 |
|
|
|
|
|
|
|
|