Spaces:
Running
on
L40S
Running
on
L40S
import { app } from "../../scripts/app.js"; | |
import { addConnectionLayoutSupport } from "./utils.js"; | |
import { PowerPrompt } from "./base_power_prompt.js"; | |
import { NodeTypesString } from "./constants.js"; | |
let nodeData = null; | |
app.registerExtension({ | |
name: "rgthree.PowerPrompt", | |
async beforeRegisterNodeDef(nodeType, passedNodeData, _app) { | |
if (passedNodeData.name.includes("Power Prompt") && passedNodeData.name.includes("rgthree")) { | |
nodeData = passedNodeData; | |
const onNodeCreated = nodeType.prototype.onNodeCreated; | |
nodeType.prototype.onNodeCreated = function () { | |
onNodeCreated ? onNodeCreated.apply(this, []) : undefined; | |
this.powerPrompt = new PowerPrompt(this, passedNodeData); | |
}; | |
addConnectionLayoutSupport(nodeType, app, [ | |
["Left", "Right"], | |
["Right", "Left"], | |
]); | |
} | |
}, | |
async loadedGraphNode(node) { | |
if (node.type === NodeTypesString.POWER_PROMPT) { | |
setTimeout(() => { | |
if (node.outputs[0].type === "STRING") { | |
if (node.outputs[0].links) { | |
node.outputs[3].links = node.outputs[3].links || []; | |
for (const link of node.outputs[0].links) { | |
node.outputs[3].links.push(link); | |
app.graph.links[link].origin_slot = 3; | |
} | |
node.outputs[0].links = null; | |
} | |
node.outputs[0].type = nodeData.output[0]; | |
node.outputs[0].name = nodeData.output_name[0] || node.outputs[0].type; | |
node.outputs[0].color_on = undefined; | |
node.outputs[0].color_off = undefined; | |
} | |
}, 50); | |
} | |
}, | |
}); | |