import os import sys import hashlib import importlib from aiohttp import web import server import urllib.parse import struct import json import requests requests.packages.urllib3.disable_warnings() import folder_paths config_loader_path = os.path.join(os.path.dirname(__file__), 'config_loader.py') config_loader_spec = importlib.util.spec_from_file_location('config_loader', config_loader_path) config_loader = importlib.util.module_from_spec(config_loader_spec) config_loader_spec.loader.exec_module(config_loader) comfyui_model_uri = os.path.join(os.getcwd(), "models") extension_uri = os.path.join(os.getcwd(), "custom_nodes" + os.path.sep + "ComfyUI-Model-Manager") index_uri = os.path.join(extension_uri, "index.json") #checksum_cache_uri = os.path.join(extension_uri, "checksum_cache.txt") no_preview_image = os.path.join(extension_uri, "no-preview.png") ui_settings_uri = os.path.join(extension_uri, "ui_settings.yaml") image_extensions = (".apng", ".gif", ".jpeg", ".jpg", ".png", ".webp") #video_extensions = (".avi", ".mp4", ".webm") # TODO: Requires ffmpeg or cv2. Cache preview frame? #hash_buffer_size = 4096 def folder_paths_get_folder_paths(folder_name): # API function crashes querying unknown model folder paths = folder_paths.folder_names_and_paths if folder_name in paths: return paths[folder_name][0][:] maybe_path = os.path.join(comfyui_model_uri, folder_name) if os.path.exists(maybe_path): return [maybe_path] return [] def folder_paths_get_supported_pt_extensions(folder_name): # Missing API function paths = folder_paths.folder_names_and_paths if folder_name in paths: return paths[folder_name][1] return set([".ckpt", ".pt", ".bin", ".pth", ".safetensors"]) def get_safetensor_header(path): try: with open(path, "rb") as f: length_of_header = struct.unpack("