calesthio/OpenMontage · error · ComfyUIError

ComfyUI server does not expose {node_class}; update ComfyUI

Error message

ComfyUI server does not expose {node_class}; update ComfyUI and enable Partner Nodes. These are hosted API nodes, not offline models.

What it means

Raised by ComfyUIVideoTool when the selected model_family maps to a hosted Partner Node class but the connected ComfyUI server's node registry (checked via client.has_node) does not expose it. Partner Nodes are cloud-backed API nodes shipped in recent ComfyUI releases; an older server or one without them enabled will not have the class.

Source

Thrown at tools/video/comfyui_video.py:503

                        f"ComfyUI server is running but missing models for {operation}: "
                        f"{', '.join(missing)}.\n"
                        f"See data.missing_models for destination hints and download URLs."
                    ),
                )
        start = time.time()
        seed = inputs.get("seed") or ComfyUIClient.random_seed()
        output_path = Path(
            inputs.get("output_path", f"comfyui_video_{operation}_{seed}.mp4")
        )

        try:
            if custom_workflow:
                workflow = self._load_custom_workflow(inputs)
                output_node = str(inputs["output_node"])
            elif model_family in partner_nodes:
                node_class = partner_nodes[model_family]
                if not self._client.has_node(node_class):
                    raise ComfyUIError(
                        f"ComfyUI server does not expose {node_class}; update ComfyUI "
                        "and enable Partner Nodes. These are hosted API nodes, not offline models."
                    )
                workflow, output_node = self._build_partner_t2v(
                    inputs, seed, output_path, model_family
                )
            elif operation == "image_to_video":
                workflow, output_node = self._build_i2v(inputs, seed, output_path)
            else:
                workflow, output_node = self._build_t2v(inputs, seed, output_path)

            provenance = self._workflow_provenance(
                inputs, custom_workflow, output_node, operation, workflow, model_family
            )
            paths = self._client.generate(
                workflow,
                output_node=output_node,
                dest=output_path,

View on GitHub (pinned to 95e1c3d0ab)

Solutions

  1. Update ComfyUI to a release that includes Partner Nodes and restart it, then retry
  2. Verify the node is actually loaded: GET /object_nodes on the ComfyUI server and grep for the node class named in the message
  3. Confirm you are pointing at the intended server (check the client's base URL / COMFYUI_URL env)
  4. If you cannot update, use a local open-weights workflow instead (custom workflow JSON via workflow_path, or the built-in wan i2v/t2v paths)

Example fix

# before
comfyui --listen   # old install, missing partner nodes

# after
cd ComfyUI && git pull && pip install -r requirements.txt && python main.py --listen
# verify: curl -s http://127.0.0.1:8188/object_nodes | grep -o '"Seedance[^"]*"'
Defensive patterns

Strategy: validation

Validate before calling

node_class = partner_nodes.get(model_family)  # or hardcode from docs
if node_class and not comfyui_client.has_node(node_class):
    raise SystemExit(
        f'ComfyUI at {comfyui_client.base_url} lacks {node_class}; '
        'update ComfyUI and enable Partner Nodes, or pick a local-weights family')

Type guard

def partner_node_ready(client, family: str, partner_nodes: dict) -> bool:
    node = partner_nodes.get(family)
    return node is None or client.has_node(node)

Try / catch

try:
    result = comfyui_video.run(inputs=inputs)
except ComfyUIError as e:
    if 'does not expose' in str(e):
        # fall back to a local open-weights workflow
        inputs['workflow_path'] = 'workflows/wan22-i2v-4step.json'
        result = comfyui_video.run(inputs=inputs)
    else:
        raise

Prevention

When it happens

Trigger: Selecting a partner-node family (e.g. seedance/minimax via ComfyUI) against a ComfyUI instance built before Partner Nodes existed or with them disabled; connecting to the wrong server (a fresh minimal install); custom forks that renamed or stripped the node classes.

Common situations: Outdated ComfyUI checkout after pulling new tooling code; pointing COMFYUI_URL at a spare local server; ComfyUI updated but launched from a different environment/venv that still has the old version.

Related errors


AI-assisted analysis of calesthio/OpenMontage@95e1c3d0ab (2026-08-15). Data as JSON: /api/errors/e5e279ff8273c054. Report an issue: GitHub.