mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-29 02:32:18 +00:00
[feat] Hide subgraph nodes from node library and search (#4498)
This commit is contained in:
@@ -374,6 +374,21 @@ export const useNodeDefStore = defineStore('nodeDef', () => {
|
|||||||
'Hides nodes marked as experimental unless explicitly enabled',
|
'Hides nodes marked as experimental unless explicitly enabled',
|
||||||
predicate: (nodeDef) => showExperimental.value || !nodeDef.experimental
|
predicate: (nodeDef) => showExperimental.value || !nodeDef.experimental
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// Subgraph nodes filter
|
||||||
|
// @todo Remove this filter when subgraph v2 is released
|
||||||
|
registerNodeDefFilter({
|
||||||
|
id: 'core.subgraph',
|
||||||
|
name: 'Hide Subgraph Nodes',
|
||||||
|
description:
|
||||||
|
'Temporarily hides subgraph nodes from node library and search',
|
||||||
|
predicate: (nodeDef) => {
|
||||||
|
// Hide subgraph nodes (identified by category='subgraph' and python_module='nodes')
|
||||||
|
return !(
|
||||||
|
nodeDef.category === 'subgraph' && nodeDef.python_module === 'nodes'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Register core filters on store initialization
|
// Register core filters on store initialization
|
||||||
|
|||||||
@@ -236,6 +236,45 @@ describe('useNodeDefStore', () => {
|
|||||||
|
|
||||||
expect(store.visibleNodeDefs).toHaveLength(2)
|
expect(store.visibleNodeDefs).toHaveLength(2)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('should hide subgraph nodes by default', () => {
|
||||||
|
const normalNode = createMockNodeDef({
|
||||||
|
name: 'normal',
|
||||||
|
category: 'conditioning',
|
||||||
|
python_module: 'nodes'
|
||||||
|
})
|
||||||
|
const subgraphNode = createMockNodeDef({
|
||||||
|
name: 'MySubgraph',
|
||||||
|
category: 'subgraph',
|
||||||
|
python_module: 'nodes'
|
||||||
|
})
|
||||||
|
|
||||||
|
store.updateNodeDefs([normalNode, subgraphNode])
|
||||||
|
|
||||||
|
expect(store.visibleNodeDefs).toHaveLength(1)
|
||||||
|
expect(store.visibleNodeDefs[0].name).toBe('normal')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should show non-subgraph nodes with subgraph category', () => {
|
||||||
|
const normalNode = createMockNodeDef({
|
||||||
|
name: 'normal',
|
||||||
|
category: 'conditioning',
|
||||||
|
python_module: 'custom_extension'
|
||||||
|
})
|
||||||
|
const fakeSubgraphNode = createMockNodeDef({
|
||||||
|
name: 'FakeSubgraph',
|
||||||
|
category: 'subgraph',
|
||||||
|
python_module: 'custom_extension' // Different python_module
|
||||||
|
})
|
||||||
|
|
||||||
|
store.updateNodeDefs([normalNode, fakeSubgraphNode])
|
||||||
|
|
||||||
|
expect(store.visibleNodeDefs).toHaveLength(2)
|
||||||
|
expect(store.visibleNodeDefs.map((n) => n.name)).toEqual([
|
||||||
|
'normal',
|
||||||
|
'FakeSubgraph'
|
||||||
|
])
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('performance', () => {
|
describe('performance', () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user