From 93a0c1012f1ed407fe7eee81a4afde5641b12660 Mon Sep 17 00:00:00 2001 From: Chenlei Hu Date: Sat, 13 Jul 2024 09:25:58 -0400 Subject: [PATCH] Add system node to serach box db (#128) --- src/App.vue | 10 +++++++-- src/services/nodeSearchService.ts | 36 +++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/src/App.vue b/src/App.vue index 22f0fd9a..e03e796a 100644 --- a/src/App.vue +++ b/src/App.vue @@ -10,7 +10,10 @@ import { onMounted, onUnmounted, provide, ref } from "vue"; import NodeSearchboxPopover from "@/components/NodeSearchBoxPopover.vue"; import ProgressSpinner from "primevue/progressspinner"; import { api } from "@/scripts/api"; -import { NodeSearchService } from "./services/nodeSearchService"; +import { + NodeSearchService, + SYSTEM_NODE_DEFS, +} from "./services/nodeSearchService"; import { ColorPaletteLoadedEvent } from "./types/colorPalette"; import { LiteGraphNodeSearchSettingEvent } from "./scripts/ui"; @@ -35,7 +38,10 @@ const updateNodeSearchSetting = (e: LiteGraphNodeSearchSettingEvent) => { const init = async () => { const nodeDefs = Object.values(await api.getNodeDefs()); - nodeSearchService.value = new NodeSearchService(nodeDefs); + nodeSearchService.value = new NodeSearchService([ + ...nodeDefs, + ...SYSTEM_NODE_DEFS, + ]); document.addEventListener("comfy:setting:color-palette-loaded", updateTheme); document.addEventListener( diff --git a/src/services/nodeSearchService.ts b/src/services/nodeSearchService.ts index 4231046e..cfa9abc8 100644 --- a/src/services/nodeSearchService.ts +++ b/src/services/nodeSearchService.ts @@ -3,6 +3,42 @@ import { getNodeSource } from "@/types/nodeSource"; import Fuse, { IFuseOptions, FuseSearchOptions } from "fuse.js"; import _ from "lodash"; +export const SYSTEM_NODE_DEFS: ComfyNodeDef[] = [ + { + name: "PrimitiveNode", + display_name: "Primitive", + category: "utils", + input: { required: {}, optional: {} }, + output: ["*"], + output_name: ["connect to widget input"], + output_is_list: [false], + python_module: "nodes", + description: "Primitive values like numbers, strings, and booleans.", + }, + { + name: "Reroute", + display_name: "Reroute", + category: "utils", + input: { required: { "": ["*"] }, optional: {} }, + output: ["*"], + output_name: [""], + output_is_list: [false], + python_module: "nodes", + description: "Reroute the connection to another node.", + }, + { + name: "Note", + display_name: "Note", + category: "utils", + input: { required: {}, optional: {} }, + output: [], + output_name: [], + output_is_list: [], + python_module: "nodes", + description: "Node that add notes to your project", + }, +]; + export class FuseSearch { private fuse: Fuse; public readonly data: T[];