js update
This commit is contained in:
+2
-1
@@ -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
@@ -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')]
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user