mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2025-01-11 02:15:17 +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);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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();
|
||||
|
@ -376,6 +376,7 @@ export class ComfyUI {
|
||||
},
|
||||
}),
|
||||
$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: "Load Default", onclick: () => app.loadGraphData() }),
|
||||
]);
|
||||
|
Loading…
Reference in New Issue
Block a user