Skip to content

Commit

Permalink
Fix extension widgets not working.
Browse files Browse the repository at this point in the history
  • Loading branch information
comfyanonymous committed Dec 1, 2023
1 parent 5d5c320 commit ec7a00a
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 18 deletions.
3 changes: 1 addition & 2 deletions web/extensions/core/groupNode.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { app } from "../../scripts/app.js";
import { api } from "../../scripts/api.js";
import { getWidgetType } from "../../scripts/widgets.js";
import { mergeIfValid } from "./widgetInputs.js";

const GROUP = Symbol();
Expand Down Expand Up @@ -332,7 +331,7 @@ export class GroupNodeConfig {
const converted = new Map();
const widgetMap = (this.oldToNewWidgetMap[node.index] = {});
for (const inputName of inputNames) {
let widgetType = getWidgetType(inputs[inputName], inputName);
let widgetType = app.getWidgetType(inputs[inputName], inputName);
if (widgetType) {
const convertedIndex = node.inputs?.findIndex(
(inp) => inp.name === inputName && inp.widget?.name === inputName
Expand Down
18 changes: 16 additions & 2 deletions web/scripts/app.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { ComfyLogging } from "./logging.js";
import { ComfyWidgets, getWidgetType } from "./widgets.js";
import { ComfyWidgets } from "./widgets.js";
import { ComfyUI, $el } from "./ui.js";
import { api } from "./api.js";
import { defaultGraph } from "./defaultGraph.js";
Expand Down Expand Up @@ -1377,6 +1377,20 @@ export class ComfyApp {
await this.#invokeExtensionsAsync("registerCustomNodes");
}

getWidgetType(inputData, inputName) {
const type = inputData[0];

if (Array.isArray(type)) {
return "COMBO";
} else if (`${type}:${inputName}` in this.widgets) {
return `${type}:${inputName}`;
} else if (type in this.widgets) {
return type;
} else {
return null;
}
}

async registerNodeDef(nodeId, nodeData) {
const self = this;
const node = Object.assign(
Expand All @@ -1391,7 +1405,7 @@ export class ComfyApp {
const type = inputData[0];

let widgetCreated = true;
const widgetType = getWidgetType(inputData, inputName);
const widgetType = self.getWidgetType(inputData, inputName);
if(widgetType) {
if(widgetType === "COMBO") {
Object.assign(config, self.widgets.COMBO(this, inputName, inputData, app) || {});
Expand Down
14 changes: 0 additions & 14 deletions web/scripts/widgets.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,6 @@ function getNumberDefaults(inputData, defaultStep, precision, enable_rounding) {
return { val: defaultVal, config: { min, max, step: 10.0 * step, round, precision } };
}

export function getWidgetType(inputData, inputName) {
const type = inputData[0];

if (Array.isArray(type)) {
return "COMBO";
} else if (`${type}:${inputName}` in ComfyWidgets) {
return `${type}:${inputName}`;
} else if (type in ComfyWidgets) {
return type;
} else {
return null;
}
}

export function addValueControlWidget(node, targetWidget, defaultValue = "randomize", values, widgetName, inputData) {
let name = inputData[1]?.control_after_generate;
if(typeof name !== "string") {
Expand Down

0 comments on commit ec7a00a

Please sign in to comment.