技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
custom-nodes【数据与研究】Implement, inspect, test, and package ComfyUI custom nodes, including classic INPUT_TYPES nodes, public comfy_api nodes, hidden inputs, async/lazy behavior, output metadata, and API-node credentials.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use this sub-skill when the user wants to scaffold, diagnose, inspect, or package ComfyUI node definitions. It covers classic NODE_CLASS_MAPPINGS nodes, the public comfy_api.latest node API, API-provider nodes, and common execution metadata contracts.
references/node-authoring.md for classic custom nodes with INPUT_TYPES, RETURN_TYPES, FUNCTION, CATEGORY, NODE_CLASS_MAPPINGS, and NODE_DISPLAY_NAME_MAPPINGS.references/public-node-api.md for comfy_api.latest.IO.ComfyNode, IO.Schema, typed inputs/outputs, IO.NodeOutput, progress updates, node replacement, and public API caveats.references/api-nodes.md for provider-backed nodes that set is_api_node=True, use Comfy Org hidden credentials, call proxy endpoints, or need internet/API-key warnings.references/troubleshooting.md when validation fails, a node is missing from the UI, output tuple lengths mismatch, ANY causes type confusion, async/lazy validation fails, or API nodes are disabled.../workflow-execution/SKILL.md for prompt graph validation/execution behavior and ../server-api/SKILL.md for HTTP/websocket transport, API-node server configuration, and credential routing.custom_nodes loading area with an importable __init__.py when using a package.NODE_CLASS_MAPPINGS = {"StableNodeId": NodeClass}; add NODE_DISPLAY_NAME_MAPPINGS for friendly names.INPUT_TYPES as a @classmethod returning required, optional optional, and optional hidden dictionaries.RETURN_TYPES to a tuple of output type strings; RETURN_NAMES, OUTPUT_IS_LIST, and OUTPUT_TOOLTIPS must align by index when present.FUNCTION to the exact method name and return a tuple with one item per RETURN_TYPES, or a dict with result/ui/expand only when using the supported execution form.CATEGORY, DESCRIPTION, and flags such as OUTPUT_NODE, EXPERIMENTAL, DEPRECATED, or DEV_ONLY only when they match behavior.IO.ANY / "*" unless the node genuinely accepts arbitrary types; prefer concrete types or multi-types like FLOAT,INT.PROMPT, UNIQUE_ID, EXTRA_PNGINFO, and DYNPROMPT are injected by execution and should not be user widgets.scripts/scaffold_custom_node.py writes a safe classic custom-node package with required image input, optional strength widget, optional hidden prompt metadata, class mappings, and a tuple-length self-check.scripts/inspect_node_definitions.py statically inspects one or more Python files for classic node mappings, missing attributes, input/return schema issues, ANY usage, hidden inputs, and probable return tuple mismatches.Both scripts are standalone and safe by default. Run python scripts/scaffold_custom_node.py --help or python scripts/inspect_node_definitions.py --help from this sub-skill directory for options.