mirror of
https://git.datalinker.icu/ltdrdata/ComfyUI-Manager
synced 2025-12-09 22:24:23 +08:00
73 lines
2.2 KiB
Python
73 lines
2.2 KiB
Python
import os
|
|
import logging
|
|
from aiohttp import web
|
|
|
|
def prestartup():
|
|
from . import prestartup_script # noqa: F401
|
|
logging.info('[PRE] ComfyUI-Manager')
|
|
|
|
|
|
def start():
|
|
from comfy.cli_args import args
|
|
|
|
logging.info('[START] ComfyUI-Manager')
|
|
from .common import cm_global # noqa: F401
|
|
|
|
if not args.disable_manager:
|
|
if args.enable_manager_legacy_ui:
|
|
try:
|
|
from .legacy import manager_server # noqa: F401
|
|
from .legacy import share_3rdparty # noqa: F401
|
|
import nodes
|
|
|
|
logging.info("[ComfyUI-Manager] Legacy UI is enabled.")
|
|
nodes.EXTENSION_WEB_DIRS['comfyui-manager-legacy'] = os.path.join(os.path.dirname(__file__), 'js')
|
|
except Exception as e:
|
|
print("Error enabling legacy ComfyUI Manager frontend:", e)
|
|
else:
|
|
from .glob import manager_server # noqa: F401
|
|
from .glob import share_3rdparty # noqa: F401
|
|
|
|
|
|
def should_be_disabled(fullpath:str) -> bool:
|
|
"""
|
|
1. Disables the legacy ComfyUI-Manager.
|
|
2. The blocklist can be expanded later based on policies.
|
|
"""
|
|
from comfy.cli_args import args
|
|
|
|
if not args.disable_manager:
|
|
# In cases where installation is done via a zip archive, the directory name may not be comfyui-manager, and it may not contain a git repository.
|
|
# It is assumed that any installed legacy ComfyUI-Manager will have at least 'comfyui-manager' in its directory name.
|
|
dir_name = os.path.basename(fullpath).lower()
|
|
if 'comfyui-manager' in dir_name:
|
|
return True
|
|
|
|
return False
|
|
|
|
|
|
def get_client_ip(request):
|
|
peername = request.transport.get_extra_info("peername")
|
|
if peername is not None:
|
|
host, port = peername
|
|
return host
|
|
|
|
return "unknown"
|
|
|
|
|
|
def create_middleware():
|
|
connected_clients = set()
|
|
|
|
@web.middleware
|
|
async def manager_middleware(request: web.Request, handler):
|
|
nonlocal connected_clients
|
|
client_ip = get_client_ip(request)
|
|
connected_clients.add(client_ip)
|
|
|
|
handler_path = f"{handler.__module__}.{handler.__name__}"
|
|
|
|
response: web.Response = await handler(request)
|
|
return response
|
|
|
|
return manager_middleware
|
|
|