V2 Node Search (+ hidden Node Library changes) (#8987)

## Summary

Redesigned node search with categories

## Changes

- **What**: Adds a v2 search component, leaving the existing
implementation untouched
- It also brings onboard the incomplete node library & preview changes,
disabled and behind a hidden setting
- **Breaking**: Changes the 'default' value of the node search setting
to v2, adding v1 (legacy) as an option

## Screenshots (if applicable)




https://github.com/user-attachments/assets/2ab797df-58f0-48e8-8b20-2a1809e3735f

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8987-V2-Node-Search-hidden-Node-Library-changes-30c6d73d36508160902bcb92553f147c)
by [Unito](https://www.unito.io)

---------

Co-authored-by: Yourz <crazilou@vip.qq.com>
Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Christian Byrne <cbyrne@comfy.org>
This commit is contained in:
pythongosssss
2026-02-20 09:10:03 +00:00
committed by GitHub
parent 8f5cdead73
commit 6902e38e6a
183 changed files with 7972 additions and 127 deletions

View File

@@ -65,7 +65,7 @@ describe('useSearchBoxStore', () => {
describe('when user has legacy search box enabled', () => {
beforeEach(() => {
vi.mocked(mockSettingStore.get).mockReturnValue('legacy')
vi.mocked(mockSettingStore.get).mockReturnValue('litegraph (legacy)')
})
it('should show new search box is disabled', () => {
@@ -104,7 +104,7 @@ describe('useSearchBoxStore', () => {
describe('when user configures popover reference', () => {
beforeEach(() => {
vi.mocked(mockSettingStore.get).mockReturnValue('legacy')
vi.mocked(mockSettingStore.get).mockReturnValue('litegraph (legacy)')
})
it('should enable legacy search when popover is set', () => {

View File

@@ -10,10 +10,14 @@ export const useSearchBoxStore = defineStore('searchBox', () => {
const settingStore = useSettingStore()
const { x, y } = useMouse()
const newSearchBoxEnabled = computed(
const useSearchBoxV2 = computed(
() => settingStore.get('Comfy.NodeSearchBoxImpl') === 'default'
)
const newSearchBoxEnabled = computed(
() => settingStore.get('Comfy.NodeSearchBoxImpl') !== 'litegraph (legacy)'
)
const popoverRef = shallowRef<InstanceType<
typeof NodeSearchBoxPopover
> | null>(null)
@@ -42,6 +46,7 @@ export const useSearchBoxStore = defineStore('searchBox', () => {
}
return {
useSearchBoxV2,
newSearchBoxEnabled,
setPopoverRef,
toggleVisible,