diff --git a/src/composables/graph/useGraphNodeManager.ts b/src/composables/graph/useGraphNodeManager.ts index db9173058..33822d1c5 100644 --- a/src/composables/graph/useGraphNodeManager.ts +++ b/src/composables/graph/useGraphNodeManager.ts @@ -77,6 +77,7 @@ export interface VueNodeData { outputs?: INodeOutputSlot[] resizable?: boolean shape?: number + showAdvanced?: boolean subgraphId?: string | null titleMode?: TitleMode widgets?: SafeWidgetData[] @@ -314,7 +315,8 @@ export function extractVueNodeData(node: LGraphNode): VueNodeData { color: node.color || undefined, bgcolor: node.bgcolor || undefined, resizable: node.resizable, - shape: node.shape + shape: node.shape, + showAdvanced: node.showAdvanced } } @@ -568,6 +570,13 @@ export function useGraphNodeManager(graph: LGraph): GraphNodeManager { ? propertyEvent.newValue : undefined }) + break + case 'showAdvanced': + vueNodeData.set(nodeId, { + ...currentData, + showAdvanced: Boolean(propertyEvent.newValue) + }) + break } } }, diff --git a/src/lib/litegraph/src/LGraphNodeProperties.ts b/src/lib/litegraph/src/LGraphNodeProperties.ts index ae51d3739..9df938298 100644 --- a/src/lib/litegraph/src/LGraphNodeProperties.ts +++ b/src/lib/litegraph/src/LGraphNodeProperties.ts @@ -13,7 +13,9 @@ const DEFAULT_TRACKED_PROPERTIES: string[] = [ 'flags.pinned', 'mode', 'color', - 'bgcolor' + 'bgcolor', + 'shape', + 'showAdvanced' ] /** * Manages node properties with optional change tracking and instrumentation. diff --git a/src/renderer/extensions/vueNodes/components/NodeWidgets.vue b/src/renderer/extensions/vueNodes/components/NodeWidgets.vue index 9975ec864..ff47510e6 100644 --- a/src/renderer/extensions/vueNodes/components/NodeWidgets.vue +++ b/src/renderer/extensions/vueNodes/components/NodeWidgets.vue @@ -25,7 +25,10 @@ :key="`widget-${index}-${widget.name}`" >
@@ -206,7 +209,12 @@ const gridTemplateRows = computed((): string => { if (!nodeData?.widgets) return '' const processedNames = new Set(toValue(processedWidgets).map((w) => w.name)) return nodeData.widgets - .filter((w) => processedNames.has(w.name) && !w.options?.hidden) + .filter( + (w) => + processedNames.has(w.name) && + !w.options?.hidden && + (!w.options?.advanced || nodeData?.showAdvanced) + ) .map((w) => shouldExpand(w.type) || w.hasLayoutSize ? 'auto' : 'min-content' )