js update

This commit is contained in:
JerryOrbachJr
2024-02-13 19:56:12 -05:00
parent 43303cf831
commit 704b3c2626
3 changed files with 49 additions and 2 deletions
+2 -1
View File
@@ -15,4 +15,5 @@ NODE_DISPLAY_NAME_MAPPINGS = {
"JOJR_RandomSize": "Random Size",
}
__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS']
WEB_DIRECTORY = "js"
__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS', 'WEB_DIRECTORY']
+4 -1
View File
@@ -1,4 +1,5 @@
import yaml, os, random
from server import PromptServer
sizes_dir = os.path.join(os.path.dirname(__file__), "sizes")
sizes_dir = os.path.abspath(sizes_dir)
custom_sizes_dir = os.path.join(os.path.dirname(__file__), "sizes","custom")
@@ -29,12 +30,14 @@ class RandomSize:
"seed": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff}),
"preset": (preset,)
},
"hidden": {"id":"UNIQUE_ID"}
}
RETURN_TYPES = ("INT","INT")
RETURN_NAMES = ("width","height")
FUNCTION = "func"
def func(self:str,seed, preset):
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)
w, h = [int(i) for i in size.split('x')]
+43
View File
@@ -0,0 +1,43 @@
import { app } from "../../../scripts/app.js";
import { api } from "../../../scripts/api.js";
import { ComfyWidgets } from "../../../scripts/widgets.js";
function displayMessage(message) {
if (!this.origComputeSize) {
this.origComputeSize = this.computeSize;
this.computeSize = impose_min_width;
}
if (this.widgets) { this.widgets.forEach((w) => { if (w.onRemove) { w.onRemove(); } } ) }
this.widgets = [];
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";
}
w.value = message;
this.onResize?.(this.size);
};
app.registerExtension({
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.handleMessage) node.handleMessage(displayMessage);
else (console.log(`node ${id} couldn't handle a message`));
}
api.addEventListener("jojr.random-sizes.sendmessage", messageHandler);
console.log("jojr.random-sizes.sendmessage added")
},
async beforeRegisterNodeDef(nodeType, nodeData, app) {
if (nodeType.comfyClass=="RandomSize" ) {
nodeType.prototype.displayMessage = displayMessage;
}
}
})