mirror of
https://git.datalinker.icu/ltdrdata/ComfyUI-Manager
synced 2025-12-09 06:04:31 +08:00
refactor: print -> logging.
This commit is contained in:
parent
3ecf3a359d
commit
95ee037a44
@ -20,7 +20,7 @@ import cm_global
|
||||
import logging
|
||||
|
||||
|
||||
print(f"### Loading: ComfyUI-Manager ({core.version_str})")
|
||||
logging.info(f"### Loading: ComfyUI-Manager ({core.version_str})")
|
||||
|
||||
comfy_ui_hash = "-"
|
||||
comfyui_tag = None
|
||||
@ -105,7 +105,7 @@ class ManagerFuncsInComfyUI(core.ManagerFuncs):
|
||||
|
||||
def run_script(self, cmd, cwd='.'):
|
||||
if len(cmd) > 0 and cmd[0].startswith("#"):
|
||||
print(f"[ComfyUI-Manager] Unexpected behavior: `{cmd}`")
|
||||
logging.error(f"[ComfyUI-Manager] Unexpected behavior: `{cmd}`")
|
||||
return 0
|
||||
|
||||
process = subprocess.Popen(cmd, cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, bufsize=1)
|
||||
@ -192,7 +192,7 @@ def print_comfyui_version():
|
||||
|
||||
try:
|
||||
if core.comfy_ui_commit_datetime.date() < core.comfy_ui_required_commit_datetime.date():
|
||||
print(f"\n\n## [WARN] ComfyUI-Manager: Your ComfyUI version ({core.comfy_ui_revision})[{core.comfy_ui_commit_datetime.date()}] is too old. Please update to the latest version. ##\n\n")
|
||||
logging.warning(f"\n\n## [WARN] ComfyUI-Manager: Your ComfyUI version ({core.comfy_ui_revision})[{core.comfy_ui_commit_datetime.date()}] is too old. Please update to the latest version. ##\n\n")
|
||||
except:
|
||||
pass
|
||||
|
||||
@ -202,29 +202,29 @@ def print_comfyui_version():
|
||||
try:
|
||||
f(core.comfy_ui_revision)
|
||||
except Exception:
|
||||
print(f"[ERROR] '{k}' on_revision_detected_handler")
|
||||
logging.error(f"[ERROR] '{k}' on_revision_detected_handler")
|
||||
traceback.print_exc()
|
||||
|
||||
del cm_global.variables['cm.on_revision_detected_handler']
|
||||
else:
|
||||
print("[ComfyUI-Manager] Some features are restricted due to your ComfyUI being outdated.")
|
||||
logging.warning("[ComfyUI-Manager] Some features are restricted due to your ComfyUI being outdated.")
|
||||
# <--
|
||||
|
||||
if current_branch == "master":
|
||||
if comfyui_tag:
|
||||
print(f"### ComfyUI Version: {comfyui_tag} | Released on '{core.comfy_ui_commit_datetime.date()}'")
|
||||
logging.info(f"### ComfyUI Version: {comfyui_tag} | Released on '{core.comfy_ui_commit_datetime.date()}'")
|
||||
else:
|
||||
print(f"### ComfyUI Revision: {core.comfy_ui_revision} [{comfy_ui_hash[:8]}] | Released on '{core.comfy_ui_commit_datetime.date()}'")
|
||||
logging.info(f"### ComfyUI Revision: {core.comfy_ui_revision} [{comfy_ui_hash[:8]}] | Released on '{core.comfy_ui_commit_datetime.date()}'")
|
||||
else:
|
||||
if comfyui_tag:
|
||||
print(f"### ComfyUI Version: {comfyui_tag} on '{current_branch}' | Released on '{core.comfy_ui_commit_datetime.date()}'")
|
||||
logging.info(f"### ComfyUI Version: {comfyui_tag} on '{current_branch}' | Released on '{core.comfy_ui_commit_datetime.date()}'")
|
||||
else:
|
||||
print(f"### ComfyUI Revision: {core.comfy_ui_revision} on '{current_branch}' [{comfy_ui_hash[:8]}] | Released on '{core.comfy_ui_commit_datetime.date()}'")
|
||||
logging.info(f"### ComfyUI Revision: {core.comfy_ui_revision} on '{current_branch}' [{comfy_ui_hash[:8]}] | Released on '{core.comfy_ui_commit_datetime.date()}'")
|
||||
except:
|
||||
if is_detached:
|
||||
print(f"### ComfyUI Revision: {core.comfy_ui_revision} [{comfy_ui_hash[:8]}] *DETACHED | Released on '{core.comfy_ui_commit_datetime.date()}'")
|
||||
logging.info(f"### ComfyUI Revision: {core.comfy_ui_revision} [{comfy_ui_hash[:8]}] *DETACHED | Released on '{core.comfy_ui_commit_datetime.date()}'")
|
||||
else:
|
||||
print("### ComfyUI Revision: UNKNOWN (The currently installed ComfyUI is not a Git repository)")
|
||||
logging.info("### ComfyUI Revision: UNKNOWN (The currently installed ComfyUI is not a Git repository)")
|
||||
|
||||
|
||||
print_comfyui_version()
|
||||
@ -440,9 +440,9 @@ async def fetch_updates(request):
|
||||
res = core.unified_manager.fetch_or_pull_git_repo(is_pull=False)
|
||||
|
||||
for x in res['failed']:
|
||||
print(f"FETCH FAILED: {x}")
|
||||
logging.error(f"FETCH FAILED: {x}")
|
||||
|
||||
print("\nDone.")
|
||||
logging.info("\nDone.")
|
||||
|
||||
if len(res['updated']) > 0:
|
||||
return web.Response(status=201)
|
||||
@ -456,7 +456,7 @@ async def fetch_updates(request):
|
||||
@routes.get("/customnode/update_all")
|
||||
async def update_all(request):
|
||||
if not is_allowed_security_level('middle'):
|
||||
print(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
|
||||
logging.error(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
|
||||
return web.Response(status=403)
|
||||
|
||||
try:
|
||||
@ -482,14 +482,14 @@ async def update_all(request):
|
||||
res['updated'] += updated_cnr
|
||||
|
||||
for x in res['failed']:
|
||||
print(f"PULL FAILED: {x}")
|
||||
logging.error(f"PULL FAILED: {x}")
|
||||
|
||||
if len(res['updated']) == 0 and len(res['failed']) == 0:
|
||||
status = 200
|
||||
else:
|
||||
status = 201
|
||||
|
||||
print("\nDone.")
|
||||
logging.info("\nDone.")
|
||||
return web.json_response(res, status=status, content_type='application/json')
|
||||
except:
|
||||
traceback.print_exc()
|
||||
@ -642,7 +642,7 @@ async def get_snapshot_list(request):
|
||||
@routes.get("/snapshot/remove")
|
||||
async def remove_snapshot(request):
|
||||
if not is_allowed_security_level('middle'):
|
||||
print(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
|
||||
logging.error(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
|
||||
return web.Response(status=403)
|
||||
|
||||
try:
|
||||
@ -660,7 +660,7 @@ async def remove_snapshot(request):
|
||||
@routes.get("/snapshot/restore")
|
||||
async def restore_snapshot(request):
|
||||
if not is_allowed_security_level('middle'):
|
||||
print(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
|
||||
logging.error(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
|
||||
return web.Response(status=403)
|
||||
|
||||
try:
|
||||
@ -674,10 +674,10 @@ async def restore_snapshot(request):
|
||||
target_path = os.path.join(core.manager_startup_script_path, "restore-snapshot.json")
|
||||
shutil.copy(path, target_path)
|
||||
|
||||
print(f"Snapshot restore scheduled: `{target}`")
|
||||
logging.info(f"Snapshot restore scheduled: `{target}`")
|
||||
return web.Response(status=200)
|
||||
|
||||
print(f"Snapshot file not found: `{path}`")
|
||||
logging.error(f"Snapshot file not found: `{path}`")
|
||||
return web.Response(status=400)
|
||||
except:
|
||||
return web.Response(status=400)
|
||||
@ -721,10 +721,10 @@ def unzip_install(files):
|
||||
|
||||
os.remove(temp_filename)
|
||||
except Exception as e:
|
||||
print(f"Install(unzip) error: {url} / {e}", file=sys.stderr)
|
||||
logging.error(f"Install(unzip) error: {url} / {e}", file=sys.stderr)
|
||||
return False
|
||||
|
||||
print("Installation was successful.")
|
||||
logging.info("Installation was successful.")
|
||||
return True
|
||||
|
||||
|
||||
@ -743,10 +743,10 @@ def copy_install(files, js_path_name=None):
|
||||
download_url(url, path, filename)
|
||||
|
||||
except Exception as e:
|
||||
print(f"Install(copy) error: {url} / {e}", file=sys.stderr)
|
||||
logging.error(f"Install(copy) error: {url} / {e}", file=sys.stderr)
|
||||
return False
|
||||
|
||||
print("Installation was successful.")
|
||||
logging.info("Installation was successful.")
|
||||
return True
|
||||
|
||||
|
||||
@ -764,10 +764,10 @@ def copy_uninstall(files, js_path_name='.'):
|
||||
elif os.path.exists(file_path + ".disabled"):
|
||||
os.remove(file_path + ".disabled")
|
||||
except Exception as e:
|
||||
print(f"Uninstall(copy) error: {url} / {e}", file=sys.stderr)
|
||||
logging.error(f"Uninstall(copy) error: {url} / {e}", file=sys.stderr)
|
||||
return False
|
||||
|
||||
print("Uninstallation was successful.")
|
||||
logging.info("Uninstallation was successful.")
|
||||
return True
|
||||
|
||||
|
||||
@ -795,11 +795,11 @@ def copy_set_active(files, is_disable, js_path_name='.'):
|
||||
os.rename(current_name, new_name)
|
||||
|
||||
except Exception as e:
|
||||
print(f"{action_name}(copy) error: {url} / {e}", file=sys.stderr)
|
||||
logging.error(f"{action_name}(copy) error: {url} / {e}", file=sys.stderr)
|
||||
|
||||
return False
|
||||
|
||||
print(f"{action_name} was successful.")
|
||||
logging.info(f"{action_name} was successful.")
|
||||
return True
|
||||
|
||||
|
||||
@ -839,7 +839,7 @@ async def reinstall_custom_node(request):
|
||||
@routes.post("/customnode/install")
|
||||
async def install_custom_node(request):
|
||||
if not is_allowed_security_level('middle'):
|
||||
print(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
|
||||
logging.error(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
|
||||
return web.Response(status=403, text="A security error has occurred. Please check the terminal logs")
|
||||
|
||||
json_data = await request.json()
|
||||
@ -866,7 +866,7 @@ async def install_custom_node(request):
|
||||
risky_level = await get_risky_level(json_data['files'], json_data.get('pip', []))
|
||||
|
||||
if not is_allowed_security_level(risky_level):
|
||||
print(SECURITY_MESSAGE_GENERAL)
|
||||
logging.error(SECURITY_MESSAGE_GENERAL)
|
||||
return web.Response(status=404, text="A security error has occurred. Please check the terminal logs")
|
||||
|
||||
node_spec = core.unified_manager.resolve_node_spec(node_spec_str)
|
||||
@ -887,7 +887,7 @@ async def install_custom_node(request):
|
||||
@routes.post("/customnode/fix")
|
||||
async def fix_custom_node(request):
|
||||
if not is_allowed_security_level('middle'):
|
||||
print(SECURITY_MESSAGE_GENERAL)
|
||||
logging.error(SECURITY_MESSAGE_GENERAL)
|
||||
return web.Response(status=403, text="A security error has occurred. Please check the terminal logs")
|
||||
|
||||
json_data = await request.json()
|
||||
@ -903,37 +903,37 @@ async def fix_custom_node(request):
|
||||
res = core.unified_manager.unified_fix(node_name, node_ver)
|
||||
|
||||
if res.result:
|
||||
print("After restarting ComfyUI, please refresh the browser.")
|
||||
logging.info("After restarting ComfyUI, please refresh the browser.")
|
||||
return web.json_response({}, content_type='application/json')
|
||||
|
||||
print(f"ERROR: An error occurred while fixing '{node_name}@{node_ver}'.")
|
||||
logging.error(f"ERROR: An error occurred while fixing '{node_name}@{node_ver}'.")
|
||||
return web.Response(status=400, text=f"An error occurred while fixing '{node_name}@{node_ver}'.")
|
||||
|
||||
|
||||
@routes.post("/customnode/install/git_url")
|
||||
async def install_custom_node_git_url(request):
|
||||
if not is_allowed_security_level('high'):
|
||||
print(SECURITY_MESSAGE_NORMAL_MINUS)
|
||||
logging.error(SECURITY_MESSAGE_NORMAL_MINUS)
|
||||
return web.Response(status=403)
|
||||
|
||||
url = await request.text()
|
||||
res = await core.gitclone_install(url)
|
||||
|
||||
if res.action == 'skip':
|
||||
print(f"Already installed: '{res.target}'")
|
||||
logging.info(f"Already installed: '{res.target}'")
|
||||
return web.Response(status=200)
|
||||
elif res.result:
|
||||
print("After restarting ComfyUI, please refresh the browser.")
|
||||
logging.info("After restarting ComfyUI, please refresh the browser.")
|
||||
return web.Response(status=200)
|
||||
|
||||
print(res.msg)
|
||||
logging.error(res.msg)
|
||||
return web.Response(status=400)
|
||||
|
||||
|
||||
@routes.post("/customnode/install/pip")
|
||||
async def install_custom_node_pip(request):
|
||||
if not is_allowed_security_level('high'):
|
||||
print(SECURITY_MESSAGE_NORMAL_MINUS)
|
||||
logging.error(SECURITY_MESSAGE_NORMAL_MINUS)
|
||||
return web.Response(status=403)
|
||||
|
||||
packages = await request.text()
|
||||
@ -945,7 +945,7 @@ async def install_custom_node_pip(request):
|
||||
@routes.post("/customnode/uninstall")
|
||||
async def uninstall_custom_node(request):
|
||||
if not is_allowed_security_level('middle'):
|
||||
print(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
|
||||
logging.error(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
|
||||
return web.Response(status=403, text="A security error has occurred. Please check the terminal logs")
|
||||
|
||||
json_data = await request.json()
|
||||
@ -962,17 +962,17 @@ async def uninstall_custom_node(request):
|
||||
res = core.unified_manager.unified_uninstall(node_name, is_unknown)
|
||||
|
||||
if res.result:
|
||||
print("After restarting ComfyUI, please refresh the browser.")
|
||||
logging.info("After restarting ComfyUI, please refresh the browser.")
|
||||
return web.json_response({}, content_type='application/json')
|
||||
|
||||
print(f"ERROR: An error occurred while uninstalling '{node_name}'.")
|
||||
logging.error(f"ERROR: An error occurred while uninstalling '{node_name}'.")
|
||||
return web.Response(status=400, text=f"An error occurred while uninstalling '{node_name}'.")
|
||||
|
||||
|
||||
@routes.post("/customnode/update")
|
||||
async def update_custom_node(request):
|
||||
if not is_allowed_security_level('middle'):
|
||||
print(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
|
||||
logging.error(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
|
||||
return web.Response(status=403, text="A security error has occurred. Please check the terminal logs")
|
||||
|
||||
json_data = await request.json()
|
||||
@ -989,29 +989,29 @@ async def update_custom_node(request):
|
||||
manager_util.clear_pip_cache()
|
||||
|
||||
if res.result:
|
||||
print("After restarting ComfyUI, please refresh the browser.")
|
||||
logging.info("After restarting ComfyUI, please refresh the browser.")
|
||||
return web.json_response({}, content_type='application/json')
|
||||
|
||||
print(f"ERROR: An error occurred while updating '{node_name}'.")
|
||||
logging.error(f"ERROR: An error occurred while updating '{node_name}'.")
|
||||
return web.Response(status=400, text=f"An error occurred while updating '{node_name}'.")
|
||||
|
||||
|
||||
@routes.get("/comfyui_manager/update_comfyui")
|
||||
async def update_comfyui(request):
|
||||
print("Update ComfyUI")
|
||||
logging.info("Update ComfyUI")
|
||||
|
||||
try:
|
||||
repo_path = os.path.dirname(folder_paths.__file__)
|
||||
res = core.update_path(repo_path)
|
||||
if res == "fail":
|
||||
print("ComfyUI update fail: The installed ComfyUI does not have a Git repository.")
|
||||
logging.error("ComfyUI update fail: The installed ComfyUI does not have a Git repository.")
|
||||
return web.Response(status=400)
|
||||
elif res == "updated":
|
||||
return web.Response(status=201)
|
||||
else: # skipped
|
||||
return web.Response(status=200)
|
||||
except Exception as e:
|
||||
print(f"ComfyUI update fail: {e}", file=sys.stderr)
|
||||
logging.error(f"ComfyUI update fail: {e}", file=sys.stderr)
|
||||
|
||||
return web.Response(status=400)
|
||||
|
||||
@ -1022,7 +1022,7 @@ async def comfyui_versions(request):
|
||||
res, current = core.get_comfyui_versions()
|
||||
return web.json_response({'versions': res, 'current': current}, status=200, content_type='application/json')
|
||||
except Exception as e:
|
||||
print(f"ComfyUI update fail: {e}", file=sys.stderr)
|
||||
logging.error(f"ComfyUI update fail: {e}", file=sys.stderr)
|
||||
|
||||
return web.Response(status=400)
|
||||
|
||||
@ -1035,7 +1035,7 @@ async def comfyui_switch_version(request):
|
||||
|
||||
return web.Response(status=200)
|
||||
except Exception as e:
|
||||
print(f"ComfyUI update fail: {e}", file=sys.stderr)
|
||||
logging.error(f"ComfyUI update fail: {e}", file=sys.stderr)
|
||||
|
||||
return web.Response(status=400)
|
||||
|
||||
@ -1063,9 +1063,9 @@ async def disable_node(request):
|
||||
|
||||
@routes.get("/manager/migrate_unmanaged_nodes")
|
||||
async def migrate_unmanaged_nodes(request):
|
||||
print("[ComfyUI-Manager] Migrating unmanaged nodes...")
|
||||
logging.info("[ComfyUI-Manager] Migrating unmanaged nodes...")
|
||||
await core.unified_manager.migrate_unmanaged_nodes()
|
||||
print("Done.")
|
||||
logging.info("Done.")
|
||||
return web.Response(status=200)
|
||||
|
||||
|
||||
@ -1081,7 +1081,7 @@ async def install_model(request):
|
||||
model_path = get_model_path(json_data)
|
||||
|
||||
if not is_allowed_security_level('middle'):
|
||||
print(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
|
||||
logging.error(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
|
||||
return web.Response(status=403)
|
||||
|
||||
if not json_data['filename'].endswith('.safetensors') and not is_allowed_security_level('high'):
|
||||
@ -1094,14 +1094,14 @@ async def install_model(request):
|
||||
break
|
||||
|
||||
if not is_belongs_to_whitelist:
|
||||
print(SECURITY_MESSAGE_NORMAL_MINUS)
|
||||
logging.error(SECURITY_MESSAGE_NORMAL_MINUS)
|
||||
return web.Response(status=403)
|
||||
|
||||
res = False
|
||||
|
||||
try:
|
||||
if model_path is not None:
|
||||
print(f"Install model '{json_data['name']}' into '{model_path}'")
|
||||
logging.info(f"Install model '{json_data['name']}' into '{model_path}'")
|
||||
|
||||
model_url = json_data['url']
|
||||
if not core.get_config()['model_download_by_agent'] and (
|
||||
@ -1120,12 +1120,12 @@ async def install_model(request):
|
||||
if res and model_path.endswith('.zip'):
|
||||
res = core.unzip(model_path)
|
||||
else:
|
||||
print(f"Model installation error: invalid model type - {json_data['type']}")
|
||||
logging.error(f"Model installation error: invalid model type - {json_data['type']}")
|
||||
|
||||
if res:
|
||||
return web.json_response({}, content_type='application/json')
|
||||
except Exception as e:
|
||||
print(f"[ERROR] {e}", file=sys.stderr)
|
||||
logging.error(f"[ERROR] {e}", file=sys.stderr)
|
||||
|
||||
return web.Response(status=400)
|
||||
|
||||
@ -1267,7 +1267,7 @@ async def get_notice(request):
|
||||
@routes.get("/manager/reboot")
|
||||
def restart(self):
|
||||
if not is_allowed_security_level('middle'):
|
||||
print(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
|
||||
logging.error(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
|
||||
return web.Response(status=403)
|
||||
|
||||
try:
|
||||
@ -1279,10 +1279,10 @@ def restart(self):
|
||||
with open(os.path.join(os.environ['__COMFY_CLI_SESSION__'] + '.reboot'), 'w'):
|
||||
pass
|
||||
|
||||
print("\nRestarting...\n\n")
|
||||
print("\nRestarting...\n\n") # This printing should not be logging - that will be ugly
|
||||
exit(0)
|
||||
|
||||
print("\nRestarting... [Legacy Mode]\n\n")
|
||||
print("\nRestarting... [Legacy Mode]\n\n") # This printing should not be logging - that will be ugly
|
||||
|
||||
sys_argv = sys.argv.copy()
|
||||
if '--windows-standalone-build' in sys_argv:
|
||||
@ -1338,11 +1338,11 @@ async def load_components(request):
|
||||
# When there is a conflict between the .pack and the .json, the pack takes precedence and overrides.
|
||||
components.update(json.load(file))
|
||||
except json.JSONDecodeError as e:
|
||||
print(f"[ComfyUI-Manager] Error decoding component file in file {json_file}: {e}")
|
||||
logging.error(f"[ComfyUI-Manager] Error decoding component file in file {json_file}: {e}")
|
||||
|
||||
return web.json_response(components)
|
||||
except Exception as e:
|
||||
print(f"[ComfyUI-Manager] failed to load components\n{e}")
|
||||
logging.error(f"[ComfyUI-Manager] failed to load components\n{e}")
|
||||
return web.Response(status=400)
|
||||
|
||||
|
||||
@ -1357,7 +1357,7 @@ async def _confirm_try_install(sender, custom_node_url, msg):
|
||||
PromptServer.instance.send_sync("cm-api-try-install-customnode",
|
||||
{"sender": sender, "target": target, "msg": msg})
|
||||
else:
|
||||
print(f"[ComfyUI Manager API] Failed to try install - Unknown custom node url '{custom_node_url}'")
|
||||
logging.error(f"[ComfyUI Manager API] Failed to try install - Unknown custom node url '{custom_node_url}'")
|
||||
|
||||
|
||||
def confirm_try_install(sender, custom_node_url, msg):
|
||||
@ -1380,7 +1380,7 @@ async def default_cache_update():
|
||||
with manager_util.cache_lock:
|
||||
with open(cache_uri, "w", encoding='utf-8') as file:
|
||||
json.dump(json_obj, file, indent=4, sort_keys=True)
|
||||
print(f"[ComfyUI-Manager] default cache updated: {uri}")
|
||||
logging.info(f"[ComfyUI-Manager] default cache updated: {uri}")
|
||||
|
||||
a = get_cache("custom-node-list.json")
|
||||
b = get_cache("extension-node-map.json")
|
||||
@ -1393,7 +1393,7 @@ async def default_cache_update():
|
||||
if not core.get_config()['skip_migration_check']:
|
||||
await core.check_need_to_migrate()
|
||||
else:
|
||||
print("[ComfyUI-Manager] Migration check is skipped...")
|
||||
logging.info("[ComfyUI-Manager] Migration check is skipped...")
|
||||
|
||||
|
||||
threading.Thread(target=lambda: asyncio.run(default_cache_update())).start()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user