Updates for backend list type in object_info

This commit is contained in:
space-nuko
2023-05-14 11:07:52 -05:00
parent 28c9e6ba57
commit 5163fc7d54
2 changed files with 10 additions and 6 deletions

View File

@@ -245,7 +245,7 @@ export default class ComfyApp {
const node: LGraphNodeConstructor = { const node: LGraphNodeConstructor = {
class: ctor, class: ctor,
title: nodeData.name, title: nodeData.display_name || nodeData.name,
type: nodeId, type: nodeId,
desc: `ComfyNode: ${nodeId}` desc: `ComfyNode: ${nodeId}`
} }

View File

@@ -2,19 +2,21 @@ import LGraphCanvas from "@litegraph-ts/core/src/LGraphCanvas";
import ComfyGraphNode from "./ComfyGraphNode"; import ComfyGraphNode from "./ComfyGraphNode";
import ComfyWidgets from "$lib/widgets" import ComfyWidgets from "$lib/widgets"
import type { ComfyWidgetNode, ComfyExecutionResult } from "./ComfyWidgetNodes"; import type { ComfyWidgetNode, ComfyExecutionResult } from "./ComfyWidgetNodes";
import { BuiltInSlotType, type SerializedLGraphNode } from "@litegraph-ts/core"; import { BuiltInSlotShape, BuiltInSlotType, type SerializedLGraphNode } from "@litegraph-ts/core";
import type IComfyInputSlot from "$lib/IComfyInputSlot"; import type IComfyInputSlot from "$lib/IComfyInputSlot";
import type { ComfyInputConfig } from "$lib/IComfyInputSlot"; import type { ComfyInputConfig } from "$lib/IComfyInputSlot";
/* /*
* Base class for any node with configuration sent by the backend. * Base class for any node wit configuration sent by the backend.
*/ */
export class ComfyBackendNode extends ComfyGraphNode { export class ComfyBackendNode extends ComfyGraphNode {
comfyClass: string; comfyClass: string;
displayName: string | null;
constructor(title: string, comfyClass: string, nodeData: any) { constructor(title: string, comfyClass: string, nodeData: any) {
super(title) super(title)
this.type = comfyClass; // XXX: workaround dependency in LGraphNode.addInput() this.type = comfyClass; // XXX: workaround dependency in LGraphNode.addInput()
this.displayName = nodeData.display_name;
this.comfyClass = comfyClass; this.comfyClass = comfyClass;
this.isBackendNode = true; this.isBackendNode = true;
@@ -32,6 +34,7 @@ export class ComfyBackendNode extends ComfyGraphNode {
} }
} }
// comfy class -> input name -> input config
private static defaultInputConfigs: Record<string, Record<string, ComfyInputConfig>> = {} private static defaultInputConfigs: Record<string, Record<string, ComfyInputConfig>> = {}
private setup(nodeData: any) { private setup(nodeData: any) {
@@ -43,7 +46,7 @@ export class ComfyBackendNode extends ComfyGraphNode {
ComfyBackendNode.defaultInputConfigs[this.type] = {} ComfyBackendNode.defaultInputConfigs[this.type] = {}
for (const inputName in inputs) { for (const inputName in inputs) {
const config = { minWidth: 1, minHeight: 1 }; const config: Partial<IComfyInputSlot> = {};
const inputData = inputs[inputName]; const inputData = inputs[inputName];
const type = inputData[0]; const type = inputData[0];
@@ -67,13 +70,14 @@ export class ComfyBackendNode extends ComfyGraphNode {
} }
if ("widgetNodeType" in config) if ("widgetNodeType" in config)
ComfyBackendNode.defaultInputConfigs[this.type][config.name] = config.config ComfyBackendNode.defaultInputConfigs[this.type][inputName] = (config as IComfyInputSlot).config
} }
for (const o in nodeData["output"]) { for (const o in nodeData["output"]) {
const output = nodeData["output"][o]; const output = nodeData["output"][o];
const outputName = nodeData["output_name"][o] || output; const outputName = nodeData["output_name"][o] || output;
this.addOutput(outputName, output); const outputShape = nodeData["output_is_list"][o] ? BuiltInSlotShape.GRID_SHAPE : BuiltInSlotShape.CIRCLE_SHAPE;
this.addOutput(outputName, output, { shape: outputShape });
} }
this.serialize_widgets = false; this.serialize_widgets = false;