Extensions/PoYo AI
ComfyUI Extension

PoYo AI

Official PoYo AI model nodes for ComfyUI

By PoyoAPI·Created about a month ago·Updated about a month ago· 0
PoyoAPI/poyo-comfyui
Nodes10
On cloudLocal install
CategoryPoYo AI/Jobs, PoYo AI/Chat
Stars0
Updatedabout a month ago
Readme

PoYo AI nodes for ComfyUI

Official ComfyUI V3 nodes for the PoYo model catalog. The node pack calls PoYo's existing REST endpoints directly; it does not introduce another job API or another task-state model.

Install

After the first registry release, install by node ID with Comfy CLI:

comfy node install poyo-nodes

You can also clone the source repository into ComfyUI/custom_nodes, then restart ComfyUI:

cd ComfyUI/custom_nodes
git clone https://github.com/PoyoAPI/poyo-comfyui.git

ComfyUI 0.32.0 or newer is required.

Configure

The API key is deliberately kept outside workflow JSON. Environment variables take precedence:

set POYO_API_KEY=your_poyo_api_key
set POYO_BASE_URL=https://api.poyo.ai

On macOS/Linux, use export instead of set. You can also write the local user configuration:

python -m poyo_nodes.configure

This saves credentials to ~/.poyo/comfyui.json. Do not commit that file or paste API keys into node fields.

Nodes

| Node | Purpose | | --- | --- | | PoYo Generate Image | Friendly image generation/editing with an IMAGE output | | PoYo Generate Video | Video generation with URL and local output path | | PoYo Generate Audio | Audio generation/editing with an AUDIO output | | PoYo Run Any Model | Generic access to the full live catalog and model input JSON | | PoYo Submit Job | Submit without waiting | | PoYo Get Job Status | Query a task once | | PoYo Await Job | Poll until the task finishes or fails | | PoYo Upload Media | Upload IMAGE, AUDIO, or a local file | | PoYo Save Result File | Download a public result URL under ComfyUI/output/poyo | | PoYo Chat | OpenAI Chat/Responses, Anthropic, or Gemini-compatible chat |

The dropdowns are populated from GET /v1/catalog/models and cached for 15 minutes. If PoYo is unavailable while ComfyUI starts, use the advanced model_id_override field. input_json follows the selected model's existing catalog schema.

API and task behavior

The pack reuses these current endpoints:

  • GET /api/user/balance
  • GET /v1/catalog/models and GET /v1/catalog/models/{model_id}
  • POST /api/generate/submit
  • GET /api/generate/status/{task_id}
  • POST /api/common/upload/stream
  • Existing OpenAI, Anthropic, and Gemini-compatible chat routes

PoYo task status is passed through as-is: not_started, running, finished, or failed. No ComfyUI-only status is stored or returned. Network errors, HTTP 429, and server errors are retried with exponential backoff; Retry-After is honored when present.

Development

python -m pip install -e ".[dev]"
pytest
ruff check .

Sample workflows are in workflows.