2025-05-14 18:43:03 +08:00
2025-05-14 18:43:03 +08:00
2025-05-14 18:43:03 +08:00
2025-05-14 18:43:03 +08:00
2025-05-14 18:43:03 +08:00
2025-05-14 18:43:03 +08:00
2025-05-14 18:43:03 +08:00

ComfyUI-OneAPI

ComfyUI-OneAPI is a plugin that provides simple REST API interfaces for ComfyUI, allowing you to execute ComfyUI workflows through a single API request.

中文文档

Features

  • Simple Interface: Execute complex ComfyUI workflows through a single API endpoint
  • Parameter Mapping: Support for dynamically replacing parameters in workflows
  • Asynchronous Execution: Support for both synchronous and asynchronous execution modes
  • No WebSocket Dependency: Uses HTTP polling to get results, no need to handle WebSocket connections

Installation

  1. Download or clone this repository to the custom_nodes directory of ComfyUI
  2. Restart ComfyUI

API Usage

Execute Workflow

POST /oneapi/v1/execute

Request Body:
{
    "workflow": {Workflow JSON},
    "params": {
        "paramName": "paramValue"
    },
    "wait_for_result": true,
    "timeout": 300
}

Workflow Parameter Mapping

To use dynamic parameters in your workflow, you need to use special markers in the node titles:

  1. LoadImage node: Use $image_param format
  2. Other nodes: Use $param.field_name format

Examples:

  • A LoadImage node marked with $input_image will use the input_image parameter from params as the image filename
  • A CLIPTextEncode node marked with $prompt.text will replace the text field with the prompt parameter from params

Examples

curl Examples

Text-to-Image Example

curl -X POST "http://localhost:8188/oneapi/v1/execute" \
  -H "Content-Type: application/json" \
  -d '{
    "workflow": '"$(cat workflows/example_workflow.json)"',
    "params": {
        "prompt": "a cute dog with a red hat"
    },
    "wait_for_result": true
  }'

Image-to-Image Example

# Execute image-to-image workflow
curl -X POST "http://localhost:8188/oneapi/v1/execute" \
  -H "Content-Type: application/json" \
  -d '{
    "workflow": '"$(cat workflows/example_img2img_workflow.json)"',
    "params": {
        "prompt": "a cute dog with a red hat",
        "image": "https://example.com/input.jpg"
    },
    "wait_for_result": true
  }'

Notes

  • This plugin is designed to simplify API calls, and does not provide WebSocket real-time progress information
  • Long-running workflows may cause request timeouts, consider setting appropriate timeout values
  • Parameter mapping in workflows depends on special markers in node titles
S
Description
No description provided
Readme MIT
3.1 MiB
Languages
Python 66.1%
JavaScript 33.9%