PoYo Run Any Model
Any catalog model, by ID, with or without waiting
- image
- audio
- task_id
- status
- files_json
- output_json
- response_json
The pack's friendly nodes - Generate Image, Generate Video, Generate Audio - each cover one media type with a nice dropdown and a typed output. PoYo_RunModel is the one that doesn't care about any of that. It's the generic gateway to PoYo's catalog: you type a model_id, you provide input_json, and it runs whatever that model is - image, video, audio, or the next model they add next Tuesday that no dedicated node exists for yet. The pack's own description says it: "generic catalog-backed node for every current and future PoYo generation model."
This is the node you reach for when your model isn't in the generate trio, or when you want one node shape to drive a whole catalog from a shared workflow. The price of that flexibility is that you have to know your way around: model_id is a plain text field, not a dropdown, and input_json has to match the model's catalog schema exactly. The README is upfront that input_json follows the selected model's existing catalog schema - so check the schema for the model before you hand this node a guess.
Mechanism. It merges the optional prompt into your input_json if you provided one, uploads any connected image (as PNG) or audio (as WAV) - the README-shaped rule from the code: connect one or the other, not both - and submits to POST /api/generate/submit with the model ID. Then it decides what to do next based on the wait_for_result boolean (default true): with it on, it polls until finished and returns the full result; with it off, it returns the submit response immediately and you take the task_id elsewhere.
Inputs that matter. The two required ones are model_id and input_json. wait_for_result is the behavior switch worth understanding - turn it off and pair the task_id output with PoYo_AwaitJob if you want a two-stage graph. media_field (default image_urls) tells the node which key to write an uploaded image into; a model that expects a different key needs this changed. The poll_interval and timeout fields only apply when wait_for_result is on.
Outputs. Five STRINGs: task_id, status, files_json, output_json, and response_json (the full raw response). Note this node returns strings, not typed media sockets - if you want an IMAGE tensor back, use PoYo_GenerateImage; RunModel is the programmatic, data-oriented path.
Install. Part of poyo-comfyui, needs ComfyUI 0.32.0+ (native node system). ComfyUI Manager (search "PoYo"), comfy node install poyo-nodes, or:
cd ComfyUI/custom_nodes
git clone https://github.com/PoyoAPI/poyo-comfyui.git
then restart. No model files, no extra dependencies.
Where people get burned. Same pair as always in this pack: the input_json schema (wrong guess = instant 400, so pull the model's schema first) and the meter (you're billed per call - with wait_for_result off, the job keeps running and billing after your graph finishes). And your key setup applies: POYO_API_KEY in the environment or python -m poyo_nodes.configure writing to ~/.poyo/comfyui.json. This is an early, low-profile pack - no real community discussion of it exists - so if you're going to hand it a key, skim the source first. The API-node category has a history of exactly this shape being abused.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| model_id | STRING | — | |
| input_json | STRING | {} | — |
| media_field | STRING | image_urls | — |
| wait_for_result | BOOLEAN | true | — |
| poll_interval | FLOAT | 31–60 | — |
| timeout | INT | 36001–86400 | — |
| promptopt | STRING | — | |
| imageopt | IMAGE | — | |
| audioopt | AUDIO | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| task_id | STRING | — |
| status | STRING | — |
| files_json | STRING | — |
| output_json | STRING | — |
| response_json | STRING | — |