mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-22 13:42:12 -03:00
Add LoraRandomizer extension that monitors node mode changes and triggers updates to connected downstream trigger word toggle nodes, matching the behavior implemented for Lora Stacker nodes.
41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
import { app } from "../../scripts/app.js";
|
|
import {
|
|
getActiveLorasFromNode,
|
|
updateDownstreamLoaders,
|
|
chainCallback,
|
|
} from "./utils.js";
|
|
|
|
app.registerExtension({
|
|
name: "LoraManager.LoraRandomizer",
|
|
|
|
async beforeRegisterNodeDef(nodeType, nodeData, app) {
|
|
if (nodeType.comfyClass === "Lora Randomizer (LoraManager)") {
|
|
chainCallback(nodeType.prototype, "onNodeCreated", async function () {
|
|
this.serialize_widgets = true;
|
|
|
|
let _mode = this.mode;
|
|
const self = this;
|
|
Object.defineProperty(this, 'mode', {
|
|
get() {
|
|
return _mode;
|
|
},
|
|
set(value) {
|
|
const oldValue = _mode;
|
|
_mode = value;
|
|
|
|
if (self.onModeChange) {
|
|
self.onModeChange(value, oldValue);
|
|
}
|
|
}
|
|
});
|
|
|
|
this.onModeChange = function(newMode, oldMode) {
|
|
const isNodeActive = newMode === 0 || newMode === 3;
|
|
const activeLoraNames = isNodeActive ? getActiveLorasFromNode(self) : new Set();
|
|
updateDownstreamLoaders(self);
|
|
};
|
|
});
|
|
}
|
|
},
|
|
});
|