Replace magic indices.
This commit is contained in:
+17
-10
@@ -5,19 +5,23 @@ app.registerExtension({
|
||||
async beforeRegisterNodeDef(nodeType, nodeData, app) {
|
||||
if (nodeType.comfyClass==="LLMProvider") {
|
||||
nodeType.prototype.myRefreshModels = function (node, name) {
|
||||
if (!name) name = node.widgets[0].value;
|
||||
const provWidget = node.widgets.find((widget) => widget.name === "provider");
|
||||
const modelWidget = node.widgets.find((widget) => widget.name === "model");
|
||||
const fetchWidget = node.widgets.find((widget) => widget.name === "fetch models");
|
||||
|
||||
if (!name) name = provWidget.value;
|
||||
|
||||
const myDisableWidgets = (state) => {
|
||||
node.widgets[0].disabled = state;
|
||||
node.widgets[1].disabled = state;
|
||||
provWidget.disabled = state;
|
||||
modelWidget.disabled = state;
|
||||
// Note: This is the "fetch models" button we add down below
|
||||
node.widgets[2].disabled = state;
|
||||
fetchWidget.disabled = state;
|
||||
};
|
||||
myDisableWidgets(true);
|
||||
|
||||
api.fetchApi(`/llm_models?name=${name}`).then((resp) => {
|
||||
resp.json().then((data) => {
|
||||
let widget = node.widgets[1];
|
||||
let widget = modelWidget;
|
||||
widget.options.values = data;
|
||||
|
||||
if (!widget.options.values.includes(widget.value) && widget.options.values.length > 0) {
|
||||
@@ -32,17 +36,19 @@ app.registerExtension({
|
||||
},
|
||||
async nodeCreated(node) {
|
||||
if (node?.comfyClass==="LLMProvider") {
|
||||
let prov_widget = node.widgets[0];
|
||||
const provWidget = node.widgets.find((widget) => widget.name === "provider");
|
||||
const modelWidget = node.widgets.find((widget) => widget.name === "model");
|
||||
|
||||
// Whenever provider changes value, fetch models
|
||||
const original_callback = prov_widget.callback;
|
||||
prov_widget.callback = function () {
|
||||
const original_callback = provWidget.callback;
|
||||
provWidget.callback = function () {
|
||||
let name = arguments?.[0];
|
||||
node.myRefreshModels(node, name);
|
||||
return original_callback?.apply(this, arguments);
|
||||
}
|
||||
|
||||
// Disable model combo widget until we fetch models
|
||||
node.widgets[1].disabled = true;
|
||||
modelWidget.disabled = true;
|
||||
|
||||
// Add button to fetch models manually
|
||||
const btn = node.addWidget(
|
||||
@@ -58,7 +64,8 @@ app.registerExtension({
|
||||
api.addEventListener("executed", function (event) {
|
||||
var node = app.graph.getNodeById(event.detail.node);
|
||||
if (node?.comfyClass==="LLMTextLatch") {
|
||||
node.widgets[0].value = event.detail.output.text.join("");
|
||||
const textWidget = node.widgets.find((widget) => widget.name === "text");
|
||||
textWidget.value = event.detail.output.text.join("");
|
||||
app.graph.setDirtyCanvas(true, false);
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user