From 3016933ab6f1e704025d4b0cee88e5539f792242 Mon Sep 17 00:00:00 2001 From: dfhfg123 <3247895009@qq.com> Date: Fri, 27 Jun 2025 11:24:27 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E4=B8=8B=E5=AF=BC=E5=85=A5=E8=87=AA=E5=8A=A8=E8=B0=83?= =?UTF-8?q?=E7=94=A8convert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bizyui/js/bizyair_tools.js | 125 ++++++++++++++++++++++++++++--------- 1 file changed, 96 insertions(+), 29 deletions(-) diff --git a/bizyui/js/bizyair_tools.js b/bizyui/js/bizyair_tools.js index 0a5f1ace..b059bdff 100644 --- a/bizyui/js/bizyair_tools.js +++ b/bizyui/js/bizyair_tools.js @@ -1,36 +1,70 @@ import { app, ComfyApp } from "../../scripts/app.js"; import { api } from "../../../scripts/api.js"; -app.registerExtension({ - name: "bizyair.tool", - setup() { +// 将函数移到扩展对象外部以便全局可访问 +async function handleFile(json_data) { + const jsonContent = json_data - async function handleFile(json_data) { - const jsonContent = json_data + await app.loadGraphData( + jsonContent, + true, + false, + "convert_test" + ); +} - await app.loadGraphData( - jsonContent, - true, - false, - "convert_test" - ); +// 检查是否为服务器模式 +async function isServerMode() { + const serverModeResponse = await fetch("/bizyair/server_mode"); + const serverModeData = await serverModeResponse.json(); + return serverModeData.data.server_mode === true; +} - } - async function convert(){ - const p2 = await app.graphToPrompt(); - const json = JSON.stringify(p2["workflow"], null, 2); +async function convert(){ + console.log("开始执行convert函数"); + const p2 = await app.graphToPrompt(); + const json = JSON.stringify(p2["workflow"], null, 2); + console.log('json数据准备完成'); + // alert('正在执行convert函数'); + await api.fetchApi("/bizyair/node_converter", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: json + }).then(response => response.json()) + .then(data => handleFile(data)) + .catch(error => console.error("Error:", error)); +} - await api.fetchApi("/bizyair/node_converter", { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: json - }).then(response => response.json()) - .then(data => handleFile(data)) - .catch(error => console.error("Error:", error)); - } - // Add canvas menu options +// 全局变量,用于节流控制 +let lastConvertTime = 0; +const MIN_CONVERT_INTERVAL = 3000; // 最小间隔3秒 + +// 节流函数:确保convert不会被频繁调用 +async function throttledConvert() { + // 首先检查是否为服务器模式 + const serverMode = await isServerMode(); + if (!serverMode) { + return; + } + + const now = Date.now(); + if (now - lastConvertTime > MIN_CONVERT_INTERVAL) { + lastConvertTime = now; + console.log("节点变化,调用convert"); + convert(); + } else { + console.log("节点变化,但由于间隔太短,跳过convert调用"); + } +} + +app.registerExtension({ + name: "bizyair.tool", + setup() { + console.log('BizyAir Tools extension setup'); + + // 添加菜单选项 const orig = LGraphCanvas.prototype.getCanvasMenuOptions; LGraphCanvas.prototype.getCanvasMenuOptions = function () { const options = orig.apply(this, arguments); @@ -48,7 +82,40 @@ app.registerExtension({ }, }); return options; - }; - - }, + }; + // 监听从导入 + const origLoadGraphData = app.loadGraphData; + if (origLoadGraphData) { + app.loadGraphData = async function() { + const result = origLoadGraphData.apply(this, arguments); + console.log("从文件加载图表"); + // 检查是否为服务器模式 + const serverMode = await isServerMode(); + if (serverMode) { + console.log("服务器模式,将在图表加载后调用convert"); + setTimeout(() => { + throttledConvert(); + }, 500); + } else { + console.log("非服务器模式,跳过图表加载后的convert调用"); + } + return result; + }; + } + }, + // 添加init钩子,在ComfyUI页面完全初始化后调用convert函数 + init() { + console.log('BizyAir Tools initializing...'); + lastConvertTime = Date.now(); // 记录初始化时间 + // 检查是否为服务器模式 + setTimeout(async () => { + const serverMode = await isServerMode(); + if (serverMode) { + console.log('服务器模式,页面初始化完成,调用convert'); + convert(); + } else { + console.log('非服务器模式,跳过初始化时的convert调用'); + } + }, 500); + } }); From c76723e23b399492ca51de185b4649b9f25eecf9 Mon Sep 17 00:00:00 2001 From: dfhfg123 <3247895009@qq.com> Date: Fri, 27 Jun 2025 15:51:11 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bizyui/js/bizyair_tools.js | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/bizyui/js/bizyair_tools.js b/bizyui/js/bizyair_tools.js index b059bdff..327bb190 100644 --- a/bizyui/js/bizyair_tools.js +++ b/bizyui/js/bizyair_tools.js @@ -1,7 +1,6 @@ import { app, ComfyApp } from "../../scripts/app.js"; import { api } from "../../../scripts/api.js"; -// 将函数移到扩展对象外部以便全局可访问 async function handleFile(json_data) { const jsonContent = json_data @@ -21,11 +20,8 @@ async function isServerMode() { } async function convert(){ - console.log("开始执行convert函数"); const p2 = await app.graphToPrompt(); const json = JSON.stringify(p2["workflow"], null, 2); - console.log('json数据准备完成'); - // alert('正在执行convert函数'); await api.fetchApi("/bizyair/node_converter", { method: "POST", headers: { @@ -41,29 +37,23 @@ async function convert(){ let lastConvertTime = 0; const MIN_CONVERT_INTERVAL = 3000; // 最小间隔3秒 -// 节流函数:确保convert不会被频繁调用 +// 节流函数确保convert不会被频繁调用 async function throttledConvert() { - // 首先检查是否为服务器模式 const serverMode = await isServerMode(); if (!serverMode) { return; } - const now = Date.now(); if (now - lastConvertTime > MIN_CONVERT_INTERVAL) { - lastConvertTime = now; - console.log("节点变化,调用convert"); + lastConvertTime = now;; convert(); - } else { - console.log("节点变化,但由于间隔太短,跳过convert调用"); - } + } } app.registerExtension({ name: "bizyair.tool", setup() { - console.log('BizyAir Tools extension setup'); - + console.log('BizyAir Tools extension setup'); // 添加菜单选项 const orig = LGraphCanvas.prototype.getCanvasMenuOptions; LGraphCanvas.prototype.getCanvasMenuOptions = function () { @@ -83,27 +73,22 @@ app.registerExtension({ }); return options; }; - // 监听从导入 + // 监听导入 const origLoadGraphData = app.loadGraphData; if (origLoadGraphData) { app.loadGraphData = async function() { const result = origLoadGraphData.apply(this, arguments); - console.log("从文件加载图表"); - // 检查是否为服务器模式 const serverMode = await isServerMode(); if (serverMode) { - console.log("服务器模式,将在图表加载后调用convert"); setTimeout(() => { throttledConvert(); }, 500); - } else { - console.log("非服务器模式,跳过图表加载后的convert调用"); - } + } return result; }; } }, - // 添加init钩子,在ComfyUI页面完全初始化后调用convert函数 + // 添加init钩子,在ComfyUI初始化后调用convert函数 init() { console.log('BizyAir Tools initializing...'); lastConvertTime = Date.now(); // 记录初始化时间 @@ -113,9 +98,7 @@ app.registerExtension({ if (serverMode) { console.log('服务器模式,页面初始化完成,调用convert'); convert(); - } else { - console.log('非服务器模式,跳过初始化时的convert调用'); - } + } }, 500); } });