diff --git a/modules/manager_ext_core.py b/modules/manager_ext_core.py index dda802b5..4f670af3 100644 --- a/modules/manager_ext_core.py +++ b/modules/manager_ext_core.py @@ -5,40 +5,57 @@ import manager_core as core import cm_global from manager_util import * +import folder_paths +from comfy.cli_args import args +import latent_preview + version_code = [3, 0] version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '') DEFAULT_CHANNEL = "https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main" -config_path = os.path.join(comfyui_manager_path, "config.ini") +manager_core_config_path = os.path.abspath(os.path.join(folder_paths.get_user_directory(), 'default', 'manager-ext.ini')) cached_config = None + +def get_current_preview_method(): + if args.preview_method == latent_preview.LatentPreviewMethod.Auto: + return "auto" + elif args.preview_method == latent_preview.LatentPreviewMethod.Latent2RGB: + return "latent2rgb" + elif args.preview_method == latent_preview.LatentPreviewMethod.TAESD: + return "taesd" + else: + return "none" + + def write_config(): config = configparser.ConfigParser() config['default'] = { + 'preview_method': get_current_preview_method(), 'share_option': get_config()['share_option'], - "file_logging": get_config()['file_logging'], 'default_ui': get_config()['default_ui'], 'component_policy': get_config()['component_policy'], 'double_click_policy': get_config()['double_click_policy'], 'model_download_by_agent': get_config()['model_download_by_agent'], 'security_level': get_config()['security_level'], } - with open(config_path, 'w') as configfile: + with open(manager_core_config_path, 'w') as configfile: config.write(configfile) def read_config(): try: config = configparser.ConfigParser() - config.read(config_path) + config.read(manager_core_config_path) default_conf = config['default'] # policy migration: disable_unsecure_features -> security_level security_level = default_conf['security_level'] if 'security_level' in default_conf else 'normal' return { + 'preview_method': default_conf['preview_method'] if 'preview_method' in default_conf else get_current_preview_method(), 'share_option': default_conf['share_option'] if 'share_option' in default_conf else 'all', 'default_ui': default_conf['default_ui'] if 'default_ui' in default_conf else 'none', 'component_policy': default_conf['component_policy'] if 'component_policy' in default_conf else 'workflow', @@ -49,6 +66,7 @@ def read_config(): except Exception: return { + 'preview_method': get_current_preview_method(), 'share_option': 'all', 'default_ui': 'none', 'component_policy': 'workflow', diff --git a/modules/manager_ext_server.py b/modules/manager_ext_server.py index 491710ad..6b97ca22 100644 --- a/modules/manager_ext_server.py +++ b/modules/manager_ext_server.py @@ -88,17 +88,6 @@ async def get_risky_level(files, pip_packages): return "middle" -def get_current_preview_method(self): - if args.preview_method == latent_preview.LatentPreviewMethod.Auto: - return "auto" - elif args.preview_method == latent_preview.LatentPreviewMethod.Latent2RGB: - return "latent2rgb" - elif args.preview_method == latent_preview.LatentPreviewMethod.TAESD: - return "taesd" - else: - return "none" - - from manager_downloader import download_url components_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'components')) @@ -114,35 +103,25 @@ def set_preview_method(method): else: args.preview_method = latent_preview.LatentPreviewMethod.NoPreviews - core.get_config()['preview_method'] = args.preview_method + ext_core.get_config()['preview_method'] = args.preview_method -set_preview_method(core.get_config()['preview_method']) +set_preview_method(ext_core.get_config()['preview_method']) def set_default_ui_mode(mode): - core.get_config()['default_ui'] = mode + ext_core.get_config()['default_ui'] = mode def set_component_policy(mode): - core.get_config()['component_policy'] = mode + ext_core.get_config()['component_policy'] = mode def set_double_click_policy(mode): - core.get_config()['double_click_policy'] = mode + ext_core.get_config()['double_click_policy'] = mode -def setup_environment(): - git_exe = core.get_config()['git_exe'] - - if git_exe != '': - git.Git().update_environment(GIT_PYTHON_GIT_EXECUTABLE=git_exe) - - -setup_environment() - # Expand Server api - import server from aiohttp import web import aiohttp @@ -738,9 +717,9 @@ async def terminal_mode(request): async def preview_method(request): if "value" in request.rel_url.query: set_preview_method(request.rel_url.query['value']) - core.write_config() + ext_core.write_config() else: - return web.Response(text=core.manager_funcs.get_current_preview_method(), status=200) + return web.Response(text=ext_core.get_current_preview_method(), status=200) return web.Response(status=200) @@ -749,9 +728,9 @@ async def preview_method(request): async def default_ui_mode(request): if "value" in request.rel_url.query: set_default_ui_mode(request.rel_url.query['value']) - core.write_config() + ext_core.write_config() else: - return web.Response(text=core.get_config()['default_ui'], status=200) + return web.Response(text=ext_core.get_config()['default_ui'], status=200) return web.Response(status=200) @@ -760,9 +739,9 @@ async def default_ui_mode(request): async def component_policy(request): if "value" in request.rel_url.query: set_component_policy(request.rel_url.query['value']) - core.write_config() + ext_core.write_config() else: - return web.Response(text=core.get_config()['component_policy'], status=200) + return web.Response(text=ext_core.get_config()['component_policy'], status=200) return web.Response(status=200) @@ -771,33 +750,9 @@ async def component_policy(request): async def dbl_click_policy(request): if "value" in request.rel_url.query: set_double_click_policy(request.rel_url.query['value']) - core.write_config() + ext_core.write_config() else: - return web.Response(text=core.get_config()['double_click_policy'], status=200) - - return web.Response(status=200) - - -@routes.get("/manager/channel_url_list") -async def channel_url_list(request): - channels = core.get_channel_dict() - if "value" in request.rel_url.query: - channel_url = channels.get(request.rel_url.query['value']) - if channel_url is not None: - core.get_config()['channel_url'] = channel_url - core.write_config() - else: - selected = 'custom' - selected_url = core.get_config()['channel_url'] - - for name, url in channels.items(): - if url == selected_url: - selected = name - break - - res = {'selected': selected, - 'list': core.get_channel_list()} - return web.json_response(res, status=200) + return web.Response(text=ext_core.get_config()['double_click_policy'], status=200) return web.Response(status=200) @@ -945,9 +900,9 @@ if hasattr(PromptServer.instance, "app"): def sanitize(data): return data.replace("<", "<").replace(">", ">") -if not os.path.exists(core.config_path): - core.get_config() - core.write_config() +if not os.path.exists(ext_core.manager_core_config_path): + ext_core.get_config() + ext_core.write_config() cm_global.register_extension('ComfyUI-Manager', {'version': core.version,