34 lines
1.4 KiB
Python
34 lines
1.4 KiB
Python
"""Adachi-Inpaint-Workbench custom-node package for ComfyUI."""
|
|
|
|
from .backend import NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS, normalize_exclusive_prompt
|
|
from .preview_cleanup import start_preview_cleanup
|
|
from .preview_store import PREVIEWS
|
|
from .workspace_execution import register_workspace_routes
|
|
from aiohttp import web
|
|
from server import PromptServer
|
|
import re
|
|
|
|
if not getattr(PromptServer.instance, "_adachi_exclusive_normalizer", False):
|
|
PromptServer.instance.add_on_prompt_handler(normalize_exclusive_prompt)
|
|
PromptServer.instance._adachi_exclusive_normalizer = True
|
|
|
|
if not getattr(PromptServer.instance, "_adachi_preview_route", False):
|
|
@PromptServer.instance.routes.get("/adachi-inpaint/compare/{filename}")
|
|
async def adachi_comparison_preview(request):
|
|
name = request.match_info["filename"]
|
|
if not re.fullmatch(r"[A-Za-z0-9_-]{32}\.png", name):
|
|
raise web.HTTPNotFound()
|
|
data = PREVIEWS.get(name[:-4])
|
|
if data is None:
|
|
raise web.HTTPNotFound(text="Comparison preview expired; run the workflow again.")
|
|
return web.Response(body=data, content_type="image/png", headers={"Cache-Control": "no-store"})
|
|
|
|
PromptServer.instance._adachi_preview_route = True
|
|
|
|
start_preview_cleanup()
|
|
register_workspace_routes(PromptServer.instance)
|
|
|
|
WEB_DIRECTORY = "./web"
|
|
|
|
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS", "WEB_DIRECTORY"]
|