From 0a3e22532b0c43096b81c072f6b091617e14dbb5 Mon Sep 17 00:00:00 2001 From: nat-chan Date: Wed, 15 May 2024 20:19:59 +0900 Subject: [PATCH] oshimai --- __init__.py | 22 ++++++++++++++++++++++ client/client.py | 19 +++++++++++++++++++ js/web.js | 31 +++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 __init__.py create mode 100644 client/client.py create mode 100644 js/web.js diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..3343aef --- /dev/null +++ b/__init__.py @@ -0,0 +1,22 @@ +import server # noqa +from aiohttp import web + +NODE_CLASS_MAPPINGS = {} +NODE_DISPLAY_NAME_MAPPINGS = {} +WEB_DIRECTORY = "./js" +__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS", "WEB_DIRECTORY"] + + +@server.PromptServer.instance.routes.post("/graph_to_prompt") +async def graph_to_prompt(request): + data = await request.json() + print("\x1b[31m", data, "\x1b[m") + server.PromptServer.instance.send_sync("run_workflow", data) + return web.Response() + + +@server.PromptServer.instance.routes.post("/graph_to_prompt_from_js") +async def graph_to_prompt_from_js(request): + data = await request.read() + print("\x1b[32m", data, "\x1b[m") + return web.Response() diff --git a/client/client.py b/client/client.py new file mode 100644 index 0000000..78c92df --- /dev/null +++ b/client/client.py @@ -0,0 +1,19 @@ +import argparse +import json + +import requests + + +def post_json_to_server(filepath): + with open(filepath, "r") as file: + data = json.load(file) + response = requests.post("http://localhost:8189/graph_to_prompt", json=data) + print(f"Response Status Code: {response.status_code}") + print(f"Response json: {response.json()}") + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Post JSON to server") + parser.add_argument("filepath", type=str, help="Path to the JSON file to post") + args = parser.parse_args() + post_json_to_server(args.filepath) diff --git a/js/web.js b/js/web.js new file mode 100644 index 0000000..72cbef2 --- /dev/null +++ b/js/web.js @@ -0,0 +1,31 @@ +import { app, ComfyApp } from "../../scripts/app.js"; +import { api } from "../../scripts/api.js"; + +app.registerExtension({ + name: "ComfyUI-graphToPrompt", + + async setup() { + // queuePromptを呼び出すイベントリスナーを追加 + api.addEventListener("run_workflow", async ({ detail }) => { + await app.loadGraphData(detail); + let { workflow, workflow_api } = await app.graphToPrompt(); + console.log("workflow", workflow); + console.log("workflow_api", workflow_api); + const response = await fetch('http://localhost:8189/graph_to_prompt_from_js', { + credentials: "same-origin", + mode: "same-origin", + method: "post", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(workflow) + }); + + if (!response.ok) { + console.error('サーバーからの応答がありません。エラー:', response.status); + } else { + const responseData = await response.json(); + console.log('サーバーからの応答:', responseData); + } + }); + + } +})