diff --git a/README.md b/README.md index 1c2d6500..1997a267 100644 --- a/README.md +++ b/README.md @@ -256,7 +256,7 @@ The following settings are applied based on the section marked as `is_default`. [default] git_exe = use_uv = - channel_url = https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main + default_cache_is_channel_url = bypass_ssl = file_logging = windows_selector_event_loop_policy = diff --git a/glob/manager_core.py b/glob/manager_core.py index cc6d56ed..5140f6a3 100644 --- a/glob/manager_core.py +++ b/glob/manager_core.py @@ -42,7 +42,7 @@ import manager_downloader from node_package import InstalledNodePackage -version_code = [3, 17, 3] +version_code = [3, 17, 4] version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '') @@ -1593,6 +1593,7 @@ def read_config(): 'git_exe': default_conf['git_exe'] if 'git_exe' in default_conf else '', 'use_uv': default_conf['use_uv'].lower() == 'true' if 'use_uv' in default_conf else False, 'channel_url': default_conf['channel_url'] if 'channel_url' in default_conf else DEFAULT_CHANNEL, + 'default_cache_is_channel_url': default_conf['default_cache_is_channel_url'].lower() == 'true' if 'default_cache_is_channel_url' in default_conf else False, 'share_option': default_conf['share_option'] if 'share_option' in default_conf else 'all', 'bypass_ssl': default_conf['bypass_ssl'].lower() == 'true' if 'bypass_ssl' in default_conf else False, 'file_logging': default_conf['file_logging'].lower() == 'true' if 'file_logging' in default_conf else True, @@ -1613,6 +1614,7 @@ def read_config(): 'git_exe': '', 'use_uv': False, 'channel_url': DEFAULT_CHANNEL, + 'default_cache_is_channel_url': False, 'share_option': 'all', 'bypass_ssl': False, 'file_logging': True, diff --git a/glob/manager_server.py b/glob/manager_server.py index 0fb1de16..e78a35a6 100644 --- a/glob/manager_server.py +++ b/glob/manager_server.py @@ -1578,7 +1578,11 @@ cm_global.register_api('cm.try-install-custom-node', confirm_try_install) async def default_cache_update(): channel_url = core.get_config()['channel_url'] async def get_cache(filename): - uri = f"{channel_url}/{filename}" + if core.get_config()['default_cache_is_channel_url']: + uri = f"{channel_url}/{filename}" + else: + uri = f"{core.DEFAULT_CHANNEL}/{filename}" + cache_uri = str(manager_util.simple_hash(uri)) + '_' + filename cache_uri = os.path.join(manager_util.cache_dir, cache_uri) diff --git a/glob/manager_util.py b/glob/manager_util.py index 63d3c022..b613dfad 100644 --- a/glob/manager_util.py +++ b/glob/manager_util.py @@ -130,7 +130,12 @@ async def get_data(uri, silent=False): with open(uri, "r", encoding="utf-8") as f: json_text = f.read() - json_obj = json.loads(json_text) + try: + json_obj = json.loads(json_text) + except Exception as e: + logging.error(f"[ComfyUI-Manager] An error occurred while fetching '{uri}': {e}") + + return {} if not silent: print(" [DONE]") diff --git a/pyproject.toml b/pyproject.toml index bd7b5712..fccadd02 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "comfyui-manager" description = "ComfyUI-Manager provides features to install and manage custom nodes for ComfyUI, as well as various functionalities to assist with ComfyUI." -version = "3.17.3" +version = "3.17.4" license = { file = "LICENSE.txt" } dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions"]