mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-21 21:22:11 -03:00
feat(randomizer): add mode change listener to update downstream trigger words
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.
This commit is contained in:
40
web/comfyui/lora_randomizer.js
Normal file
40
web/comfyui/lora_randomizer.js
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
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);
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
@@ -146,6 +146,13 @@ app.registerExtension({
|
|||||||
isUpdating = false;
|
isUpdating = false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Setup input widget with autocomplete
|
||||||
|
inputWidget.callback = setupInputWidgetWithAutocomplete(
|
||||||
|
this,
|
||||||
|
inputWidget,
|
||||||
|
originalCallback
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user