| import sys |
| import os |
|
|
| from io import StringIO |
|
|
| import traceback |
|
|
| from aiohttp import web |
|
|
| ext_dir = os.path.dirname(__file__) |
| sys.path.append(ext_dir) |
|
|
| try: |
| import black |
| except ImportError: |
| print("Unable to import requirements for ComfyUI-SaveAsScript.") |
| print("Installing...") |
|
|
| import importlib |
|
|
| spec = importlib.util.spec_from_file_location( |
| "impact_install", os.path.join(os.path.dirname(__file__), "install.py") |
| ) |
| impact_install = importlib.util.module_from_spec(spec) |
| spec.loader.exec_module(impact_install) |
|
|
| print("Successfully installed. Hopefully, at least.") |
|
|
| |
| os.environ["RUNNING_IN_COMFYUI"] = "TRUE" |
|
|
| from comfyui_to_python import ComfyUItoPython |
|
|
| sys.path.append(os.path.dirname(os.path.dirname(ext_dir))) |
|
|
| import server |
|
|
| WEB_DIRECTORY = "js" |
| NODE_CLASS_MAPPINGS = {} |
|
|
|
|
| @server.PromptServer.instance.routes.post("/saveasscript") |
| async def save_as_script(request): |
| try: |
| data = await request.json() |
| name = data["name"] |
| workflow = data["workflow"] |
|
|
| sio = StringIO() |
| ComfyUItoPython(workflow=workflow, output_file=sio) |
|
|
| sio.seek(0) |
| data = sio.read() |
|
|
| return web.Response(text=data, status=200) |
| except Exception as e: |
| traceback.print_exc() |
| return web.Response(text=str(e), status=500) |
|
|