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