ComfyUI/comfy_api_nodes
2025-12-10 22:11:12 -08:00
..
apis [API Nodes] add support for seedance-1-0-pro-fast model (#10947) 2025-12-08 01:33:46 -08:00
util [API Nodes]: fixes and refactor (#11104) 2025-12-04 14:05:28 -08:00
__init__.py [API nodes] Add backbone for supporting api nodes in ComfyUI (#7745) 2025-04-23 02:18:08 -04:00
canary.py Refuse to load api nodes on old pyav version. (#7981) 2025-05-07 17:27:16 -04:00
mapper_utils.py More API Nodes (#7956) 2025-05-06 04:23:00 -04:00
nodes_bfl.py [API Nodes] add Flux.2 Pro node (#10880) 2025-11-25 11:09:07 -05:00
nodes_bytedance.py [API Nodes] add support for seedance-1-0-pro-fast model (#10947) 2025-12-08 01:33:46 -08:00
nodes_gemini.py Added "system_prompt" input to Gemini nodes (#11177) 2025-12-08 01:28:17 -08:00
nodes_ideogram.py use new API client in Pixverse and Ideogram nodes (#10543) 2025-10-29 23:49:03 -07:00
nodes_kling.py feat(api-nodes): enable Kling Omni O1 node (#11229) 2025-12-10 22:11:12 -08:00
nodes_ltxv.py chore: replace imports of deprecated V1 classes (#11127) 2025-12-08 01:27:02 -08:00
nodes_luma.py use new API client in Luma and Minimax nodes (#10528) 2025-10-29 11:14:56 -07:00
nodes_minimax.py use new API client in Luma and Minimax nodes (#10528) 2025-10-29 11:14:56 -07:00
nodes_moonvalley.py chore: replace imports of deprecated V1 classes (#11127) 2025-12-08 01:27:02 -08:00
nodes_openai.py chore(api-nodes): remove chat widgets from OpenAI/Gemini nodes (#10861) 2025-11-26 14:42:01 -08:00
nodes_pika.py marked all Pika API nodes a deprecated (#11146) 2025-12-06 03:28:08 -08:00
nodes_pixverse.py use new API client in Pixverse and Ideogram nodes (#10543) 2025-10-29 23:49:03 -07:00
nodes_recraft.py use new API client in Pixverse and Ideogram nodes (#10543) 2025-10-29 23:49:03 -07:00
nodes_rodin.py feat(API-nodes): move Rodin3D nodes to new client; removed old api client.py (#10645) 2025-11-05 02:16:00 -08:00
nodes_runway.py chore: replace imports of deprecated V1 classes (#11127) 2025-12-08 01:27:02 -08:00
nodes_sora.py feat(api-nodes): network client v2: async ops, cancellation, downloads, refactor (#10390) 2025-10-23 22:37:16 -07:00
nodes_stability.py convert StabilityAI to use new API client (#10582) 2025-11-01 12:14:06 -07:00
nodes_topaz.py add get_frame_count and get_frame_rate methods to VideoInput class (#10851) 2025-11-24 10:24:29 -08:00
nodes_tripo.py convert Tripo API nodes to V3 schema (#10469) 2025-10-24 15:48:34 -07:00
nodes_veo2.py chore: replace imports of deprecated V1 classes (#11127) 2025-12-08 01:27:02 -08:00
nodes_vidu.py use new API client in Pixverse and Ideogram nodes (#10543) 2025-10-29 23:49:03 -07:00
nodes_wan.py feat(api-nodes): network client v2: async ops, cancellation, downloads, refactor (#10390) 2025-10-23 22:37:16 -07:00
README.md Fix the broken link (#9060) 2025-07-26 17:25:33 -04:00
redocly-dev.yaml More API Nodes (#7956) 2025-05-06 04:23:00 -04:00
redocly.yaml More API Nodes (#7956) 2025-05-06 04:23:00 -04:00

ComfyUI API Nodes

Introduction

Below are a collection of nodes that work by calling external APIs. More information available in our docs.

Development

While developing, you should be testing against the Staging environment. To test against staging:

Install ComfyUI_frontend

Follow the instructions here to start the frontend server. By default, it will connect to Staging authentication.

Hint: If you use --front-end-version argument for ComfyUI, it will use production authentication.

python run main.py --comfy-api-base https://stagingapi.comfy.org

To authenticate to staging, please login and then ask one of Comfy Org team to whitelist you for access to staging.

API stubs are generated through automatic codegen tools from OpenAPI definitions. Since the Comfy Org OpenAPI definition contains many things from the Comfy Registry as well, we use redocly/cli to filter out only the paths relevant for API nodes.

Redocly Instructions

Tip When developing locally, use the redocly-dev.yaml file to generate pydantic models. This lets you use stubs for APIs that are not marked Released yet.

Before your API node PR merges, make sure to add the Released tag to the openapi.yaml file and test in staging.

# Download the OpenAPI file from staging server.
curl -o openapi.yaml https://stagingapi.comfy.org/openapi

# Filter out unneeded API definitions.
npm install -g @redocly/cli
redocly bundle openapi.yaml --output filtered-openapi.yaml --config comfy_api_nodes/redocly-dev.yaml --remove-unused-components

# Generate the pydantic datamodels for validation.
datamodel-codegen --use-subclass-enum --field-constraints --strict-types bytes --input filtered-openapi.yaml --output comfy_api_nodes/apis/__init__.py --output-model-type pydantic_v2.BaseModel

Merging to Master

Before merging to comfyanonymous/ComfyUI master, follow these steps:

  1. Add the "Released" tag to the ComfyUI OpenAPI yaml file for each endpoint you are using in the nodes.
  2. Make sure the ComfyUI API is deployed to prod with your changes.
  3. Run the code generation again with redocly.yaml and the production OpenAPI yaml file.
# Download the OpenAPI file from prod server.
curl -o openapi.yaml https://api.comfy.org/openapi

# Filter out unneeded API definitions.
npm install -g @redocly/cli
redocly bundle openapi.yaml --output filtered-openapi.yaml --config comfy_api_nodes/redocly.yaml --remove-unused-components

# Generate the pydantic datamodels for validation.
datamodel-codegen --use-subclass-enum --field-constraints --strict-types bytes --input filtered-openapi.yaml --output comfy_api_nodes/apis/__init__.py --output-model-type pydantic_v2.BaseModel