Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
Python Linting / Run Pylint (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.10, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.11, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.12, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-unix-nightly (12.1, , linux, 3.11, [self-hosted Linux], nightly) (push) Has been cancelled
Execution Tests / test (macos-latest) (push) Has been cancelled
Execution Tests / test (ubuntu-latest) (push) Has been cancelled
Execution Tests / test (windows-latest) (push) Has been cancelled
Test server launches without errors / test (push) Has been cancelled
Unit Tests / test (macos-latest) (push) Has been cancelled
Unit Tests / test (ubuntu-latest) (push) Has been cancelled
Unit Tests / test (windows-2022) (push) Has been cancelled
Includes 30 custom nodes committed directly, 7 Civitai-exclusive loras stored via Git LFS, and a setup script that installs all dependencies and downloads HuggingFace-hosted models on vast.ai. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
58 lines
2.0 KiB
Python
58 lines
2.0 KiB
Python
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
|
|
|
|
# if __name__ == "__main__":
|
|
# manager = easyModelManager()
|
|
# print(manager.get_model_lists("checkpoints")) |