On gen, display sizes, highlight selected

This commit is contained in:
JO Jr.
2024-02-14 15:35:55 -05:00
parent 704b3c2626
commit b0a17487ac
2 changed files with 43 additions and 1 deletions
+37
View File
@@ -0,0 +1,37 @@
import { app } from "../../../scripts/app.js";
import { api } from "../../../scripts/api.js";
import { ComfyWidgets } from "../../../scripts/widgets.js";
function displayMessage(message) {
var w = this.widgets?.find((w) => w.name === "display_text_widget");
if (w === undefined) {
w = ComfyWidgets["STRING"](this, "display_text_widget", ["STRING", { multiline: true }], app).widget;
w.inputEl.readOnly = true;
w.inputEl.style.opacity = 0.6;
w.inputEl.style.fontSize = "9pt";
}
const display = message.join('\n');
w.value = 'Sizes in present:\n' + display;
this.onResize?.(this.size);
};
const ext = {
name: "jojr.random-sizes.displaymessage",
async setup() {
function messageHandler(event) {
const id = event.detail.id;
const message = event.detail.message;
const node = app.graph._nodes_by_id[id];
if (node && node.displayMessage) node.displayMessage(message);
else (console.log(`node ${id} couldn't handle a message`));
}
api.addEventListener("jojr.random-sizes.sendmessage", messageHandler);
},
async beforeRegisterNodeDef(nodeType, nodeData, app) {
if (nodeType.comfyClass=="JOJR_RandomSize" ) {
nodeType.prototype.displayMessage = displayMessage;
}
}
}
app.registerExtension(ext)
+6 -1
View File
@@ -37,8 +37,13 @@ class RandomSize:
FUNCTION = "func"
def func(self:str,seed, preset,id):
sizes = get_sizes_from_preset_file(preset)
PromptServer.instance.send_sync("jojr.random-sizes.sendmessage", {"id": id, "message":sizes})
rand_obj = random.Random(seed)
size = rand_obj.choice(sizes)
for i in range(len(sizes)):
if sizes[i] == size:
sizes[i] = f"*{size}*"
PromptServer.instance.send_sync("jojr.random-sizes.sendmessage", {"id": id, "message":sizes})
w, h = [int(i) for i in size.split('x')]
return (w,h)