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.
After the first registry release, install by node ID with Comfy CLI:
comfy node install poyo-nodesYou 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.gitComfyUI 0.32.0 or newer is required.
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.aiOn macOS/Linux, use export instead of set. You can also write the local user configuration:
python -m poyo_nodes.configureThis saves credentials to ~/.poyo/comfyui.json. Do not commit that file or paste API keys into
node fields.
| 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.
The pack reuses these current endpoints:
GET /api/user/balanceGET /v1/catalog/modelsandGET /v1/catalog/models/{model_id}POST /api/generate/submitGET /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.
python -m pip install -e ".[dev]"
pytest
ruff check .Sample workflows are in workflows.