| 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)
|
|
|