Nodes/MKRShift_Nodes/Addon Endpoint Plan
ComfyUI Node

Addon Endpoint Plan

The config node that makes the network addons less scary

By criskb·Created 7 months ago·Updated 5 months ago· 0
Addon Endpoint Plan
    • endpoint_plan_json
    • manifest_line
    • summary_json
    base_urlhttp://127.0.0.1:8188
    submit_path/mkrshift/submit
    status_path/mkrshift/status/{job_id}
    result_path/mkrshift/result/{job_id}
    auth_modenone
    auth_keyAuthorization
    auth_value
    timeout_ms30000
    default_headers_json{}
    workflow_hint

    MKRShift Nodes has a whole lane of "host addons" - the pieces that let After Effects, Photoshop, Blender, TouchDesigner, and friends hand work to ComfyUI over HTTP and get results back. The part of that lane that scares beginners is the network plumbing. Addon Endpoint Plan is the node that removes the guesswork: it's a pure configuration node that turns a handful of URL and auth fields into one tidy JSON plan, which the actual network nodes then consume. It doesn't call anything itself - the name is the honest job description.

    That plan-driven design is worth understanding before you reach for the runtime nodes. Every endpoint in this pack (submit, poll, stats, the transport plans for the DCC bridges) is fed by a *_plan_json string. Endpoint Plan is where those strings come from, and because it's just JSON, you can inspect, version, and hand-edit it - which is a lot easier to debug than a pile of raw connections in a graph.

    How it works

    You fill in the shape of an HTTP job endpoint: base_url (defaults to http://127.0.0.1:8188, your local ComfyUI), plus the three paths that define the job lifecycle - submit_path where you POST a job, status_path where you check it, result_path where you fetch the finished output. The {job_id} placeholder in the status/result paths is how the runtime nodes know where to slot the ID they get back.

    Auth is where this gets practical. auth_mode offers none / bearer / header: bearer wraps your auth_value in an Authorization: Bearer ... header, header lets you pick any header name via auth_key (defaulting to Authorization). If your addon endpoint lives behind a reverse proxy or API gateway - which it will, the moment you stop running everything on localhost - this is the node that saves you from hand-rolling headers in a Python script. timeout_ms (1s to 10 minutes) guards against a hung job. default_headers_json is a free-form JSON object of extra headers, and workflow_hint is a plain-text note describing what this endpoint is for, which flows into the manifest and summary outputs.

    Outputs

    • endpoint_plan_json - the full plan, wired into MKRAddonEndpointSubmit / Poll / Stats
    • manifest_line - a compact comma-joined line (base_url, submit_path, auth_mode, hint) for manifests
    • summary_json - a human-checkable recap including whether an auth value is set

    Installation

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

    Restart ComfyUI, or search "MKRShift Nodes" in ComfyUI Manager. No pip requirements; the pack's optional comfy_api extra is only for its V3-schema lane.

    Common issues

    The classic mistake is thinking this node does the HTTP call. It doesn't - it's the first step of a three-node chain (Plan → Submit → Poll), and wiring Plan's output into a save node will just give you text. Second: {job_id} must stay literally in the status/result paths; if you replace it with a real ID here, the poll node can't template it. And on auth: auth_mode: none with an empty auth_value is fine for local dev, but the moment you point this at anything off-box, the community's standard advice applies - don't expose an unauthenticated ComfyUI to the network, and don't paste real tokens into a workflow file you're going to share. Keep secrets out of the graph; the header/bearer fields are for local convenience, not production secrets.

    CategoryMKRShift Nodes/Addons/Network

    Inputs (10)

    NameTypeDefaultDescription
    base_urlSTRINGhttp://127.0.0.1:8188
    submit_pathSTRING/mkrshift/submit
    status_pathSTRING/mkrshift/status/{job_id}
    result_pathSTRING/mkrshift/result/{job_id}
    auth_modeCOMBOnone3 options: none, bearer, header
    auth_keySTRINGAuthorization
    auth_valueSTRING
    timeout_msINT300001000–600000
    default_headers_jsonoptSTRING{}
    workflow_hintoptSTRING

    Outputs (3)

    NameTypeDescription
    endpoint_plan_jsonSTRING
    manifest_lineSTRING
    summary_jsonSTRING