Repository Analysis

Comfy-Org/ComfyUI-Manager

ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custom nodes of ComfyUI. Furthermore, this extension provides a hub feature and convenience functions to access a wide range of information within ComfyUI.

2.9 Likely human-written View on GitHub
2.9
Adjusted Score
2.9
Raw Score
100%
Time Factor
2026-05-29
Last Push
14,842
Stars
Python
Language
103,183
Lines of Code
83
Files
306
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 2MEDIUM 31LOW 273

Pattern Findings

306 matches across 11 categories. Click a row to expand file-level details.

Excessive Try-Catch Wrapping113 hits · 123 pts
SeverityFileLineSnippet
LOWjson-checker.py176 except Exception as e:
LOWscanner.py458 except Exception:
LOWscanner.py1251 except Exception as e:
LOWscanner.py1258 except Exception as e:
LOWscanner.py1359 except Exception as e:
LOWscanner.py1554 except Exception as e:
LOWscanner.py1571 except Exception as e:
MEDIUMcm-cli.py179 print("Error: folder_paths module is not available")
LOWcm-cli.py343 except Exception as e:
LOWcm-cli.py609 except Exception as e:
LOWcm-cli.py1134 except Exception:
MEDIUMcm-cli.py64def check_comfyui_hash():
MEDIUMprestartup_script.py292def fileno(self):
MEDIUMprestartup_script.py457def ensure_dependencies():
MEDIUMprestartup_script.py849def check_windows_event_loop_policy():
LOWprestartup_script.py114 except Exception:
LOWprestartup_script.py352 except Exception:
LOWprestartup_script.py369 except Exception:
LOWprestartup_script.py453except Exception as e:
LOWprestartup_script.py522 except Exception:
LOWprestartup_script.py624 except Exception as e:
LOWprestartup_script.py749 except Exception as e:
LOWprestartup_script.py795 except Exception as e:
LOWprestartup_script.py862 except Exception as e:
LOWprestartup_script.py864 except Exception:
LOWgit_helper.py123 except Exception as e:
LOWgit_helper.py239 except Exception as e:
MEDIUMgit_helper.py255 print(f"Error checking out the ComfyUI: {str(e)}")
LOWgit_helper.py324 except Exception:
LOWgit_helper.py428 except Exception as e:
LOWgit_helper.py527except Exception as e:
MEDIUMgit_helper.py85def gitcheck(path, do_fetch=False):
MEDIUMgit_helper.py390def apply_snapshot(path):
LOWscripts/colab-dependencies.py17 except Exception as e:
MEDIUMglob/manager_core.py2403 print(f"An error occurred during the execution of the uninstall.py script. Only the '{dir_path}'
MEDIUMglob/manager_core.py2408 print(f"An error occurred during the execution of the disable.py script. Only the '{dir_path}' w
MEDIUMglob/manager_core.py74def get_custom_nodes_paths():
MEDIUMglob/manager_core.py1717def read_config():
MEDIUMglob/manager_core.py1859def try_rmtree(title, fullpath):
MEDIUMglob/manager_core.py2148def is_valid_url(url):
MEDIUMglob/manager_core.py2528def update_to_stable_comfyui(repo_path):
MEDIUMglob/manager_core.py2686def get_installed_pip_packages():
LOWglob/manager_core.py2414 except Exception as e:
LOWglob/manager_core.py2682 except Exception:
LOWglob/manager_core.py2691 except Exception as e:
LOWglob/manager_core.py3410 except Exception:
LOWglob/manager_core.py3415 except Exception:
LOWglob/manager_core.py3424 except Exception:
LOWglob/manager_core.py245except Exception:
LOWglob/manager_core.py676 except Exception:
LOWglob/manager_core.py1380 except Exception as e:
LOWglob/manager_core.py1415 except Exception as e:
LOWglob/manager_core.py1422 except Exception:
LOWglob/manager_core.py1752 except Exception:
LOWglob/manager_core.py1862 except Exception as e:
LOWglob/manager_core.py1930 except Exception:
LOWglob/manager_core.py2103 except Exception as e:
LOWglob/manager_core.py2234 except Exception as e:
LOWglob/manager_core.py2316 except Exception as e:
LOWglob/manager_core.py2343 except Exception as e:
53 more matches not shown…
Deep Nesting94 hits · 70 pts
SeverityFileLineSnippet
LOWjson-checker.py64
LOWjson-checker.py154
LOWscanner.py43
LOWscanner.py125
LOWscanner.py277
LOWscanner.py331
LOWscanner.py468
LOWscanner.py517
LOWscanner.py551
LOWscanner.py667
LOWscanner.py704
LOWscanner.py735
LOWscanner.py818
LOWscanner.py928
LOWscanner.py941
LOWscanner.py971
LOWscanner.py988
LOWscanner.py1025
LOWscanner.py1205
LOWscanner.py1222
LOWscanner.py1263
LOWscanner.py1444
LOWscanner.py1310
LOWcm-cli.py187
LOWcm-cli.py418
LOWcm-cli.py1191
LOWcm-cli.py1246
LOWcm-cli.py138
LOWprestartup_script.py535
LOWprestartup_script.py631
LOWprestartup_script.py717
LOWprestartup_script.py724
LOWprestartup_script.py305
LOWprestartup_script.py411
LOWprestartup_script.py590
LOWgit_helper.py23
LOWgit_helper.py147
LOWgit_helper.py258
LOWgit_helper.py343
LOWgit_helper.py390
LOWgit_helper.py436
LOWtests/test_csrf_content_type_helper.py31
LOWscripts/colab-dependencies.py5
LOWglob/manager_core.py274
LOWglob/manager_core.py300
LOWglob/manager_core.py351
LOWglob/manager_core.py1592
LOWglob/manager_core.py1630
LOWglob/manager_core.py1812
LOWglob/manager_core.py1867
LOWglob/manager_core.py1971
LOWglob/manager_core.py2014
LOWglob/manager_core.py2169
LOWglob/manager_core.py2279
LOWglob/manager_core.py2379
LOWglob/manager_core.py2422
LOWglob/manager_core.py2486
LOWglob/manager_core.py2619
LOWglob/manager_core.py2665
LOWglob/manager_core.py2709
34 more matches not shown…
Hyper-Verbose Identifiers62 hits · 54 pts
SeverityFileLineSnippet
LOWscanner.py517def _extract_display_name_mappings(code_text: str) -> Set[str]:
LOWscanner.py667def _fallback_classname_resolver(code_text: str, file_path: Optional[Path]) -> Set[str]:
LOWscanner.py704def _fallback_item_assignment(code_text: str) -> Set[str]:
LOWscanner.py735def _fallback_dict_comprehension(code_text: str, file_path: Optional[Path] = None) -> Set[str]:
LOWscanner.py818def _fallback_import_class_names(code_text: str, file_path: Optional[Path] = None) -> Set[str]:
LOWscanner.py903def _fallback_empty_dict_detector(code_text: str, file_path: Optional[Path], verbose: bool = False) -> None:
LOWscanner.py971def extract_node_id_from_schema(class_node):
LOWscanner.py1237def clone_or_pull_git_repository(git_url):
LOWcm-cli.py169 def get_restore_snapshot_path():
LOWcm-cli.py561def get_all_installed_node_specs():
LOWprestartup_script.py56def register_message_collapse(f):
LOWprestartup_script.py61def is_import_failed_extension(name):
LOWprestartup_script.py215def extract_origin_module_from_strings(file_paths):
LOWprestartup_script.py631def execute_lazy_install_script(repo_path, executable):
LOWprestartup_script.py849def check_windows_event_loop_policy():
LOWgit_helper.py258def checkout_custom_node_hash(git_custom_node_infos):
LOWgit_helper.py343def invalidate_custom_node_file(file_custom_node_infos):
LOWjs/comfyui-gui-builder.js134export function buildGuiFrameCustomHeader(dialogId, customHeader, content, owner) {
LOWjs/comfyui-manager.js481function showVersionSelectorDialog(versions, current, onSelect) {
LOWjs/comfyui-share-common.js41export function getPotentialOutputsAndOutputNodes(nodes) {
LOWjs/comfyui-share-common.js348 function createShareButtonsWithDescriptions() {
LOWtests/test_csrf_content_type_helper.py84 def test_form_urlencoded_rejected(self):
LOWtests/test_csrf_content_type_helper.py88 def test_multipart_form_data_rejected(self):
LOWtests/test_csrf_content_type_helper.py98 def test_no_content_type_allowed(self):
LOWtests/test_csrf_content_type_helper.py115 def test_application_json_allowed(self):
LOWscripts/colab-dependencies.py5def get_enabled_subdirectories_with_files(base_directory):
LOWglob/manager_core.py767 def add_to_cnr_inactive_nodes(self, node_id, ver, fullpath):
LOWglob/manager_core.py775 def get_from_cnr_active_nodes(self, node_id):
LOWglob/manager_core.py782 def get_from_cnr_inactive_nodes(self, node_id, ver=None):
LOWglob/manager_core.py2686def get_installed_pip_packages():
LOWglob/manager_core.py62def get_default_custom_nodes_path():
LOWglob/manager_core.py127def extract_base_custom_nodes_dir(x:str):
LOWglob/manager_core.py501 def resolve_unspecified_version(self, node_name, guess_mode=None):
LOWglob/manager_core.py1023 def cnr_switch_version_instant(self, node_id, version_spec=None, instant_execution=True, no_deps=False, return_posti
LOWglob/manager_core.py1560def identify_node_pack_from_path(fullpath):
LOWglob/manager_core.py1666 def get_current_preview_method(self):
LOWglob/manager_core.py2014def git_repo_update_check_with(path, do_fetch=False, do_update=False, no_deps=False):
LOWglob/manager_core.py2162def extract_url_and_commit_id(s):
LOWglob/manager_core.py2641def lookup_installed_custom_nodes_legacy(repo_name):
LOWglob/manager_core.py2665def check_state_of_git_node_pack_single(item, do_fetch=False, do_update_check=True, do_update=False):
LOWglob/manager_core.py2783async def save_snapshot_with_postfix(postfix, path=None, custom_nodes_only = False):
LOWglob/manager_core.py2810async def extract_nodes_from_workflow(filepath, mode='local', channel_url='default'):
LOWglob/manager_server.py109def is_allowed_security_level(level):
LOWglob/manager_server.py147 def get_current_preview_method(self):
LOWglob/manager_server.py330def _reject_simple_form_content_type(request):
LOWglob/manager_server.py428def check_state_of_git_node_pack(node_packs, do_fetch=False, do_update_check=True, do_update=False):
LOWglob/manager_server.py756async def fetch_customnode_mappings(request):
LOWglob/manager_server.py967async def fetch_customnode_alternatives(request):
LOWglob/manager_server.py1443async def install_custom_node_git_url(request):
LOWglob/manager_server.py1572async def check_whitelist_for_model(item):
LOWglob/manager_server.py1628async def set_preview_method_handler(request):
LOWglob/manager_server.py1658async def set_component_policy_handler(request):
LOWglob/manager_server.py1671async def set_update_policy_handler(request):
LOWglob/manager_util.py170def is_file_created_within_one_day(file_path):
LOWglob/share_3rdparty.py168async def api_get_comfyworkflows_auth(request):
LOWglob/share_3rdparty.py179async def set_esheep_workflow_and_images(request):
LOWglob/share_3rdparty.py187async def get_esheep_workflow_and_images(request):
LOWglob/share_3rdparty.py210def has_provided_comfyworkflows_auth(comfyworkflows_sharekey):
LOWglob/cm_global.py88def add_on_extension_registered(k, extension_name, f):
LOWglob/manager_migration.py224def _handle_first_update_migration(user_dir, legacy_dir, manager_files_path):
2 more matches not shown…
AI Slop Vocabulary8 hits · 17 pts
SeverityFileLineSnippet
MEDIUMalter-list.json154 "id":"https://github.com/spinagon/ComfyUI-seamless-tiling",
MEDIUMgithub-stats.json997 "https://github.com/Aksaz/comfyui-seamless-clone": {
MEDIUMgithub-stats.json8992 "https://github.com/WASasquatch/face-upscaling-and-seamless-embedding": {
MEDIUMgithub-stats.json22322 "https://github.com/spinagon/ComfyUI-seamless-tiling": {
MEDIUMglob/manager_core.py3202 # robust filter out comfyui-manager while restoring snapshot
MEDIUMglob/node_package.py67 node_id = info['id'] # robust module guessing
MEDIUMnode_db/legacy/custom-node-list.json2256 "description": "Welcome to the Image Upscaler & Restorer project! This tool utilizes the [a/GFPGAN](https://
MEDIUMnode_db/dev/custom-node-list.json2423 "description": "The ComfyUI-fal-Connector is a tool designed to provide an integration between ComfyUI and f
Redundant / Tautological Comments13 hits · 13 pts
SeverityFileLineSnippet
LOWjson-checker.py118 # Check if it's a GitHub URL (likely a git repo)
LOWscanner.py377 # Read file with proper encoding
LOWscanner.py588 # Check if we have cached result with matching mtime and scanner version
LOWscanner.py796 # Check if key is cls.__name__ pattern
LOWscanner.py848 # Check if these names appear in list assignments that feed into NODE_CLASS_MAPPINGS
LOWscanner.py980 # Check if it's Schema() call
LOWscanner.py1012 # Check if inherits from ComfyNode
LOWprestartup_script.py807# Check if script_list_path exists
LOWgit_helper.py185 # Check if the path is a git repository
LOWglob/manager_core.py2031 # Check if the path is a git repository
LOWglob/manager_core.py2241 # Check if the path is a git repository
LOWglob/manager_core.py2933 # Check if there's only one directory inside the target directory
LOWglob/share_3rdparty.py169 # Check if the user has provided Matrix credentials in a file called 'matrix_accesstoken'
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippet
HIGHscanner.py1159 Read URLs from list file for scan-only mode Args: list_file (str): Path to URL list file (one URL per
Unused Imports7 hits · 5 pts
SeverityFileLineSnippet
LOW__init__.py12
LOW__init__.py13
LOWprestartup_script.py459
LOWprestartup_script.py460
LOWprestartup_script.py461
LOWprestartup_script.py462
LOWglob/node_package.py1
Synthetic Comment Markers1 hit · 5 pts
SeverityFileLineSnippet
HIGHnode_db/dev/custom-node-list.json7300 "description": "A suite of custom ComfyUI nodes built to evaluate and diagnose the technical qualities of im
Example Usage Blocks3 hits · 4 pts
SeverityFileLineSnippet
LOWglob/cm_global.py6# Usage:
LOWglob/cm_global.py17# Usage:
LOWglob/cm_global.py62# Usage:
Over-Commented Block3 hits · 3 pts
SeverityFileLineSnippet
LOWjs/popover-helper.js301
LOWglob/cm_global.py1import traceback
LOWglob/cm_global.py21# def api_hello(msg):
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippet
MEDIUMnode_db/tutorial/custom-node-list.json61 "description": "Welcome to ecjojo_example_nodes! This example is specifically designed for beginners who wan