Running the workflow through the HTTP API raises the following error:
got prompt [Impact Pack] ComfyUI-Impact-Pack: Error on prompt - several features will not work. 'list' object has no attribute 'items' [DEBUG] Inputs type: <class 'list'> Exception in thread Thread-7 (prompt_worker): Traceback (most recent call last): File "/root/miniconda3/lib/python3.10/threading.py", line 1016, in _bootstrap_inner self.run() File "/root/miniconda3/lib/python3.10/threading.py", line 953, in run self._target(*self._args, **self._kwargs) File "/root/ComfyUI/main.py", line 176, in prompt_worker e.execute(item[2], prompt_id, item[3], item[4]) File "/root/ComfyUI/execution.py", line 479, in execute cache.set_prompt(dynamic_prompt, prompt.keys(), is_changed_cache) File "/root/ComfyUI/comfy_execution/caching.py", line 157, in set_prompt self.cache_key_set = self.key_class(dynprompt, node_ids, is_changed_cache) File "/root/ComfyUI/comfy_execution/caching.py", line 80, in __init__ self.add_keys(node_ids) File "/root/ComfyUI/comfy_execution/caching.py", line 92, in add_keys self.keys[node_id] = self.get_node_signature(self.dynprompt, node_id) File "/root/ComfyUI/comfy_execution/caching.py", line 97, in get_node_signature ancestors, order_mapping = self.get_ordered_ancestry(dynprompt, node_id) File "/root/ComfyUI/comfy_execution/caching.py", line 128, in get_ordered_ancestry self.get_ordered_ancestry_internal(dynprompt, node_id, ancestors, order_mapping) File "/root/ComfyUI/comfy_execution/caching.py", line 144, in get_ordered_ancestry_internal self.get_ordered_ancestry_internal(dynprompt, ancestor_id, ancestors, order_mapping) File "/root/ComfyUI/comfy_execution/caching.py", line 144, in get_ordered_ancestry_internal self.get_ordered_ancestry_internal(dynprompt, ancestor_id, ancestors, order_mapping) File "/root/ComfyUI/comfy_execution/caching.py", line 137, in get_ordered_ancestry_internal input_keys = sorted(inputs.keys()) AttributeError: 'list' object has no attribute 'keys' Cannot connect to comfyregistry.
However, executing the same workflow inside the ComfyUI GUI works. The GUI silently normalizes some malformed node data. The workflow design mixes up list vs dict return types for certain nodes. When exported to JSON for the API, the structure is strict and no automatic correction happens, so the error surfaces.
Because node 25 has an empty inputs object, the loader ends up producing an empty list instead of a dict internally, but PulidEvaClipLoader expects a dictionary input structure.
Fix: add a dummy key so that inputs is a non-empty dict:
After adding a placeholder parameter (you can replace it with a real model path or configuration), re-export the workflow JSON and invoke it again through the API—the AttributeError should be resolved.
Summary:
Symptom: AttributeError on list object during API execution.
Cause: Empty inputs for node 25 leading to wrong internal type handling.
Fix: Provide at least one key/value in the node’s inputs.
Reason it worked in GUI: GUI applies implicit normalization that the raw API path does not.
This pattern applies to other nodes as well—always ensure required loader nodes have explicitly defined (non-empty) input dictionaries before exporting the workflow JSON for API usage.