improved: advanced missing node detection based on embedded info

https://github.com/ltdrdata/ComfyUI-Manager/issues/1445

feat: Custom Nodes In Workflow
https://github.com/ltdrdata/ComfyUI-Manager/issues/990
https://github.com/ltdrdata/ComfyUI-Manager/issues/127

improved: show version on main dialog
modified: aux_id - use github_id if possible
removed: `fetch updates` button
This commit is contained in:
Dr.Lt.Data
2025-02-24 21:18:42 +09:00
parent 76d2206058
commit 4fd17b0bf5
6 changed files with 212 additions and 42 deletions

View File

@@ -52,6 +52,14 @@ def git_url(fullpath):
def normalize_url(url) -> str:
github_id = normalize_to_github_id(url)
if github_id is not None:
url = f"https://github.com/{github_id}"
return url
def normalize_to_github_id(url) -> str:
if 'github' in url or (GITHUB_ENDPOINT is not None and GITHUB_ENDPOINT in url):
author = os.path.basename(os.path.dirname(url))
@@ -62,9 +70,9 @@ def normalize_url(url) -> str:
if repo_name.endswith('.git'):
repo_name = repo_name[:-4]
url = f"https://github.com/{author}/{repo_name}"
return f"{author}/{repo_name}"
return url
return None
def get_url_for_clone(url):

View File

@@ -42,7 +42,7 @@ import manager_downloader
from node_package import InstalledNodePackage
version_code = [3, 25, 1]
version_code = [3, 26]
version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '')
@@ -1472,7 +1472,7 @@ def identify_node_pack_from_path(fullpath):
# cnr
cnr = cnr_utils.read_cnr_info(fullpath)
if cnr is not None:
return module_name, cnr['version'], cnr['id']
return module_name, cnr['version'], cnr['id'], None
return None
else:
@@ -1480,10 +1480,18 @@ def identify_node_pack_from_path(fullpath):
cnr_id = cnr_utils.read_cnr_id(fullpath)
commit_hash = git_utils.get_commit_hash(fullpath)
github_id = git_utils.normalize_to_github_id(repo_url)
if github_id is None:
try:
github_id = os.path.basename(repo_url)
except:
logging.warning(f"[ComfyUI-Manager] unexpected repo url: {repo_url}")
github_id = module_name
if cnr_id is not None:
return module_name, commit_hash, cnr_id
return module_name, commit_hash, cnr_id, github_id
else:
return module_name, commit_hash, ''
return module_name, commit_hash, '', github_id
def get_installed_node_packs():
@@ -1501,7 +1509,7 @@ def get_installed_node_packs():
is_disabled = not y.endswith('.disabled')
res[info[0]] = { 'ver': info[1], 'cnr_id': info[2], 'enabled': is_disabled }
res[info[0]] = { 'ver': info[1], 'cnr_id': info[2], 'aux_id': info[3], 'enabled': is_disabled }
disabled_dirs = os.path.join(x, '.disabled')
if os.path.exists(disabled_dirs):
@@ -1514,7 +1522,7 @@ def get_installed_node_packs():
if info is None:
continue
res[info[0]] = { 'ver': info[1], 'cnr_id': info[2], 'enabled': False }
res[info[0]] = { 'ver': info[1], 'cnr_id': info[2], 'aux_id': info[3], 'enabled': False }
return res