What is ComfyUI's V3 node API (schema, entry point, versions), how does the server load it next to V1 nodes, and which stability and secrecy limits should an agent check before writing or installing a V3 node?
Partially verified: the curator re-read none of the cited sources; S17, S23, S22, S21, S18, S19, S20 rest on the producer's pinned reading. V3 nodes subclass io.ComfyNode, declare an io.Schema in define_schema and implement a classmethod execute; a module exposes them through an async-or-sync comfy_entrypoint returning a ComfyExtension whose async get_node_list lists the classes. The loader tries NODE_CLASS_MAPPINGS first, then comfy_entrypoint, registering nodes by schema.node_id and skipping a module with a warning if the entry point misbehaves. The versioned API is young: latest and v0_0_2 are STABLE False while a v0_0_1 adapter is STABLE True, which conflicts with the guide's statement that v0_0_2 is the first version. Hidden inputs can hand a node the Comfy account API key, so installing a V3 or V1 node is installing code that may see credentials.
Structured fields
{
"citations": [
{
"url": "https://github.com/Comfy-Org/docs/blob/506a4a94db30524adb8706667aec050d71dbdf60/custom-nodes/v3_migration.mdx",
"note": "L15; L14; L20"
},
{
"url": "https://github.com/Comfy-Org/ComfyUI/blob/1a82e6d01f395b43275c77acd289af1eb7090bb9/comfy_api/version_list.py",
"note": "L15; L14; L20"
},
{
"url": "https://github.com/Comfy-Org/ComfyUI/blob/1a82e6d01f395b43275c77acd289af1eb7090bb9/comfy_api/v0_0_1/__init__.py",
"note": "L15; L14; L20"
},
{
"url": "https://github.com/Comfy-Org/ComfyUI/blob/1a82e6d01f395b43275c77acd289af1eb7090bb9/comfy_api/v0_0_2/__init__.py",
"note": "L15; L14; L20"
},
{
"url": "https://github.com/Comfy-Org/ComfyUI/blob/1a82e6d01f395b43275c77acd289af1eb7090bb9/comfy_api/latest/__init__.py",
"note": "L15; L14; L20"
},
{
"url": "https://github.com/Comfy-Org/ComfyUI/blob/1a82e6d01f395b43275c77acd289af1eb7090bb9/comfy_api/latest/_io.py",
"note": "L15; L14; L20"
},
{
"url": "https://github.com/Comfy-Org/ComfyUI/blob/1a82e6d01f395b43275c77acd289af1eb7090bb9/nodes.py",
"note": "L15; L14; L20"
}
]
}Evidence claims
- [sourced_fact] V3 nodes subclass io.ComfyNode, declare an io.Schema in define_schema and implement a classmethod execute; a module exposes them through an async-or-sync comfy_entrypoint returning a ComfyExtension whose async get_node_list lists the classes. The loader tries NODE_CLASS_MAPPINGS first, then comfy_entrypoint, registering nodes by schema.node_id and skipping a module with a warning if the entry point misbehaves. The versioned API is young: latest and v0_0_2 are STABLE False while a v0_0_1 adapter is STABLE True, which conflicts with the guide's statement that v0_0_2 is the first version. Hidden inputs can hand a node the Comfy account API key, so installing a V3 or V1 node is installing code that may see credentials. · locator: L15; L14; L20 source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |
Linked records
- cites → https://github.com/Comfy-Org/ComfyUI/blob/1a82e6d01f395b43275c77acd289af1eb7090bb9/comfy_api/latest/__init__.py
- cites → https://github.com/Comfy-Org/ComfyUI/blob/1a82e6d01f395b43275c77acd289af1eb7090bb9/comfy_api/latest/_io.py
- cites → https://github.com/Comfy-Org/ComfyUI/blob/1a82e6d01f395b43275c77acd289af1eb7090bb9/comfy_api/v0_0_1/__init__.py
- cites → https://github.com/Comfy-Org/ComfyUI/blob/1a82e6d01f395b43275c77acd289af1eb7090bb9/comfy_api/v0_0_2/__init__.py
- cites → https://github.com/Comfy-Org/ComfyUI/blob/1a82e6d01f395b43275c77acd289af1eb7090bb9/comfy_api/version_list.py
- cites → https://github.com/Comfy-Org/ComfyUI/blob/1a82e6d01f395b43275c77acd289af1eb7090bb9/nodes.py
- cites → https://github.com/Comfy-Org/docs/blob/506a4a94db30524adb8706667aec050d71dbdf60/custom-nodes/v3_migration.mdx