|
import { app } from "../../../scripts/app.js";
|
|
import { ComfyWidgets } from "../../../scripts/widgets.js";
|
|
|
|
app.registerExtension({
|
|
name: "pysssss.MathExpression",
|
|
init() {
|
|
const STRING = ComfyWidgets.STRING;
|
|
ComfyWidgets.STRING = function (node, inputName, inputData) {
|
|
const r = STRING.apply(this, arguments);
|
|
r.widget.dynamicPrompts = inputData?.[1].dynamicPrompts;
|
|
return r;
|
|
};
|
|
},
|
|
beforeRegisterNodeDef(nodeType) {
|
|
if (nodeType.comfyClass === "MathExpression|pysssss") {
|
|
const onDrawForeground = nodeType.prototype.onDrawForeground;
|
|
|
|
nodeType.prototype.onNodeCreated = function() {
|
|
|
|
|
|
for(const input of this.inputs) {
|
|
input.type = "INT,FLOAT,IMAGE,LATENT";
|
|
}
|
|
}
|
|
|
|
nodeType.prototype.onDrawForeground = function (ctx) {
|
|
const r = onDrawForeground?.apply?.(this, arguments);
|
|
|
|
const v = app.nodeOutputs?.[this.id + ""];
|
|
if (!this.flags.collapsed && v) {
|
|
const text = v.value[0] + "";
|
|
ctx.save();
|
|
ctx.font = "bold 12px sans-serif";
|
|
ctx.fillStyle = "dodgerblue";
|
|
const sz = ctx.measureText(text);
|
|
ctx.fillText(text, this.size[0] - sz.width - 5, LiteGraph.NODE_SLOT_HEIGHT * 3);
|
|
ctx.restore();
|
|
}
|
|
|
|
return r;
|
|
};
|
|
}
|
|
},
|
|
});
|
|
|