Skip to content

Commit d20a061

Browse files
authored
fix convert tool (#77)
* 服务器模式下导入自动调用convert * 删除多余日志
1 parent 33e5f87 commit d20a061

1 file changed

Lines changed: 79 additions & 29 deletions

File tree

bizyui/js/bizyair_tools.js

Lines changed: 79 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,60 @@
11
import { app, ComfyApp } from "../../scripts/app.js";
22
import { api } from "../../../scripts/api.js";
33

4-
app.registerExtension({
5-
name: "bizyair.tool",
6-
setup() {
4+
async function handleFile(json_data) {
5+
const jsonContent = json_data
76

8-
async function handleFile(json_data) {
9-
const jsonContent = json_data
7+
await app.loadGraphData(
8+
jsonContent,
9+
true,
10+
false,
11+
"convert_test"
12+
);
13+
}
1014

11-
await app.loadGraphData(
12-
jsonContent,
13-
true,
14-
false,
15-
"convert_test"
16-
);
15+
// 检查是否为服务器模式
16+
async function isServerMode() {
17+
const serverModeResponse = await fetch("/bizyair/server_mode");
18+
const serverModeData = await serverModeResponse.json();
19+
return serverModeData.data.server_mode === true;
20+
}
1721

18-
}
19-
async function convert(){
20-
const p2 = await app.graphToPrompt();
21-
const json = JSON.stringify(p2["workflow"], null, 2);
22+
async function convert(){
23+
const p2 = await app.graphToPrompt();
24+
const json = JSON.stringify(p2["workflow"], null, 2);
25+
await api.fetchApi("/bizyair/node_converter", {
26+
method: "POST",
27+
headers: {
28+
"Content-Type": "application/json",
29+
},
30+
body: json
31+
}).then(response => response.json())
32+
.then(data => handleFile(data))
33+
.catch(error => console.error("Error:", error));
34+
}
2235

23-
await api.fetchApi("/bizyair/node_converter", {
24-
method: "POST",
25-
headers: {
26-
"Content-Type": "application/json",
27-
},
28-
body: json
29-
}).then(response => response.json())
30-
.then(data => handleFile(data))
31-
.catch(error => console.error("Error:", error));
32-
}
33-
// Add canvas menu options
36+
// 全局变量,用于节流控制
37+
let lastConvertTime = 0;
38+
const MIN_CONVERT_INTERVAL = 3000; // 最小间隔3秒
39+
40+
// 节流函数确保convert不会被频繁调用
41+
async function throttledConvert() {
42+
const serverMode = await isServerMode();
43+
if (!serverMode) {
44+
return;
45+
}
46+
const now = Date.now();
47+
if (now - lastConvertTime > MIN_CONVERT_INTERVAL) {
48+
lastConvertTime = now;;
49+
convert();
50+
}
51+
}
52+
53+
app.registerExtension({
54+
name: "bizyair.tool",
55+
setup() {
56+
console.log('BizyAir Tools extension setup');
57+
// 添加菜单选项
3458
const orig = LGraphCanvas.prototype.getCanvasMenuOptions;
3559
LGraphCanvas.prototype.getCanvasMenuOptions = function () {
3660
const options = orig.apply(this, arguments);
@@ -48,7 +72,33 @@ app.registerExtension({
4872
},
4973
});
5074
return options;
51-
};
52-
53-
},
75+
};
76+
// 监听导入
77+
const origLoadGraphData = app.loadGraphData;
78+
if (origLoadGraphData) {
79+
app.loadGraphData = async function() {
80+
const result = origLoadGraphData.apply(this, arguments);
81+
const serverMode = await isServerMode();
82+
if (serverMode) {
83+
setTimeout(() => {
84+
throttledConvert();
85+
}, 500);
86+
}
87+
return result;
88+
};
89+
}
90+
},
91+
// 添加init钩子,在ComfyUI初始化后调用convert函数
92+
init() {
93+
console.log('BizyAir Tools initializing...');
94+
lastConvertTime = Date.now(); // 记录初始化时间
95+
// 检查是否为服务器模式
96+
setTimeout(async () => {
97+
const serverMode = await isServerMode();
98+
if (serverMode) {
99+
console.log('服务器模式,页面初始化完成,调用convert');
100+
convert();
101+
}
102+
}, 500);
103+
}
54104
});

0 commit comments

Comments
 (0)