From 0698ec23c0ed230bf9823aad8ed75db6141fa89f Mon Sep 17 00:00:00 2001 From: Christian Byrne Date: Thu, 26 Feb 2026 18:40:15 -0800 Subject: [PATCH] feat: wire essentials_category for Essentials tab display (#9091) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Wire `essentials_category` through from backend to the Essentials tab UI. Creates a single source of truth for node categorization and ordering. ### Changes **New file — `src/constants/essentialsNodes.ts`:** - Single source of truth: `ESSENTIALS_NODES` (ordered nodes per category), `ESSENTIALS_CATEGORIES` (folder display order), `ESSENTIALS_CATEGORY_MAP` (flat lookup), `TOOLKIT_NOVEL_NODE_NAMES` (telemetry), `TOOLKIT_BLUEPRINT_MODULES` **Refactored files:** - `src/types/nodeSource.ts`: Removed inline `ESSENTIALS_CATEGORY_MOCK`, imports `ESSENTIALS_CATEGORY_MAP` from centralized constants - `src/services/nodeOrganizationService.ts`: Removed inline `NODE_ORDER_BY_FOLDER`, imports `ESSENTIALS_NODES` and `ESSENTIALS_CATEGORIES` - `src/constants/toolkitNodes.ts`: Re-exports from `essentialsNodes.ts` instead of maintaining a separate list **Subgraph passthrough:** - `src/stores/subgraphStore.ts`: Passes `essentials_category` from `GlobalSubgraphData` and extracts it from `definitions.subgraphs[0]` as fallback - `src/platform/workflow/validation/schemas/workflowSchema.ts`: Added `essentials_category` to `SubgraphDefinitionBase` and `zSubgraphDefinition` **Tests:** - `src/constants/essentialsNodes.test.ts`: 6 tests validating no duplicates, complete coverage, basics exclusion - `src/stores/subgraphStore.test.ts`: 2 tests for essentials_category passthrough All 43 relevant tests pass. Typecheck, lint, format clean. **Depends on:** Comfy-Org/ComfyUI#12573 Fixes COM-15221 ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-9091-feat-wire-essentials_category-for-Essentials-tab-display-30f6d73d3650814ab3d4c06b451c273b) by [Unito](https://www.unito.io) --------- Co-authored-by: github-actions --- ...ode-badge-Hide-built-in-chromium-linux.png | Bin 44055 -> 43259 bytes .../node-badge-Show-all-chromium-linux.png | Bin 45211 -> 43259 bytes src/constants/essentialsNodes.test.ts | 62 ++++++++++ src/constants/essentialsNodes.ts | 115 ++++++++++++++++++ src/constants/toolkitNodes.ts | 41 +------ .../validation/schemas/workflowSchema.ts | 2 + src/services/nodeOrganizationService.ts | 70 ++--------- src/stores/subgraphStore.test.ts | 98 +++++++++++++++ src/stores/subgraphStore.ts | 6 + src/types/nodeSource.test.ts | 36 +++++- src/types/nodeSource.ts | 52 ++------ 11 files changed, 347 insertions(+), 135 deletions(-) create mode 100644 src/constants/essentialsNodes.test.ts create mode 100644 src/constants/essentialsNodes.ts diff --git a/browser_tests/tests/nodeBadge.spec.ts-snapshots/node-badge-Hide-built-in-chromium-linux.png b/browser_tests/tests/nodeBadge.spec.ts-snapshots/node-badge-Hide-built-in-chromium-linux.png index 7a2293ae155310cb2c219c391af57b8dd89b4233..d13b7dab3a5157ca4012cb896014bd916a588ee0 100644 GIT binary patch literal 43259 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 z zz4Wi$qYs7?_VU_LMf~UKOxiDLh`ou!t+US{AHYO}@ku84a2pgh&Z%F(2|PYBCb45aQgTtTJ9l(lkc>dVrFdEdSQ$pXPpH0UtOcs34k zWmyy6py=(~1ZrU0Hr&CZYJ-OFHm;gV_Nh)3J3TM%TWzZLUc=1Dy;l;X7VJbZ_#Q z#u{umb&B7WD@~61xQu0RP-&u?ysqWtzv%!a*p92_u6L^0*0mGjTlA>RbVmNZR8SD7 z5VpR>(y|j#*gAd^B$cSnz9{W*7(MOhYT?M~O)N;SZ9$&?b%cvy`sVKwvOQznqXmJ6 zpI^JX|9yk{Pxx=%+%Nq1m)MLS@!#3A82uefQr*ZMJbiRN?8JyrxE|7~ zU7kOg$Dj`gTE{U>+%}xtX$B3s$ODD2JL%wj|9R@m7~gD0HtLr=mB0LG%$U?4d^@s< zMqX+e1s>BTV#dS0!!tPa+#bA~Thbwjq#cn80gLxX-d_k`E+q6}x*#7PrJx@{Xx`s2rslh~0c z_O~HE5GvS~ybSRkF)<_KYx$}-*FX6vGSk}VvhV3?hcqOE-^&v&k+!M9ljjHizK&2e9M*XQ7&5n0nnOln0>b(a$Q_5s8Tuzq zlnvZ*^&@aSxwVRX_8%l>?34s#Ij{t?>Qfgvm z)zHa1{V$w)|9_w3|LmlbWh8Jg>15b!4NeCt7}_qHzwMs~A%13*|C2TGdBroshO)9Y zZT*QS7c%Q(HJ@wz*s)`2Q`QF-bs|CGzvF;rDn3Sv__(oS*$;OrSh;Xab2F6Bx(j0{ zP5aKn9D2^W>jzeWCsdLgDz z=)b4P*MGWWGa#!g9m$*tIc0GE{V|P-#P^S{-ZAoh$`_`h z5Oq~mEZS1DF@a{}%m1QPg5LJxP}fqA^*X^>I1u7^T`D zsgn8C-})W0mUIc8S5XL{xzx&u*qWzeo znO%o@Q@yCvPSy&?+AFF^dHwqNj6N#Oq_Q3sC*#8>g-K@QKYU-zPcE?kd~QK%%mwq; zS9eC8|MI@bXHkgKu2gNZ)u}bR!ed+YexRzmrnV^8!r}6yn8D0-(ed9cpOHtEXd2Zv zW~j7oye_#f{YOjXuOFKFqd7=ktJ7^EYo+Fs@jH4(5R3VXqt#AQS_Sdx!_xGy#+Izx zQiWol;y!*HPBZFR7kxj`h&^^^)UiXFIVL51I#*QRKTkMYaZ@FIZM4*_rnGT$+HEdny(+!FF(Dlk$r`OS36L;DEY2}Z+S(8fDigA4r_oil&DI(;rfA$ad zWZe0coWgCXYcm6mtc@07Y{AhFgFR`W71(6!n06?r!6LWqNQu4kdam5}MtsTbgEa{> z)gK%TiL?rQg$eJJPR@5A^TAJ#gKs|V-nsiFbjqy{Ijm|j)ifZ-!B?L}vyql0PVX8x z`a&YV-o2vfX79(NQttI7%7?3aGmLzre{eA1@fc|BVXF%pzpn2UI{$A^qHlim4-T*U zB9D%x-)ei_cc7>;fp+lQ&yqm%J!Bo!)bp14rvCTb{Q6Aze{pX9?^*eES^ew9jI;9Z zPn@Ez^vvqDik->zJt-|2S%Dt)eXH5E|LYDMq~m616_dJ}@u{pX*j{o>P14)cVTU9? z1KUC8AjN_b=lzbCj(prZJUnPq(rT{h`sefd)#sz!QJroxVMSG!xQp|!-6xxCfqy{{eZToki5?0MUi^C|uR;#n!3f(~j( zTEmZePcUd?{ontD+WG0z)BSbT_?z*hhZx5qSv>WWfr_^%euZVnR)sAwoAgfnAL^>H AOaK4? literal 44055 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 z zz4Wi$qYs7?_VU_LMf~UKOxiDLh`ou!t+US{AHYO}@ku84a2pgh&Z%F(2|PYBCb45aQgTtTJ9l(lkc>dVrFdEdSQ$pXPpH0UtOcs34k zWmyy6py=(~1ZrU0Hr&CZYJ-OFHm;gV_Nh)3J3TM%TWzZLUc=1Dy;l;X7VJbZ_#Q z#u{umb&B7WD@~61xQu0RP-&u?ysqWtzv%!a*p92_u6L^0*0mGjTlA>RbVmNZR8SD7 z5VpR>(y|j#*gAd^B$cSnz9{W*7(MOhYT?M~O)N;SZ9$&?b%cvy`sVKwvOQznqXmJ6 zpI^JX|9yk{Pxx=%+%Nq1m)MLS@!#3A82uefQr*ZMJbiRN?8JyrxE|7~ zU7kOg$Dj`gTE{U>+%}xtX$B3s$ODD2JL%wj|9R@m7~gD0HtLr=mB0LG%$U?4d^@s< zMqX+e1s>BTV#dS0!!tPa+#bA~Thbwjq#cn80gLxX-d_k`E+q6}x*#7PrJx@{Xx`s2rslh~0c z_O~HE5GvS~ybSRkF)<_KYx$}-*FX6vGSk}VvhV3?hcqOE-^&v&k+!M9ljjHizK&2e9M*XQ7&5n0nnOln0>b(a$Q_5s8Tuzq zlnvZ*^&@aSxwVRX_8%l>?34s#Ij{t?>Qfgvm z)zHa1{V$w)|9_w3|LmlbWh8Jg>15b!4NeCt7}_qHzwMs~A%13*|C2TGdBroshO)9Y zZT*QS7c%Q(HJ@wz*s)`2Q`QF-bs|CGzvF;rDn3Sv__(oS*$;OrSh;Xab2F6Bx(j0{ zP5aKn9D2^W>jzeWCsdLgDz z=)b4P*MGWWGa#!g9m$*tIc0GE{V|P-#P^S{-ZAoh$`_`h z5Oq~mEZS1DF@a{}%m1QPg5LJxP}fqA^*X^>I1u7^T`D zsgn8C-})W0mUIc8S5XL{xzx&u*qWzeo znO%o@Q@yCvPSy&?+AFF^dHwqNj6N#Oq_Q3sC*#8>g-K@QKYU-zPcE?kd~QK%%mwq; zS9eC8|MI@bXHkgKu2gNZ)u}bR!ed+YexRzmrnV^8!r}6yn8D0-(ed9cpOHtEXd2Zv zW~j7oye_#f{YOjXuOFKFqd7=ktJ7^EYo+Fs@jH4(5R3VXqt#AQS_Sdx!_xGy#+Izx zQiWol;y!*HPBZFR7kxj`h&^^^)UiXFIVL51I#*QRKTkMYaZ@FIZM4*_rnGT$+HEdny(+!FF(Dlk$r`OS36L;DEY2}Z+S(8fDigA4r_oil&DI(;rfA$ad zWZe0coWgCXYcm6mtc@07Y{AhFgFR`W71(6!n06?r!6LWqNQu4kdam5}MtsTbgEa{> z)gK%TiL?rQg$eJJPR@5A^TAJ#gKs|V-nsiFbjqy{Ijm|j)ifZ-!B?L}vyql0PVX8x z`a&YV-o2vfX79(NQttI7%7?3aGmLzre{eA1@fc|BVXF%pzpn2UI{$A^qHlim4-T*U zB9D%x-)ei_cc7>;fp+lQ&yqm%J!Bo!)bp14rvCTb{Q6Aze{pX9?^*eES^ew9jI;9Z zPn@Ez^vvqDik->zJt-|2S%Dt)eXH5E|LYDMq~m616_dJ}@u{pX*j{o>P14)cVTU9? z1KUC8AjN_b=lzbCj(prZJUnPq(rT{h`sefd)#sz!QJroxVMSG!xQp|!-6xxCfqy{{eZToki5?0MUi^C|uR;#n!3f(~j( zTEmZePcUd?{ontD+WG0z)BSbT_?z*hhZx5qSv>WWfr_^%euZVnR)sAwoAgfnAL^>H AOaK4? literal 45211 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 N { + it('has no duplicate node names across categories', () => { + const seen = new Map() + for (const [category, nodes] of Object.entries(ESSENTIALS_NODES)) { + for (const node of nodes) { + expect( + seen.has(node), + `"${node}" duplicated in "${category}" and "${seen.get(node)}"` + ).toBe(false) + seen.set(node, category) + } + } + }) + + it('ESSENTIALS_CATEGORY_MAP covers every node in ESSENTIALS_NODES', () => { + for (const [category, nodes] of Object.entries(ESSENTIALS_NODES)) { + for (const node of nodes) { + expect(ESSENTIALS_CATEGORY_MAP[node]).toBe(category) + } + } + }) + + it('TOOLKIT_NOVEL_NODE_NAMES excludes basics nodes', () => { + for (const basicNode of ESSENTIALS_NODES.basics) { + expect(TOOLKIT_NOVEL_NODE_NAMES.has(basicNode)).toBe(false) + } + }) + + it('TOOLKIT_NOVEL_NODE_NAMES excludes SubgraphBlueprint-prefixed nodes', () => { + for (const name of TOOLKIT_NOVEL_NODE_NAMES) { + expect(name.startsWith('SubgraphBlueprint.')).toBe(false) + } + }) + + it('ESSENTIALS_NODES keys match ESSENTIALS_CATEGORIES', () => { + const nodeKeys = Object.keys(ESSENTIALS_NODES) + expect(nodeKeys).toEqual([...ESSENTIALS_CATEGORIES]) + }) + + it('TOOLKIT_BLUEPRINT_MODULES contains comfy_essentials', () => { + expect(TOOLKIT_BLUEPRINT_MODULES.has('comfy_essentials')).toBe(true) + }) + + it('ESSENTIALS_CATEGORY_CANONICAL maps every category case-insensitively', () => { + for (const category of ESSENTIALS_CATEGORIES) { + expect(ESSENTIALS_CATEGORY_CANONICAL.get(category.toLowerCase())).toBe( + category + ) + } + }) +}) diff --git a/src/constants/essentialsNodes.ts b/src/constants/essentialsNodes.ts new file mode 100644 index 0000000000..9dae955621 --- /dev/null +++ b/src/constants/essentialsNodes.ts @@ -0,0 +1,115 @@ +/** + * Single source of truth for Essentials tab node categorization and ordering. + * + * Adding a new node to the Essentials tab? Add it here and nowhere else. + * + * Source: https://www.notion.so/comfy-org/2fe6d73d365080d0a951d14cdf540778 + */ + +export const ESSENTIALS_CATEGORIES = [ + 'basics', + 'text generation', + 'image generation', + 'video generation', + 'image tools', + 'video tools', + 'audio', + '3D' +] as const + +export type EssentialsCategory = (typeof ESSENTIALS_CATEGORIES)[number] + +/** + * Ordered list of nodes per category. + * Array order = display order in the Essentials tab. + * Presence in a category = the node's essentials_category mock fallback. + */ +export const ESSENTIALS_NODES: Record = { + basics: [ + 'LoadImage', + 'LoadVideo', + 'Load3D', + 'SaveImage', + 'SaveVideo', + 'SaveGLB', + 'PrimitiveStringMultiline', + 'PreviewImage' + ], + 'text generation': ['OpenAIChatNode'], + 'image generation': [ + 'LoraLoader', + 'LoraLoaderModelOnly', + 'ConditioningCombine' + ], + 'video generation': [ + 'SubgraphBlueprint.pose_to_video_ltx_2_0', + 'SubgraphBlueprint.canny_to_video_ltx_2_0', + 'KlingLipSyncAudioToVideoNode', + 'KlingOmniProEditVideoNode' + ], + 'image tools': [ + 'ImageBatch', + 'ImageCrop', + 'ImageCropV2', + 'ImageScale', + 'ImageScaleBy', + 'ImageRotate', + 'ImageBlur', + 'ImageBlend', + 'ImageInvert', + 'ImageCompare', + 'Canny', + 'RecraftRemoveBackgroundNode', + 'RecraftVectorizeImageNode', + 'LoadImageMask', + 'GLSLShader' + ], + 'video tools': ['GetVideoComponents', 'CreateVideo', 'Video Slice'], + audio: [ + 'LoadAudio', + 'SaveAudio', + 'SaveAudioMP3', + 'StabilityTextToAudio', + 'EmptyLatentAudio' + ], + '3D': ['TencentTextToModelNode', 'TencentImageToModelNode'] +} + +/** + * Flat map: node name → category (derived from ESSENTIALS_NODES). + * Used as mock/fallback when backend doesn't provide essentials_category. + */ +export const ESSENTIALS_CATEGORY_MAP: Record = + Object.fromEntries( + Object.entries(ESSENTIALS_NODES).flatMap(([category, nodes]) => + nodes.map((node) => [node, category]) + ) + ) as Record + +/** + * Case-insensitive lookup: lowercase category → canonical category. + * Used to normalize backend categories (which may be title-cased) to the + * canonical form used in ESSENTIALS_CATEGORIES. + */ +export const ESSENTIALS_CATEGORY_CANONICAL: ReadonlyMap< + string, + EssentialsCategory +> = new Map(ESSENTIALS_CATEGORIES.map((c) => [c.toLowerCase(), c])) + +/** + * "Novel" toolkit nodes for telemetry — basics excluded. + * Derived from ESSENTIALS_NODES minus the 'basics' category. + */ +export const TOOLKIT_NOVEL_NODE_NAMES: ReadonlySet = new Set( + Object.entries(ESSENTIALS_NODES) + .filter(([cat]) => cat !== 'basics') + .flatMap(([, nodes]) => nodes) + .filter((n) => !n.startsWith('SubgraphBlueprint.')) +) + +/** + * python_module values that identify toolkit blueprint nodes. + */ +export const TOOLKIT_BLUEPRINT_MODULES: ReadonlySet = new Set([ + 'comfy_essentials' +]) diff --git a/src/constants/toolkitNodes.ts b/src/constants/toolkitNodes.ts index d2ba745115..1637445890 100644 --- a/src/constants/toolkitNodes.ts +++ b/src/constants/toolkitNodes.ts @@ -1,41 +1,10 @@ /** * Toolkit (Essentials) node detection constants. * + * Re-exported from essentialsNodes.ts — the single source of truth. * Used by telemetry to track toolkit node adoption and popularity. - * Only novel nodes — basic nodes (LoadImage, SaveImage, etc.) are excluded. - * - * Source: https://www.notion.so/comfy-org/2fe6d73d365080d0a951d14cdf540778 */ - -/** - * Canonical node type names for individual toolkit nodes. - */ -export const TOOLKIT_NODE_NAMES: ReadonlySet = new Set([ - // Image Tools - 'ImageCrop', - 'ImageRotate', - 'ImageBlur', - 'ImageInvert', - 'ImageCompare', - 'Canny', - - // Video Tools - 'Video Slice', - - // API Nodes - 'RecraftRemoveBackgroundNode', - 'RecraftVectorizeImageNode', - 'KlingOmniProEditVideoNode', - - // Shader Nodes - 'GLSLShader' -]) - -/** - * python_module values that identify toolkit blueprint nodes. - * Essentials blueprints are registered with node_pack 'comfy_essentials', - * which maps to python_module on the node def. - */ -export const TOOLKIT_BLUEPRINT_MODULES: ReadonlySet = new Set([ - 'comfy_essentials' -]) +export { + TOOLKIT_NOVEL_NODE_NAMES as TOOLKIT_NODE_NAMES, + TOOLKIT_BLUEPRINT_MODULES +} from './essentialsNodes' diff --git a/src/platform/workflow/validation/schemas/workflowSchema.ts b/src/platform/workflow/validation/schemas/workflowSchema.ts index c3dc4e2c92..20b32bb00b 100644 --- a/src/platform/workflow/validation/schemas/workflowSchema.ts +++ b/src/platform/workflow/validation/schemas/workflowSchema.ts @@ -405,6 +405,7 @@ interface SubgraphDefinitionBase< /** Optional description shown as tooltip when hovering over the subgraph node. */ description?: string category?: string + essentials_category?: string /** Custom metadata for the subgraph (description, searchAliases, etc.) */ extra?: T extends ComfyWorkflow1BaseInput ? z.input | null @@ -443,6 +444,7 @@ const zSubgraphDefinition = zComfyWorkflow1 /** Optional description shown as tooltip when hovering over the subgraph node. */ description: z.string().optional(), category: z.string().optional(), + essentials_category: z.string().optional(), inputNode: zExportedSubgraphIONode, outputNode: zExportedSubgraphIONode, diff --git a/src/services/nodeOrganizationService.ts b/src/services/nodeOrganizationService.ts index 6f6746557c..041cf29358 100644 --- a/src/services/nodeOrganizationService.ts +++ b/src/services/nodeOrganizationService.ts @@ -1,3 +1,8 @@ +import type { EssentialsCategory } from '@/constants/essentialsNodes' +import { + ESSENTIALS_CATEGORIES, + ESSENTIALS_NODES +} from '@/constants/essentialsNodes' import type { ComfyNodeDefImpl } from '@/stores/nodeDefStore' import { buildNodeDefTree } from '@/stores/nodeDefStore' import type { @@ -14,46 +19,6 @@ import { upperCase } from 'es-toolkit/string' const DEFAULT_ICON = 'pi pi-sort' -const NODE_ORDER_BY_FOLDER = { - basics: [ - 'LoadImage', - 'LoadVideo', - 'Load3D', - 'SaveImage', - 'SaveVideo', - 'SaveGLB', - 'PrimitiveStringMultiline', - 'PreviewImage' - ], - 'image tools': [ - 'ImageBatch', - 'ImageCrop', - 'ImageCropV2', - 'ImageScale', - 'ImageScaleBy', - 'ImageRotate', - 'ImageBlur', - 'ImageBlend', - 'ImageInvert', - 'Canny', - 'RecraftRemoveBackgroundNode', - 'LoadImageMask' - ], - 'video tools': ['GetVideoComponents', 'CreateVideo'], - 'image generation': [ - 'LoraLoader', - 'LoraLoaderModelOnly', - 'ConditioningCombine' - ], - audio: [ - 'LoadAudio', - 'SaveAudio', - 'SaveAudioMP3', - 'StabilityTextToAudio', - 'EmptyLatentAudio' - ] -} as const satisfies Record - export const DEFAULT_GROUPING_ID = 'category' as const export const DEFAULT_SORTING_ID = 'original' as const export const DEFAULT_TAB_ID = 'all' as const @@ -178,34 +143,25 @@ class NodeOrganizationService { const tree = buildNodeDefTree(essentialNodes, { pathExtractor: essentialsPathExtractor }) - const folderOrder = [ - 'basics', - 'text generation', - 'image generation', - 'video generation', - 'image tools', - 'video tools', - 'audio', - '3D' - ] if (tree.children) { - const len = folderOrder.length + const len = ESSENTIALS_CATEGORIES.length const originalIndex = new Map( tree.children.map((child, i) => [child, i]) ) tree.children.sort((a, b) => { - const ai = folderOrder.indexOf(a.label ?? '') - const bi = folderOrder.indexOf(b.label ?? '') + const ai = ESSENTIALS_CATEGORIES.indexOf( + a.label as EssentialsCategory + ) + const bi = ESSENTIALS_CATEGORIES.indexOf( + b.label as EssentialsCategory + ) const orderA = ai === -1 ? len + originalIndex.get(a)! : ai const orderB = bi === -1 ? len + originalIndex.get(b)! : bi return orderA - orderB }) for (const folder of tree.children) { if (!folder.children) continue - const order = - NODE_ORDER_BY_FOLDER[ - folder.label as keyof typeof NODE_ORDER_BY_FOLDER - ] + const order = ESSENTIALS_NODES[folder.label as EssentialsCategory] if (!order) continue const nodeOrder: readonly string[] = order const orderLen = nodeOrder.length diff --git a/src/stores/subgraphStore.test.ts b/src/stores/subgraphStore.test.ts index f2bef04c61..c79e4f67bf 100644 --- a/src/stores/subgraphStore.test.ts +++ b/src/stores/subgraphStore.test.ts @@ -515,6 +515,104 @@ describe('useSubgraphStore', () => { }) }) + describe('essentials_category passthrough', () => { + it('should prefer GlobalSubgraphData essentials_category over definition fallback', async () => { + const graphWithEssentials = { + ...mockGraph, + definitions: { + subgraphs: [ + { + ...mockGraph.definitions?.subgraphs?.[0], + essentials_category: 'Image Tools' + } + ] + } + } + await mockFetch( + {}, + { + bp_precedence: { + name: 'Precedence Blueprint', + info: { node_pack: 'test_pack' }, + data: JSON.stringify(graphWithEssentials), + essentials_category: 'Video Generation' + } + } + ) + const nodeDef = useNodeDefStore().nodeDefs.find( + (d) => d.name === 'SubgraphBlueprint.bp_precedence' + ) + expect(nodeDef?.essentials_category).toBe('video generation') + }) + + it('should pass essentials_category from GlobalSubgraphData to node def', async () => { + await mockFetch( + {}, + { + bp_essentials: { + name: 'Test Essentials Blueprint', + info: { node_pack: 'test_pack', category: 'Test Category' }, + data: JSON.stringify(mockGraph), + essentials_category: 'Image Generation' + } + } + ) + const nodeDef = useNodeDefStore().nodeDefs.find( + (d) => d.name === 'SubgraphBlueprint.bp_essentials' + ) + expect(nodeDef).toBeDefined() + expect(nodeDef?.essentials_category).toBe('image generation') + }) + + it('should extract essentials_category from subgraph definition as fallback', async () => { + const graphWithEssentials = { + ...mockGraph, + definitions: { + subgraphs: [ + { + ...mockGraph.definitions?.subgraphs?.[0], + essentials_category: 'Image Tools' + } + ] + } + } + await mockFetch( + {}, + { + bp_fallback: { + name: 'Fallback Blueprint', + info: { node_pack: 'test_pack' }, + data: JSON.stringify(graphWithEssentials) + } + } + ) + const nodeDef = useNodeDefStore().nodeDefs.find( + (d) => d.name === 'SubgraphBlueprint.bp_fallback' + ) + expect(nodeDef).toBeDefined() + expect(nodeDef?.essentials_category).toBe('image tools') + }) + + it('should normalize title-cased essentials_category to canonical form', async () => { + await mockFetch( + {}, + { + bp_3d: { + name: 'Test 3D Blueprint', + info: { node_pack: 'test_pack', category: 'Test Category' }, + data: JSON.stringify(mockGraph), + essentials_category: '3d' + } + } + ) + const nodeDef = useNodeDefStore().nodeDefs.find( + (d) => d.name === 'SubgraphBlueprint.bp_3d' + ) + expect(nodeDef).toBeDefined() + expect(nodeDef?.essentials_category).toBe('3D') + }) + }) + describe('global blueprint filtering', () => { function globalBlueprint( overrides: Partial = {} diff --git a/src/stores/subgraphStore.ts b/src/stores/subgraphStore.ts index 57b69f8176..2c6c4784c4 100644 --- a/src/stores/subgraphStore.ts +++ b/src/stores/subgraphStore.ts @@ -222,6 +222,9 @@ export const useSubgraphStore = defineStore('subgraph', () => { { display_name: v.name, ...(category && { category }), + ...(v.essentials_category && { + essentials_category: v.essentials_category + }), search_aliases: v.info.search_aliases, isGlobal: true }, @@ -291,6 +294,8 @@ export const useSubgraphStore = defineStore('subgraph', () => { const search_aliases = workflowExtra?.BlueprintSearchAliases const subgraphDefCategory = workflow.initialState.definitions?.subgraphs?.[0]?.category + const subgraphDefEssentialsCategory = + workflow.initialState.definitions?.subgraphs?.[0]?.essentials_category const category = subgraphDefCategory ? `Subgraph Blueprints/${subgraphDefCategory}` : 'Subgraph Blueprints' @@ -305,6 +310,7 @@ export const useSubgraphStore = defineStore('subgraph', () => { output_node: false, python_module: 'blueprint', search_aliases, + essentials_category: subgraphDefEssentialsCategory, ...overrides } const nodeDefImpl = new ComfyNodeDefImpl(nodedefv1) diff --git a/src/types/nodeSource.test.ts b/src/types/nodeSource.test.ts index ce03884e52..9a8cf7c34b 100644 --- a/src/types/nodeSource.test.ts +++ b/src/types/nodeSource.test.ts @@ -1,6 +1,10 @@ import { describe, expect, it } from 'vitest' -import { NodeSourceType, getNodeSource } from '@/types/nodeSource' +import { + NodeSourceType, + getEssentialsCategory, + getNodeSource +} from '@/types/nodeSource' describe('getNodeSource', () => { it('should return UNKNOWN_NODE_SOURCE when python_module is undefined', () => { @@ -105,6 +109,36 @@ describe('getNodeSource', () => { const result = getNodeSource('nodes.some_module', undefined, 'LoadImage') expect(result.type).toBe(NodeSourceType.Essentials) }) + + it('should normalize title-cased backend categories to canonical form', () => { + const result = getNodeSource( + 'nodes.some_module', + 'Image Generation', + 'SomeNode' + ) + expect(result.type).toBe(NodeSourceType.Essentials) + expect(getEssentialsCategory('SomeNode', 'Image Generation')).toBe( + 'image generation' + ) + }) + }) + + describe('getEssentialsCategory', () => { + it('should normalize title-cased essentials_category to canonical form', () => { + expect(getEssentialsCategory('SomeNode', 'Image Generation')).toBe( + 'image generation' + ) + expect(getEssentialsCategory('SomeNode', '3d')).toBe('3D') + expect(getEssentialsCategory('SomeNode', '3D')).toBe('3D') + }) + + it('should fall back to ESSENTIALS_CATEGORY_MAP when no category provided', () => { + expect(getEssentialsCategory('LoadImage')).toBe('basics') + }) + + it('should return undefined for unknown node without category', () => { + expect(getEssentialsCategory('UnknownNode')).toBeUndefined() + }) }) describe('blueprint nodes', () => { diff --git a/src/types/nodeSource.ts b/src/types/nodeSource.ts index 333fd7bf8c..09ae5562e3 100644 --- a/src/types/nodeSource.ts +++ b/src/types/nodeSource.ts @@ -1,3 +1,8 @@ +import { + ESSENTIALS_CATEGORY_CANONICAL, + ESSENTIALS_CATEGORY_MAP +} from '@/constants/essentialsNodes' + export enum NodeSourceType { Core = 'core', CustomNodes = 'custom_nodes', @@ -26,44 +31,6 @@ const shortenNodeName = (name: string) => { .replace(/(-ComfyUI|_ComfyUI|-Comfy|_Comfy)$/, '') } -// TODO: Remove this mock mapping once object_info/global_subgraphs returns essentials_category -const ESSENTIALS_CATEGORY_MOCK: Record = { - // basics - LoadImage: 'basics', - SaveImage: 'basics', - LoadVideo: 'basics', - SaveVideo: 'basics', - Load3D: 'basics', - SaveGLB: 'basics', - PrimitiveStringMultiline: 'basics', - // image tools - ImageBatch: 'image tools', - ImageCrop: 'image tools', - ImageScale: 'image tools', - ImageRotate: 'image tools', - ImageBlur: 'image tools', - ImageInvert: 'image tools', - Canny: 'image tools', - RecraftRemoveBackgroundNode: 'image tools', - // video tools - GetVideoComponents: 'video tools', - // image gen - LoraLoader: 'image generation', - // video gen - 'SubgraphBlueprint.pose_to_video_ltx_2_0': 'video generation', - 'SubgraphBlueprint.canny_to_video_ltx_2_0': 'video generation', - KlingLipSyncAudioToVideoNode: 'video generation', - // text gen - OpenAIChatNode: 'text generation', - // 3d - TencentTextToModelNode: '3D', - TencentImageToModelNode: '3D', - // audio - LoadAudio: 'audio', - SaveAudio: 'audio', - StabilityTextToAudio: 'audio' -} - /** * Get the essentials category for a node, falling back to mock data if not provided. */ @@ -71,9 +38,12 @@ export function getEssentialsCategory( name?: string, essentials_category?: string ): string | undefined { - return ( - essentials_category ?? (name ? ESSENTIALS_CATEGORY_MOCK[name] : undefined) - ) + const normalizedCategory = essentials_category?.trim().toLowerCase() + const canonical = normalizedCategory + ? (ESSENTIALS_CATEGORY_CANONICAL.get(normalizedCategory) ?? + normalizedCategory) + : undefined + return canonical ?? (name ? ESSENTIALS_CATEGORY_MAP[name] : undefined) } export const getNodeSource = (