improved: cm-cli.py save-snapshot - validate output path

fixed: Update all - Properly display the results of the ComfyUI update.
fixed: Update all - An issue where the action results of the custom nodes manager were reflected in the main dialog.

https://github.com/ltdrdata/ComfyUI-Manager/issues/1548
This commit is contained in:
Dr.Lt.Data 2025-02-15 09:00:00 +09:00
parent d7af7e2917
commit 3b0709f5f2
5 changed files with 43 additions and 12 deletions

View File

@ -1021,7 +1021,17 @@ def save_snapshot(
] = True, ] = True,
): ):
cmd_ctx.set_user_directory(user_directory) cmd_ctx.set_user_directory(user_directory)
path = core.save_snapshot_with_postfix('snapshot', output, not full_snapshot)
if(not output.endswith('.json') and not output.endswith('.yaml')):
print("ERROR: output path should be either '.json' or '.yaml' file.")
raise typer.Exit(code=1)
dir_path = os.path.dirname(output)
if(dir_path != '' and not os.path.exists(dir_path)):
print(f"ERROR: {output} path not exists.")
raise typer.Exit(code=1)
path = asyncio.run(core.save_snapshot_with_postfix('snapshot', output, not full_snapshot))
print(f"Current snapshot is saved as `{path}`") print(f"Current snapshot is saved as `{path}`")

View File

@ -42,7 +42,7 @@ import manager_downloader
from node_package import InstalledNodePackage from node_package import InstalledNodePackage
version_code = [3, 21] version_code = [3, 21, 1]
version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '') version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '')
@ -1619,7 +1619,6 @@ def read_config():
} }
except Exception: except Exception:
traceback.print_exc()
manager_util.use_uv = False manager_util.use_uv = False
return { return {
'http_channel_enabled': False, 'http_channel_enabled': False,

View File

@ -599,6 +599,7 @@ async def task_worker():
nodepack_result[ui_id] = msg nodepack_result[ui_id] = msg
ui_target = "main" ui_target = "main"
elif kind == 'update-comfyui': elif kind == 'update-comfyui':
nodepack_result['comfyui'] = msg
ui_target = "main" ui_target = "main"
else: else:
nodepack_result[ui_id] = msg nodepack_result[ui_id] = msg

View File

@ -698,16 +698,24 @@ async function onQueueStatus(event) {
return; return;
} }
is_updating_all = false;
let success_list = []; let success_list = [];
let failed_list = []; let failed_list = [];
let comfyui_state = null;
for(let k in event.detail.nodepack_result){ for(let k in event.detail.nodepack_result){
let v = event.detail.nodepack_result[k]; let v = event.detail.nodepack_result[k];
if(v == 'success') if(v == 'success') {
success_list.push(k); if(k == 'comfyui')
comfyui_state = 'success';
else
success_list.push(k);
}
else if(v == 'skip') { else if(v == 'skip') {
// do nothing if(k == 'comfyui')
comfyui_state = 'skip';
} }
else else
failed_list.push(k); failed_list.push(k);
@ -715,18 +723,31 @@ async function onQueueStatus(event) {
let msg = ""; let msg = "";
if(success_list.length == 0) { if(success_list.length == 0 && comfyui_state != 'success') {
if(failed_list.length == 0) { if(failed_list.length == 0) {
msg += "All custom nodes are already up to date."; msg += "All custom nodes are already up to date.";
} }
} }
else { else {
msg = "To apply the updates, you need to <button class='cm-small-button' id='cm-reboot-button5'>RESTART</button> ComfyUI.<hr>"; msg = "To apply the updates, you need to <button class='cm-small-button' id='cm-reboot-button5'>RESTART</button> ComfyUI.<hr>";
msg += "The following custom nodes have been updated:<ul>";
for(let x in success_list) { if(comfyui_state == 'success') {
msg += '<li>'+success_list[x]+'</li>'; msg += "ComfyUI is updated.<BR><BR>";
}
else if(comfyui_state == 'skip') {
msg += "ComfyUI is already up-to-date.<BR><BR>"
}
if(success_list.length > 0) {
msg += "The following custom nodes have been updated:<ul>";
for(let x in success_list) {
if(success_list[x] == 'comfyui')
continue;
msg += '<li>'+success_list[x]+'</li>';
}
msg += "</ul>";
} }
msg += "</ul>";
setNeedRestart(true); setNeedRestart(true);
} }

View File

@ -1,7 +1,7 @@
[project] [project]
name = "comfyui-manager" 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." description = "ComfyUI-Manager provides features to install and manage custom nodes for ComfyUI, as well as various functionalities to assist with ComfyUI."
version = "3.21" version = "3.21.1"
license = { file = "LICENSE.txt" } license = { file = "LICENSE.txt" }
dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions"] dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions"]