Nodes/MKRShift_Nodes/Node Extension Builder Advanced
ComfyUI Node

Node Extension Builder Advanced

The expert metadata sidecar

By criskb·Created 7 months ago·Updated 5 months ago· 0
Node Extension Builder Advanced
    • advanced_options_json
    • summary_json
    description
    repository
    license_nameMIT
    web_directory
    min_comfyui_version
    tags_csvcomfyui, mkrshift
    extras_json{}
    skill_url
    builder_cli_command

    Keep the boring-but-important stuff off the main node

    The extension-builder trio in MKRShift_Nodes has a sensible division of labor. MKRNodeExtensionBuilderPlan handles the core identity (name, publisher, version, node list). MKRNodeExtensionBuilderAdvanced is the sidecar that carries everything else - the metadata that makes a published node pack actually professional: description, repository URL, license, tags, web directory, min ComfyUI version, and optional extras.

    Why split it? The README says it plainly: "For cleaner graphs, keep expert metadata on MKRNodeExtensionBuilderAdvanced." If every builder workflow had a dozen text fields sprawled across the main node, your graph would be unreadable. This node collects the noise, emits one tidy JSON object, and you wire that into the Plan node.

    The inputs

    All required, though most have sane defaults:

    • description - the pack's description, pulled into the manifest and later the pyproject.
    • repository - the GitHub (or other) URL, used to derive the project URLs.
    • license_name (default MIT) - the license identifier.
    • web_directory - your web/ folder for custom frontend extensions, if any.
    • min_comfyui_version - the minimum ComfyUI version your nodes need.
    • tags_csv (default comfyui, mkrshift) - comma-separated tags for the registry.
    • extras_json - an expert-only JSON object merged into the manifest's extras payload (per the tooltip). For things like custom fields, workflow example dirs, or anything non-standard.
    • skill_url - if your build flow depends on a specific builder skill/CLI.
    • builder_cli_command - override the default builder CLI command with your own.

    For a beginner shipping a first pack: fill in description, repository, and license_name, leave the rest alone, and you're already ahead of most packs on the registry.

    The outputs

    • advanced_options_json - the structured bundle, ready for MKRNodeExtensionBuilderPlan.advanced_bundle_json. The summary tells you the next step in its own next_step field, which is a nice touch for a tool you don't use daily.
    • summary_json - which keys got set, how many tags, whether extras are present, and warnings.

    Install and the intended flow

    cd ComfyUI/custom_nodes
    git clone https://github.com/criskb/MKRShift_Nodes
    

    Restart, or install "MKRShift Nodes" via ComfyUI Manager. No pip deps, no models, no ffmpeg.

    The intended chain, end to end: MKRNodeExtensionBuilderAdvancedadvanced_options_jsonMKRNodeExtensionBuilderPlan.advanced_bundle_jsonbuilder_manifest_json → write to extension.builder.json → run your builder CLI. There's an example workflow in the repo (example_workflows/mkrshift_extension_builder_plan.json) that wires exactly this. One honest note: this is a niche, developer-facing node in a brand-new pack - expect rough edges and check the summary's warnings output when a run looks wrong. It's plumbing, but plumbing that can save you a whole evening of hand-writing pyproject boilerplate.

    CategoryMKRShift Nodes/Addons/Workflow

    Inputs (9)

    NameTypeDefaultDescription
    descriptionSTRING
    repositorySTRING
    license_nameSTRINGMIT
    web_directorySTRING
    min_comfyui_versionSTRING
    tags_csvSTRINGcomfyui, mkrshift
    extras_jsonSTRING{}Optional expert-only extras object merged into the manifest extras payload.
    skill_urlSTRING
    builder_cli_commandSTRING

    Outputs (2)

    NameTypeDescription
    advanced_options_jsonSTRING
    summary_jsonSTRING