mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-30 03:01:54 +00:00
Register frontend only node defs (#468)
* Register frontend only node defs * nit * nit
This commit is contained in:
@@ -1964,12 +1964,37 @@ export class ComfyApp {
|
|||||||
// Load node definitions from the backend
|
// Load node definitions from the backend
|
||||||
const defs = await api.getNodeDefs()
|
const defs = await api.getNodeDefs()
|
||||||
await this.registerNodesFromDefs(defs)
|
await this.registerNodesFromDefs(defs)
|
||||||
|
await this.#invokeExtensionsAsync('registerCustomNodes')
|
||||||
if (this.vueAppReady) {
|
if (this.vueAppReady) {
|
||||||
|
// Frontend only nodes registered by custom nodes.
|
||||||
|
// Example: https://github.com/rgthree/rgthree-comfy/blob/dd534e5384be8cf0c0fa35865afe2126ba75ac55/src_web/comfyui/fast_groups_bypasser.ts#L10
|
||||||
|
const rawDefs = Object.fromEntries(
|
||||||
|
Object.entries(LiteGraph.registered_node_types).map(([name, _]) => [
|
||||||
|
name,
|
||||||
|
{
|
||||||
|
name,
|
||||||
|
display_name: name,
|
||||||
|
category: '__frontend_only__',
|
||||||
|
input: { required: {}, optional: {} },
|
||||||
|
output: [],
|
||||||
|
output_name: [],
|
||||||
|
output_is_list: [],
|
||||||
|
python_module: 'custom_nodes.frontend_only',
|
||||||
|
description: `Frontend only node for ${name}`
|
||||||
|
}
|
||||||
|
])
|
||||||
|
)
|
||||||
|
|
||||||
|
const allNodeDefs = {
|
||||||
|
...rawDefs,
|
||||||
|
...defs,
|
||||||
|
...SYSTEM_NODE_DEFS
|
||||||
|
}
|
||||||
|
|
||||||
const nodeDefStore = useNodeDefStore()
|
const nodeDefStore = useNodeDefStore()
|
||||||
nodeDefStore.updateNodeDefs([...Object.values(defs), ...SYSTEM_NODE_DEFS])
|
nodeDefStore.updateNodeDefs(Object.values(allNodeDefs))
|
||||||
nodeDefStore.updateWidgets(this.widgets)
|
nodeDefStore.updateWidgets(this.widgets)
|
||||||
}
|
}
|
||||||
await this.#invokeExtensionsAsync('registerCustomNodes')
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getWidgetType(inputData, inputName) {
|
getWidgetType(inputData, inputName) {
|
||||||
|
|||||||
@@ -190,8 +190,8 @@ export class ComfyNodeDefImpl {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const SYSTEM_NODE_DEFS: ComfyNodeDef[] = [
|
export const SYSTEM_NODE_DEFS: Record<string, ComfyNodeDef> = {
|
||||||
{
|
PrimitiveNode: {
|
||||||
name: 'PrimitiveNode',
|
name: 'PrimitiveNode',
|
||||||
display_name: 'Primitive',
|
display_name: 'Primitive',
|
||||||
category: 'utils',
|
category: 'utils',
|
||||||
@@ -202,7 +202,7 @@ export const SYSTEM_NODE_DEFS: ComfyNodeDef[] = [
|
|||||||
python_module: 'nodes',
|
python_module: 'nodes',
|
||||||
description: 'Primitive values like numbers, strings, and booleans.'
|
description: 'Primitive values like numbers, strings, and booleans.'
|
||||||
},
|
},
|
||||||
{
|
Reroute: {
|
||||||
name: 'Reroute',
|
name: 'Reroute',
|
||||||
display_name: 'Reroute',
|
display_name: 'Reroute',
|
||||||
category: 'utils',
|
category: 'utils',
|
||||||
@@ -213,7 +213,7 @@ export const SYSTEM_NODE_DEFS: ComfyNodeDef[] = [
|
|||||||
python_module: 'nodes',
|
python_module: 'nodes',
|
||||||
description: 'Reroute the connection to another node.'
|
description: 'Reroute the connection to another node.'
|
||||||
},
|
},
|
||||||
{
|
Note: {
|
||||||
name: 'Note',
|
name: 'Note',
|
||||||
display_name: 'Note',
|
display_name: 'Note',
|
||||||
category: 'utils',
|
category: 'utils',
|
||||||
@@ -224,7 +224,7 @@ export const SYSTEM_NODE_DEFS: ComfyNodeDef[] = [
|
|||||||
python_module: 'nodes',
|
python_module: 'nodes',
|
||||||
description: 'Node that add notes to your project'
|
description: 'Node that add notes to your project'
|
||||||
}
|
}
|
||||||
]
|
}
|
||||||
|
|
||||||
function sortedTree(node: TreeNode): TreeNode {
|
function sortedTree(node: TreeNode): TreeNode {
|
||||||
// Create a new node with the same label and data
|
// Create a new node with the same label and data
|
||||||
|
|||||||
Reference in New Issue
Block a user