feat: add ComfyUI-Manager v4 support and uv-compile unified dependency resolution#363
Open
feat: add ComfyUI-Manager v4 support and uv-compile unified dependency resolution#363
Conversation
Codecov Report❌ Patch coverage is @@ Coverage Diff @@
## main #363 +/- ##
==========================================
+ Coverage 63.44% 67.50% +4.06%
==========================================
Files 33 33
Lines 3699 3915 +216
==========================================
+ Hits 2347 2643 +296
+ Misses 1352 1272 -80
... and 1 file with indirect coverage changes 🚀 New features to boost your workflow:
|
c29f340 to
b7d0a07
Compare
Contributor
|
@ltdrdata hello! is this PR is ready to be reviewed? (sorry, I completely forgot about this PR) |
Member
Author
|
Oh… additional updates to support uv-compile are currently in progress. Since the changes are fairly extensive, I’m also validating them more thoroughly. Please wait a bit longer. |
e8a78ce to
a4212d6
Compare
8b55247 to
73e3aea
Compare
Manager v4 is now installed as a pip package (via manager_requirements.txt) instead of being git-cloned into custom_nodes/. - Add manager subcommands: disable, enable-gui, disable-gui, enable-legacy-gui, migrate-legacy, uv-compile-default - Add --uv-compile/--no-uv-compile flag to 7 node commands - Add standalone `comfy node uv-sync` for batch dependency resolution - Add `comfy node update-cache` for blocking Manager cache population - Remove --manager-url and --manager-commit install options - Launch auto-detects cm-cli availability and skips manager flags if unavailable
73e3aea to
a655999
Compare
Member
Author
|
For the E2E tests to function correctly, the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ComfyUI-Manager v4 is now installed as a pip package (via
manager_requirements.txt) rather than being git-cloned intocustom_nodes/.Breaking Changes
--manager-urland--manager-commitoptions from install commandvalidate_comfyui_manager()now usesfind_cm_cli()instead of git path checkManager Subcommand Changes
comfy manager disablecomfy manager enable-guicomfy manager disable-guicomfy manager enable-legacy-guicomfy manager migrate-legacycomfy manager uv-compile-default--uv-compileUnified Dependency ResolutionAdds
--uv-compile/--no-uv-compileflag to 7 custom node commands for Manager v4.1+ unified dependency resolution viauv pip compile.Commands with
--uv-compile:install,reinstall,update,fix,restore-snapshot,restore-dependencies,install-depsStandalone command:
comfy node uv-sync— batch-resolve all installed custom node dependencies.Flag resolution priority: explicit flag → config default (
comfy manager uv-compile-default) → disabledMutual exclusivity:
--uv-compilecannot be used with--fast-depsor--no-deps.Pass-through pattern:
Cache Management
comfy node update-cache— force-fetch remote data and populate local Manager cache (blocking). Wrapscm_cli update-cache(requires Manager v4.1b5+).E2E test fixtures call
update-cacheafter workspace installation to ensure node listings are fully populated before any test operations. This fixes test reliability issues where an empty cache causedcomfy node show allto miss nodes or return inconsistent ID formats.Implementation Details
find_cm_cli()usesimportlib.util.find_spec("cm_cli")with@lru_cacheexecute_cm_cli()uses module-based execution viaresolve_workspace_python()+python -m cm_cli_get_manager_flags()injects--enable-managerflags based on config moderesolve_manager_gui_mode()shared helper for legacy config migration (handles bool strings)_resolve_uv_compile()implements tri-state (bool | None) flag with config default prioritypip_install_manager()replaces git-clone based installation with pip-basedmanager_requirements.txtcomfy envdisplays Manager status and UV Compile Defaultexecute_cm_cliforwards cm_cli stdout/stderr on failureReviewer Guide
Recommended review order by logical group:
1. Core infrastructure (review first)
constants.pyMANAGER_REQUIREMENTS_FILE,CONFIG_KEY_MANAGER_GUI_MODE,CONFIG_KEY_UV_COMPILE_DEFAULTcm_cli_util.pyfind_cm_cli(),execute_cm_cli(),resolve_manager_gui_mode()resolve_workspace_python()install.pypip_install_manager()replaces git-clonemanager_requirements.txt; acceptspythonparam for workspace Python2. Command layer
command.py_resolve_uv_compile(), 7 commands with--uv-compile, manager subcommands,update-cachecmdline.py--manager-url/--manager-commit3. Launch integration
launch.py_get_manager_flags()workspace_manager.pycomfy env4. Tests (bulk of the diff)
test_manager_gui.pytest_cm_cli_util.pytest_node_install.pytest_e2e_uv_compile.pyTest plan
cm_cli_util.py100%,command.py80%,install.py73%test_e2e_uv_compile.py)test_e2e.py—update-cachein fixture resolves prior node listing issue)ltdrdata/ComfyUI@dr-bump-managerwith Manager v4.1b5main(includes fix: use correct Python executable for workspace operations #375resolve_workspace_python, fix: use --index-url for AMD ROCm torch install, add --rocm-version flag #379 ROCm, fix: use --index-url for NVIDIA torch install, pass --cuda-version to fast-deps path #380 NVIDIA, fix: make e2e test_node resilient to transient git clone failures #381 test_node retry)Reference: Comfy-Org/ComfyUI#12140