From 32430968b8c78bf4906f67333169093991cee7a4 Mon Sep 17 00:00:00 2001 From: bymyself Date: Wed, 25 Sep 2024 16:33:14 -0700 Subject: [PATCH] Update groupnode/component to be compatible with frontend v1.2.64 (#1084) --- glob/manager_core.py | 2 +- js/components-manager.js | 20 +++++++++++--------- js/custom-nodes-manager.js | 2 +- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/glob/manager_core.py b/glob/manager_core.py index c4bf2226..0da2c57d 100644 --- a/glob/manager_core.py +++ b/glob/manager_core.py @@ -1135,7 +1135,7 @@ async def extract_nodes_from_workflow(filepath, mode='local', channel_url='defau if node_name in ['Reroute', 'Note']: continue - if node_name is not None and not node_name.startswith('workflow/'): + if node_name is not None and not (node_name.startswith('workflow/') or node_name.startswith('workflow>')): used_nodes.add(node_name) if 'nodes' in workflow: diff --git a/js/components-manager.js b/js/components-manager.js index 248a74d2..b2ccf43b 100644 --- a/js/components-manager.js +++ b/js/components-manager.js @@ -4,6 +4,8 @@ import { sleep, show_message } from "./common.js"; import { GroupNodeConfig, GroupNodeHandler } from "../../extensions/core/groupNode.js"; import { ComfyDialog, $el } from "../../scripts/ui.js"; +const SEPARATOR = ">" + let pack_map = {}; let rpack_map = {}; @@ -20,7 +22,7 @@ export function getPureName(node) { let purename = node.comfyClass.substring(category.length+1); return purename; } - else if(node.comfyClass.startsWith('workflow/')) { + else if(node.comfyClass.startsWith('workflow/') || node.comfyClass.startsWith(`workflow${SEPARATOR}`)) { return node.comfyClass.substring(9); } else { @@ -76,7 +78,7 @@ export async function load_components() { let category = data.packname; if(data.category) { - category += "/" + data.category; + category += SEPARATOR + data.category; } if(category == '') { category = 'components'; @@ -100,7 +102,7 @@ export async function load_components() { try { let category = nodeData.packname; if(nodeData.category) { - category += "/" + nodeData.category; + category += SEPARATOR + nodeData.category; } if(category == '') { category = 'components'; @@ -139,7 +141,7 @@ export async function load_components() { try { let category = nodeData.packname; if(nodeData.workflow.category) { - category += "/" + nodeData.category; + category += SEPARATOR + nodeData.category; } if(category == '') { category = 'components'; @@ -174,7 +176,7 @@ export async function load_components() { try { let category = nodeData.workflow.packname; if(nodeData.workflow.category) { - category += "/" + nodeData.category; + category += SEPARATOR + nodeData.category; } if(category == '') { category = 'components'; @@ -234,7 +236,7 @@ async function save_as_component(node, version, author, prefix, nodename, packna let category = body.workflow.packname; if(body.workflow.category) { - category += "/" + body.workflow.category; + category += SEPARATOR + body.workflow.category; } if(category == '') { category = 'components'; @@ -266,7 +268,7 @@ async function import_component(component_name, component, mode) { let category = component.packname; if(component.category) { - category += "/" + component.category; + category += SEPARATOR + component.category; } if(category == '') { category = 'components'; @@ -403,7 +405,7 @@ function handle_import_components(components) { } if(cnt == 1 && last_name) { - const node = LiteGraph.createNode(`workflow/${last_name}`); + const node = LiteGraph.createNode(`workflow${SEPARATOR}${last_name}`); node.pos = [app.canvas.graph_mouse[0], app.canvas.graph_mouse[1]]; app.canvas.graph.add(node, false); } @@ -786,7 +788,7 @@ app.graphToPrompt = async function () { // get used group nodes let used_group_nodes = new Set(); for(let node of p.workflow.nodes) { - if(node.type.startsWith('workflow/')) { + if(node.type.startsWith(`workflow/`) || node.type.startsWith(`workflow${SEPARATOR}`)) { used_group_nodes.add(node.type.substring(9)); } } diff --git a/js/custom-nodes-manager.js b/js/custom-nodes-manager.js index eccdd683..7584e606 100644 --- a/js/custom-nodes-manager.js +++ b/js/custom-nodes-manager.js @@ -1106,7 +1106,7 @@ export class CustomNodesManager { for (let i in nodes) { const node_type = nodes[i].type; - if(node_type.startsWith('workflow/')) + if(node_type.startsWith('workflow/') || node_type.startsWith('workflow>')) continue; if (!registered_nodes.has(node_type)) {