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