69 lines
2.4 KiB
JavaScript
69 lines
2.4 KiB
JavaScript
import { app } from "../../../scripts/app.js";
|
|
import { api } from '../../../scripts/api.js'
|
|
import { setupWorkflowNode } from './nodetype_workflow.js';
|
|
import { setupInputNode } from "./nodetype_input.js";
|
|
import { setupContinueNode } from "./nodetype_continue.js";
|
|
import { setupOutputNode } from "./nodetype_output.js";
|
|
import { setupLipSyncNode } from "./nodetype_lipSync.js";
|
|
|
|
app.registerExtension({
|
|
name: "FlowChain.jsnodes",
|
|
async beforeRegisterNodeDef(nodeType, nodeData, app) {
|
|
if(!nodeData?.category?.startsWith("FlowChain")) {
|
|
return;
|
|
}
|
|
switch (nodeData.name) {
|
|
case "Workflow":
|
|
setupWorkflowNode(nodeType);
|
|
break;
|
|
case "WorkflowInput":
|
|
setupInputNode(nodeType);
|
|
break;
|
|
case "WorkflowContinue":
|
|
setupContinueNode(nodeType);
|
|
break;
|
|
case "WorkflowOutput":
|
|
setupOutputNode(nodeType);
|
|
break;
|
|
case "WorkflowLipSync":
|
|
setupLipSyncNode(nodeType, nodeData, app);
|
|
break;
|
|
}
|
|
},
|
|
async init(app) {
|
|
api.fetchApi("/flowchain/workflows")
|
|
.then(response => response.json())
|
|
.then(data => {
|
|
app.lipsync_studio = data
|
|
})
|
|
.catch(error => {
|
|
console.error('Error:', error);
|
|
throw error;
|
|
});
|
|
|
|
|
|
const origRemoveNode = LGraphCanvas.prototype.removeNode;
|
|
LGraphCanvas.prototype.removeNode = function(node) {
|
|
if (node && node.inputs && node.outputs) {
|
|
// Assurer que tous les liens sont déconnectés avant de supprimer le nœud
|
|
for (let i = 0; i < node.inputs.length; i++) {
|
|
const input = node.inputs[i];
|
|
if (input.link != null) {
|
|
this.graph.removeLink(input.link);
|
|
}
|
|
}
|
|
for (let i = 0; i < node.outputs.length; i++) {
|
|
const output = node.outputs[i];
|
|
if (output.links && output.links.length) {
|
|
const links = output.links.slice(); // Copier pour éviter les problèmes lors de la modification
|
|
for (const linkId of links) {
|
|
this.graph.removeLink(linkId);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// Appeler la méthode originale
|
|
return origRemoveNode.call(this, node);
|
|
};
|
|
}
|
|
}); |