mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2025-01-11 10:25:16 +00:00
Add support for file list refresh feature in node (#192)
* Added file reload feature to widgets. * Modify feature name 'reload' to 'refresh' and fixed ignoring button name. * refresh widget bugfix * crash patch for "widget" input by type mismatch * compensate offset on showimage * adding widget caused misaligned offset * patch refresh feature for general method * clean up patch and following upstream * make more clean code for refresh feature * move refresh button position * robust patch for refresh feature * patch for refreh feature * avoid specify REFRESH_LIST for each node * prevent updating selected value unless removed item * update all combo list for 'required input' in node --------- Co-authored-by: Lt.Dr.Data <lt.dr.data@gmail.com>
This commit is contained in:
parent
bb1223d83f
commit
d3a375c8fb
@ -901,6 +901,31 @@ class ComfyApp {
|
|||||||
}
|
}
|
||||||
this.extensions.push(extension);
|
this.extensions.push(extension);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Refresh combo list on whole nodes
|
||||||
|
*/
|
||||||
|
async refreshComboInNodes() {
|
||||||
|
const defs = await api.getNodeDefs();
|
||||||
|
|
||||||
|
for(let nodeNum in this.graph._nodes) {
|
||||||
|
const node = this.graph._nodes[nodeNum];
|
||||||
|
|
||||||
|
const def = defs[node.type];
|
||||||
|
|
||||||
|
for(const widgetNum in node.widgets) {
|
||||||
|
const widget = node.widgets[widgetNum]
|
||||||
|
|
||||||
|
if(widget.type == "combo" && def["input"]["required"][widget.name] !== undefined) {
|
||||||
|
widget.options.values = def["input"]["required"][widget.name][0];
|
||||||
|
|
||||||
|
if(!widget.options.values.includes(widget.value)) {
|
||||||
|
widget.value = widget.options.values[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const app = new ComfyApp();
|
export const app = new ComfyApp();
|
||||||
|
@ -376,6 +376,7 @@ export class ComfyUI {
|
|||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
$el("button", { textContent: "Load", onclick: () => fileInput.click() }),
|
$el("button", { textContent: "Load", onclick: () => fileInput.click() }),
|
||||||
|
$el("button", { textContent: "Refresh", onclick: () => app.refreshComboInNodes() }),
|
||||||
$el("button", { textContent: "Clear", onclick: () => app.graph.clear() }),
|
$el("button", { textContent: "Clear", onclick: () => app.graph.clear() }),
|
||||||
$el("button", { textContent: "Load Default", onclick: () => app.loadGraphData() }),
|
$el("button", { textContent: "Load Default", onclick: () => app.loadGraphData() }),
|
||||||
]);
|
]);
|
||||||
|
Loading…
Reference in New Issue
Block a user