comfy-org/ComfyUI-Manager
View on GitHub ↗
Internal86
Unique within the repo — the other 14% repeats across its own files.
Public55
Unique across all public code — a further 31% is its own but appears in other public repos too.
Tidy, but not new — the code doesn't repeat itself, yet a large share already exists across other public repos. A strong candidate for pulling from (or publishing as) a shared package.
Worth consolidating — in the code
Real, actionable duplication in this repo's source, most concrete first.
Longest identical blocks
The longest runs of identical consecutive lines copied between two files (indentation ignored) — the most concrete copy-paste. Lift the block into a shared function or module.
| Lines | File A | File B | Cross-repo |
|---|---|---|---|
| 23 | comfy-org/ComfyUI-Manager/js/comfyui-share-common.js:981 |
comfy-org/ComfyUI-Manager/js/comfyui-share-openart.js:541 |
same repo |
| 18 | comfy-org/ComfyUI-Manager/js/model-manager.js:180 |
comfy-org/ComfyUI-Manager/js/node-usage-analyzer.js:110 |
same repo |
| 14 | comfy-org/ComfyUI-Manager/js/comfyui-share-openart.js:519 |
comfy-org/ComfyUI-Manager/js/comfyui-share-youml.js:427 |
same repo |
| 14 | comfy-org/ComfyUI-Manager/js/custom-nodes-manager.js:509 |
comfy-org/ComfyUI-Manager/js/model-manager.js:183 |
same repo |
| 14 | comfy-org/ComfyUI-Manager/js/custom-nodes-manager.js:509 |
comfy-org/ComfyUI-Manager/js/node-usage-analyzer.js:113 |
same repo |
| 12 | comfy-org/ComfyUI-Manager/js/comfyui-share-copus.js:21 |
comfy-org/ComfyUI-Manager/js/comfyui-share-openart.js:18 |
same repo |
| 12 | comfy-org/ComfyUI-Manager/tests/test_install_flags_config.py:59 |
comfy-org/ComfyUI-Manager/tests/test_write_config_persistence.py:111 |
same repo |
| 11 | comfy-org/ComfyUI-Manager/js/comfyui-share-copus.js:726 |
comfy-org/ComfyUI-Manager/js/comfyui-share-youml.js:309 |
same repo |
| 10 | comfy-org/ComfyUI-Manager/js/comfyui-share-common.js:981 |
comfy-org/ComfyUI-Manager/js/comfyui-share-copus.js:910 |
same repo |
| 9 | comfy-org/ComfyUI-Manager/tests/test_node_usage_escaping.py:96 |
comfy-org/ComfyUI-Manager/tests/test_pack_column_escaping.py:114 |
same repo |
| 8 | comfy-org/ComfyUI-Manager/glob/manager_core.py:318 |
comfy-org/ComfyUI-Manager/prestartup_script.py:569 |
same repo |
Top duplication hotspots
| Similarity | Overlap | File A | File B | Cross-repo |
|---|---|---|---|---|
| 57% | 617 | comfy-org/ComfyUI-Manager/js/comfyui-share-copus.js |
comfy-org/ComfyUI-Manager/js/comfyui-share-openart.js |
same repo |
| 19% | 558 | comfy-org/ComfyUI-Manager/js/custom-nodes-manager.js |
comfy-org/ComfyUI-Manager/js/model-manager.js |
same repo |
| 39% | 533 | comfy-org/ComfyUI-Manager/js/model-manager.js |
comfy-org/ComfyUI-Manager/js/node-usage-analyzer.js |
same repo |
| 16% | 476 | comfy-org/ComfyUI-Manager/js/custom-nodes-manager.js |
comfy-org/ComfyUI-Manager/js/node-usage-analyzer.js |
same repo |
| 6% | 467 | comfy-org/ComfyUI-Manager/glob/manager_core.py |
comfy-org/ComfyUI-Manager/glob/manager_server.py |
same repo |
| 39% | 399 | comfy-org/ComfyUI-Manager/js/comfyui-share-openart.js |
comfy-org/ComfyUI-Manager/js/comfyui-share-youml.js |
same repo |
| 7% | 394 | comfy-org/ComfyUI-Manager/glob/manager_core.py |
comfy-org/ComfyUI-Manager/prestartup_script.py |
same repo |
| 8% | 380 | comfy-org/ComfyUI-Manager/git_helper.py |
comfy-org/ComfyUI-Manager/glob/manager_core.py |
same repo |
| 30% | 368 | comfy-org/ComfyUI-Manager/js/comfyui-share-copus.js |
comfy-org/ComfyUI-Manager/js/comfyui-share-youml.js |
same repo |
| 8% | 292 | comfy-org/ComfyUI-Manager/js/comfyui-manager.js |
comfy-org/ComfyUI-Manager/js/custom-nodes-manager.js |
same repo |
| 5% | 288 | comfy-org/ComfyUI-Manager/cm-cli.py |
comfy-org/ComfyUI-Manager/glob/manager_core.py |
same repo |
| 16% | 260 | comfy-org/ComfyUI-Manager/js/comfyui-share-common.js |
comfy-org/ComfyUI-Manager/js/comfyui-share-openart.js |
same repo |
| 13% | 258 | comfy-org/ComfyUI-Manager/tests/test_model_manager_escaping.py |
comfy-org/ComfyUI-Manager/tests/test_node_usage_escaping.py |
same repo |
| 7% | 258 | comfy-org/ComfyUI-Manager/js/common.js |
comfy-org/ComfyUI-Manager/js/custom-nodes-manager.js |
same repo |
| 14% | 252 | comfy-org/ComfyUI-Manager/js/comfyui-share-common.js |
comfy-org/ComfyUI-Manager/js/comfyui-share-copus.js |
same repo |
| 3% | 234 | comfy-org/ComfyUI-Manager/glob/manager_core.py |
comfy-org/ComfyUI-Manager/scanner.py |
same repo |
| 5% | 223 | comfy-org/ComfyUI-Manager/glob/manager_server.py |
comfy-org/ComfyUI-Manager/prestartup_script.py |
same repo |
| 5% | 222 | comfy-org/ComfyUI-Manager/cm-cli.py |
comfy-org/ComfyUI-Manager/glob/manager_server.py |
same repo |
| 12% | 221 | comfy-org/ComfyUI-Manager/tests/test_node_usage_escaping.py |
comfy-org/ComfyUI-Manager/tests/test_pack_column_escaping.py |
same repo |
| 9% | 203 | comfy-org/ComfyUI-Manager/tests/test_model_manager_escaping.py |
comfy-org/ComfyUI-Manager/tests/test_pack_column_escaping.py |
same repo |
Duplicate declarations
The same function, variable, class, or type name declared in more than one file — a fast copy-paste signal. Consider extracting a shared definition.
| Files | Declaration | Where |
|---|---|---|
| 7 | fn setUpClass |
comfy-org/ComfyUI-Manager/tests/test_csrf_content_type_helper.pycomfy-org/ComfyUI-Manager/tests/test_install_flags_structural.pycomfy-org/ComfyUI-Manager/tests/test_message_sink_provenance.py+4 more |
| 4 | type output |
comfy-org/ComfyUI-Manager/js/comfyui-share-common.jscomfy-org/ComfyUI-Manager/js/comfyui-share-copus.jscomfy-org/ComfyUI-Manager/js/comfyui-share-openart.js+1 more |
| 4 | fn restore_snapshot |
comfy-org/ComfyUI-Manager/cm-cli.pycomfy-org/ComfyUI-Manager/glob/manager_core.pycomfy-org/ComfyUI-Manager/glob/manager_server.py+1 more |
| 4 | type temp |
comfy-org/ComfyUI-Manager/js/comfyui-share-common.jscomfy-org/ComfyUI-Manager/js/comfyui-share-copus.jscomfy-org/ComfyUI-Manager/js/comfyui-share-openart.js+1 more |
| 3 | fn update |
comfy-org/ComfyUI-Manager/cm-cli.pycomfy-org/ComfyUI-Manager/git_helper.pycomfy-org/ComfyUI-Manager/glob/manager_core.py |
| 3 | fn _preamble |
comfy-org/ComfyUI-Manager/tests/test_node_usage_escaping.pycomfy-org/ComfyUI-Manager/tests/test_pack_column_escaping.pycomfy-org/ComfyUI-Manager/tests/test_residual_sink_escaping.py |
| 3 | type blob |
comfy-org/ComfyUI-Manager/js/comfyui-share-copus.jscomfy-org/ComfyUI-Manager/js/comfyui-share-openart.jscomfy-org/ComfyUI-Manager/js/comfyui-share-youml.js |
| 3 | fn download_url |
comfy-org/ComfyUI-Manager/git_helper.pycomfy-org/ComfyUI-Manager/glob/manager_downloader.pycomfy-org/ComfyUI-Manager/scanner.py |
| 3 | type events |
comfy-org/ComfyUI-Manager/js/custom-nodes-manager.jscomfy-org/ComfyUI-Manager/js/model-manager.jscomfy-org/ComfyUI-Manager/js/node-usage-analyzer.js |
| 3 | fn handle_starttag |
comfy-org/ComfyUI-Manager/tests/js_lift.pycomfy-org/ComfyUI-Manager/tests/test_manager_markdown_escaping.pycomfy-org/ComfyUI-Manager/tests/test_residual_sink_escaping.py |
| 3 | type type |
comfy-org/ComfyUI-Manager/js/custom-nodes-manager.jscomfy-org/ComfyUI-Manager/js/model-manager.jscomfy-org/ComfyUI-Manager/js/node-usage-analyzer.js |
| 2 | fn emit |
comfy-org/ComfyUI-Manager/prestartup_script.pycomfy-org/ComfyUI-Manager/tests/test_install_flags_gates.py |
| 2 | fn get_config |
comfy-org/ComfyUI-Manager/glob/manager_core.pycomfy-org/ComfyUI-Manager/tests/test_install_flags_gates.py |
| 2 | fn is_disabled |
comfy-org/ComfyUI-Manager/glob/manager_core.pycomfy-org/ComfyUI-Manager/glob/node_package.py |
| 2 | fn name |
comfy-org/ComfyUI-Manager/js/model-manager.jscomfy-org/ComfyUI-Manager/js/node-usage-analyzer.js |
| 2 | fn parse |
comfy-org/ComfyUI-Manager/tests/js_lift.pycomfy-org/ComfyUI-Manager/tests/test_residual_sink_escaping.py |
| 2 | fn _assert_inert |
comfy-org/ComfyUI-Manager/tests/test_model_manager_escaping.pycomfy-org/ComfyUI-Manager/tests/test_node_usage_escaping.py |
| 2 | class _Collector |
comfy-org/ComfyUI-Manager/tests/test_manager_markdown_escaping.pycomfy-org/ComfyUI-Manager/tests/test_residual_sink_escaping.py |
| 2 | fn _post |
comfy-org/ComfyUI-Manager/tests/test_csrf_content_type_helper.pycomfy-org/ComfyUI-Manager/tests/test_install_flags_gates.py |
| 2 | fn _render |
comfy-org/ComfyUI-Manager/tests/test_pack_column_escaping.pycomfy-org/ComfyUI-Manager/tests/test_residual_sink_escaping.py |
| 2 | fn _run_child |
comfy-org/ComfyUI-Manager/tests/test_install_flags_config.pycomfy-org/ComfyUI-Manager/tests/test_write_config_persistence.py |
| 2 | type base |
comfy-org/ComfyUI-Manager/js/model-manager.jscomfy-org/ComfyUI-Manager/js/node-usage-analyzer.js |
| 2 | fn disable_node |
comfy-org/ComfyUI-Manager/cm-cli.pycomfy-org/ComfyUI-Manager/glob/manager_server.py |
| 2 | fn extract_nodes |
comfy-org/ComfyUI-Manager/glob/manager_core.pycomfy-org/ComfyUI-Manager/scanner.py |
| 2 | fn get_commit_hash |
comfy-org/ComfyUI-Manager/glob/git_utils.pycomfy-org/ComfyUI-Manager/glob/node_package.py |
Largest files
Largest files
| LOC | File | Status |
|---|---|---|
| — | comfy-org/ComfyUI-Manager/custom-node-list.json | skipped from indexing (too large to index (2.9 MB)) |
| — | comfy-org/ComfyUI-Manager/extension-node-map.json | skipped from indexing (too large to index (2.4 MB)) |
| — | comfy-org/ComfyUI-Manager/node_db/new/extension-node-map.json | skipped from indexing (too large to index (2.4 MB)) |
| — | comfy-org/ComfyUI-Manager/github-stats.json | skipped from indexing (too large to index (1013 KB)) |
| 16909 | comfy-org/ComfyUI-Manager/node_db/dev/extension-node-map.json | skipped from indexing (over 0 LOC) |
| 11989 | comfy-org/ComfyUI-Manager/node_db/dev/custom-node-list.json | skipped from indexing (over 0 LOC) |
| 10247 | comfy-org/ComfyUI-Manager/node_db/new/custom-node-list.json | skipped from indexing (over 0 LOC) |
| 6730 | comfy-org/ComfyUI-Manager/node_db/legacy/custom-node-list.json | skipped from indexing (over 0 LOC) |
| 6276 | comfy-org/ComfyUI-Manager/model-list.json | skipped from indexing (over 0 LOC) |
| 5942 | comfy-org/ComfyUI-Manager/node_db/dev/github-stats.json | skipped from indexing (over 0 LOC) |