* [moonvalley] Update V2V node to match API specification - Add exact resolution validation for supported resolutions (1920x1080, 1080x1920, 1152x1152, 1536x1152, 1152x1536) - Change frame count validation from divisible by 32 to 16 - Add MP4 container format validation - Remove internal parameters (steps, guidance_scale) from V2V inference params - Update video duration handling to support only 5 seconds (auto-trim if longer) - Add motion_intensity parameter (0-100) for Motion Transfer control type - Add get_container_format() method to VideoInput classes * update negative prompt
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:
- Add the "Released" tag to the ComfyUI OpenAPI yaml file for each endpoint you are using in the nodes.
- Make sure the ComfyUI API is deployed to prod with your changes.
- 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