Files
JaredTherriault-ComfyUI-JNodes/__init__.py
T

141 lines
5.2 KiB
Python

from .py.server_backend import *
from aiohttp import web
from pathlib import Path
import asyncio
import importlib
import server
@server.PromptServer.instance.routes.get('/jnodes_list_comfyui_subdirectories')
async def list_comfyui_subdirectories_wrapper(request):
loop = asyncio.get_event_loop()
return await loop.run_in_executor(None, lambda: list_comfyui_subdirectories_request(request))
@server.PromptServer.instance.routes.get('/jnodes_list_immediate_subdirectories')
async def list_immediate_subdirectories_wrapper(request):
loop = asyncio.get_event_loop()
return await loop.run_in_executor(None, lambda: list_immediate_subdirectories_request(request))
@server.PromptServer.instance.routes.get('/jnodes_get_comfyui_subdirectory_images')
async def get_comfyui_subdirectory_images_wrapper(request):
loop = asyncio.get_event_loop()
return await loop.run_in_executor(None, lambda: get_comfyui_subdirectory_images_request(request))
@server.PromptServer.instance.routes.get('/jnodes_list_model_subdirectories')
async def list_model_subdirectories_wrapper(request):
loop = asyncio.get_event_loop()
return await loop.run_in_executor(None, lambda: list_model_subdirectories_request(request))
@server.PromptServer.instance.routes.get('/jnodes_model_items')
async def get_model_items_wrapper(request):
loop = asyncio.get_event_loop()
return await loop.run_in_executor(None, lambda: get_model_items(request))
@server.PromptServer.instance.routes.post('/jnodes_save_model_user_info')
async def save_model_user_info_wrapper(request):
return await save_model_user_info(request)
@server.PromptServer.instance.routes.get("/jnodes_view_image")
async def view_image_wrapper(request):
return await view_image(request)
@server.PromptServer.instance.routes.post("/jnodes_save_image_as_model_preview")
async def save_image_as_model_preview_wrapper(request):
return await save_image_as_model_preview(request)
@server.PromptServer.instance.routes.post('/jnodes_copy_item')
async def copy_item_wrapper(request):
return await copy_item(request)
@server.PromptServer.instance.routes.get("/jnodes_load_info")
async def load_info_wrapper(request):
return load_info(request)
@server.PromptServer.instance.routes.post('/jnodes_request_open_file_manager')
async def request_open_file_manager_wrapper(request):
return await request_open_file_manager(request)
@server.PromptServer.instance.routes.post('/jnodes_request_task_cancellation')
async def request_task_cancellation_wrapper(request):
request_task_cancellation()
return web.json_response({"success": True})
@server.PromptServer.instance.routes.post('/jnodes_find_files')
async def find_files_wrapper(request):
return await find_files(request)
@server.PromptServer.instance.routes.post('/jnodes_save_text')
async def save_text_wrapper(request):
return await save_text(request)
@server.PromptServer.instance.routes.post('/jnodes_load_text')
async def load_text_wrapper(request):
return await load_text(request)
@server.PromptServer.instance.routes.post('/jnodes_post_setting')
async def post_setting_wrapper(request):
return await post_setting(request)
@server.PromptServer.instance.routes.post('/jnodes_post_all_settings')
async def post_all_settings_wrapper(request):
return await post_all_settings(request)
@server.PromptServer.instance.routes.get('/jnodes_get_setting')
async def get_setting_wrapper(request):
return await get_setting(request)
@server.PromptServer.instance.routes.get('/jnodes_get_all_settings')
async def get_all_settings_wrapper(request):
return await get_all_settings(request)
@server.PromptServer.instance.routes.post("/jnodes_upload_image")
async def upload_image_wrapper(request):
return await upload_image(request)
@server.PromptServer.instance.routes.delete("/jnodes_delete_item")
async def delete_item_wrapper(request):
return await delete_item(request)
@server.PromptServer.instance.routes.get('/jnodes_get_browser_video_extensions')
def get_browser_video_extensions_wrapper(request):
from .py.utils import ACCEPTED_BROWSER_VIDEO_EXTENSIONS
return web.json_response({"success": True, "extensions": ACCEPTED_BROWSER_VIDEO_EXTENSIONS})
@server.PromptServer.instance.routes.post('/jnodes_edit_image_metadata')
async def edit_image_metadata_wrapper(request):
return await edit_image_metadata(request)
WEB_DIRECTORY = "./web"
NODE_CLASS_MAPPINGS = {}
NODE_DISPLAY_NAME_MAPPINGS = {}
def load_nodes():
for filename in (Path(__file__).parent.resolve() / "py").glob("*.py"):
if not filename.is_file():
continue
if filename.suffix != ".py":
continue
if filename.name.startswith("."):
continue
if filename.name == "__init__.py":
continue
print("Loading:", filename)
module_name = filename.stem
module = importlib.import_module(f"{__package__}.py.{module_name}")
try:
NODE_CLASS_MAPPINGS.update(getattr(module, "NODE_CLASS_MAPPINGS"))
if hasattr(module, "NODE_DISPLAY_NAME_MAPPINGS"):
NODE_DISPLAY_NAME_MAPPINGS.update(getattr(module, "NODE_DISPLAY_NAME_MAPPINGS"))
except:
pass
load_nodes()
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS", "WEB_DIRECTORY"]