mohamedsobhi777's picture
Synced repo using 'sync_with_huggingface' Github Action
86d4cbe verified
raw
history blame
3.06 kB
from .nodes.InputString import FramerComfyInputStringNode
from .nodes.InputNumber import FramerComfyInputNumberNode
from .nodes.InputImage import FramerComfyInputImageNode
from .nodes.InputFloat import FramerComfyFloatInputNode
from .nodes.InputBoolean import FramerComfyBooleanInputNode
from .nodes.OutputImage import FramerComfySaveImageNode
NODE_CLASS_MAPPINGS = {
"FramerComfyInputStringNode": FramerComfyInputStringNode,
"FramerComfyInputNumberNode": FramerComfyInputNumberNode,
"FramerComfyInputImageNode": FramerComfyInputImageNode,
"FramerComfyFloatInputNode": FramerComfyFloatInputNode,
"FramerComfyBooleanInputNode": FramerComfyBooleanInputNode,
"FramerComfySaveImageNode": FramerComfySaveImageNode
}
NODE_DISPLAY_NAME_MAPPINGS = {
"FramerComfyInputStringNode": "FramerComfy Input String",
"FramerComfyInputNumberNode": "FramerComfy Input Number",
"FramerComfyInputImageNode": "FramerComfy Input Image",
"FramerComfyFloatInputNode": "FramerComfy Input Float",
"FramerComfyBooleanInputNode": "FramerComfy Input Boolean",
"FramerComfySaveImageNode": "FramerComfy Save Image"
}
import sys
import os
import random
import traceback
from aiohttp import web
from io import StringIO
from .hf import deploy_workflow
from .generate_reqs import generate_requirements
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.")
# Prevent reimporting of custom nodes
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"
@server.PromptServer.instance.routes.post("/saveasscript")
async def save_as_script(request):
try:
data = await request.json()
name = data["name"]
workflow = data["workflow"]
workflow_models = data["workflow_models"]
hf_access_token = data["hf_access_token"]
sio = StringIO()
app_code_generator = ComfyUItoPython(workflow=workflow, output_file=sio, workflow_models=workflow_models)
app_code = app_code_generator.execute()
name = f'FramerComfy_{name}_{str(random.randint(1000000000, 9999999999))}'
requirements_file = generate_requirements()
print("Deploying to Hugging Face...")
# Deploy to Hugging Face
deploy_workflow(name, app_code, requirements_file, hf_access_token)
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)