From e87d616b7acf338b830f58a523d5d3d5402b7e01 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Thu, 6 Mar 2025 21:41:56 +0900 Subject: [PATCH] fixed: normalize pip name package name in requirements is 'comfyui-frontend-package' but, package name from `pip freeze` is 'comfyui_frontend_package' but, package name from `uv pip freeze` is 'comfyui-frontend-package' https://github.com/ltdrdata/ComfyUI-Manager/pull/1615#issue-2898212382 --- glob/manager_core.py | 2 +- glob/manager_util.py | 13 ++++++++++--- pyproject.toml | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/glob/manager_core.py b/glob/manager_core.py index 1cdc2963..9373a7f6 100644 --- a/glob/manager_core.py +++ b/glob/manager_core.py @@ -43,7 +43,7 @@ import manager_downloader from node_package import InstalledNodePackage -version_code = [3, 30] +version_code = [3, 30, 1] version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '') diff --git a/glob/manager_util.py b/glob/manager_util.py index c561463b..5b1f554d 100644 --- a/glob/manager_util.py +++ b/glob/manager_util.py @@ -246,7 +246,8 @@ def get_installed_packages(renew=False): if y[0] == 'Package' or y[0].startswith('-'): continue - pip_map[y[0].lower()] = y[1] + normalized_name = y[0].lower().replace('-', '_') + pip_map[normalized_name] = y[1] except subprocess.CalledProcessError: logging.error("[ComfyUI-Manager] Failed to retrieve the information of installed pip packages.") return set() @@ -426,7 +427,12 @@ class PIPFixer: # fix missing frontend try: - if 'comfyui-frontend-package' not in new_pip_versions: + # NOTE: package name in requirements is 'comfyui-frontend-package' + # but, package name from `pip freeze` is 'comfyui_frontend_package' + # but, package name from `uv pip freeze` is 'comfyui-frontend-package' + # + # get_installed_packages returns normalized name (i.e. comfyui_frontend_package) + if 'comfyui_frontend_package' not in new_pip_versions: requirements_path = os.path.join(self.comfyui_path, 'requirements.txt') with open(requirements_path, 'r') as file: @@ -452,7 +458,8 @@ class PIPFixer: parsed = parse_requirement_line(x) need_to_reinstall = True - if parsed['package'] in new_pip_versions: + normalized_name = parsed['package'].lower().replace('-', '_') + if normalized_name in new_pip_versions: if 'version' in parsed and 'operator' in parsed: cur = StrictVersion(new_pip_versions[parsed['package']]) dest = parsed['version'] diff --git a/pyproject.toml b/pyproject.toml index cd01bd6e..c26402cb 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.30" +version = "3.30.1" license = { file = "LICENSE.txt" } dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions", "toml", "uv", "chardet"]