mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-05 15:40:10 +00:00
Show node by frequency on empty query (#878)
This commit is contained in:
@@ -5,6 +5,8 @@ import { Type, Transform, plainToClass, Expose } from 'class-transformer'
|
||||
import { ComfyWidgetConstructor } from '@/scripts/widgets'
|
||||
import { TreeNode } from 'primevue/treenode'
|
||||
import { buildTree } from '@/utils/treeUtil'
|
||||
import { computed, ref } from 'vue'
|
||||
import axios from 'axios'
|
||||
|
||||
export class BaseInputSpec<T = any> {
|
||||
name: string
|
||||
@@ -338,3 +340,44 @@ export const useNodeDefStore = defineStore('nodeDef', {
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
export const useNodeFrequencyStore = defineStore('nodeFrequency', () => {
|
||||
const topNodeDefLimit = ref(64)
|
||||
const nodeFrequencyLookup = ref<Record<string, number>>({})
|
||||
const nodeNamesByFrequency = computed(() =>
|
||||
Object.keys(nodeFrequencyLookup.value)
|
||||
)
|
||||
const isLoaded = ref(false)
|
||||
|
||||
const loadNodeFrequencies = async () => {
|
||||
if (!isLoaded.value) {
|
||||
try {
|
||||
const response = await axios.get('/assets/sorted-custom-node-map.json')
|
||||
nodeFrequencyLookup.value = response.data
|
||||
isLoaded.value = true
|
||||
} catch (error) {
|
||||
console.error('Error loading node frequencies:', error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const getNodeFrequency = (nodeDef: ComfyNodeDefImpl) => {
|
||||
return nodeFrequencyLookup.value[nodeDef.name] ?? 0
|
||||
}
|
||||
|
||||
const nodeDefStore = useNodeDefStore()
|
||||
const topNodeDefs = computed<ComfyNodeDefImpl[]>(() => {
|
||||
return nodeNamesByFrequency.value
|
||||
.map((nodeName: string) => nodeDefStore.nodeDefsByName[nodeName])
|
||||
.filter((nodeDef: ComfyNodeDefImpl) => nodeDef !== undefined)
|
||||
.slice(0, topNodeDefLimit.value)
|
||||
})
|
||||
|
||||
return {
|
||||
nodeNamesByFrequency,
|
||||
topNodeDefs,
|
||||
isLoaded,
|
||||
loadNodeFrequencies,
|
||||
getNodeFrequency
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user