Nodes/PoYo AI/PoYo Generate Image
ComfyUI Node

PoYo Generate Image

Cloud image gen that lands as a real IMAGE tensor

By PoyoAPI·Created about a month ago·Updated about a month ago· 0
PoYo Generate Image
  • image
  • image
  • task_id
  • response_json
model
prompt
input_json{}
media_fieldimage_urls
poll_interval3
timeout3600
model_id_override

Pick a model from the dropdown, type a prompt, and an image pops out the other side as a normal IMAGE socket - exactly as if a sampler had made it on your card. It didn't. The generation happens on PoYo's servers, and this node is the remote control: it submits your prompt, polls the job, downloads the finished image, and decodes it into a tensor the rest of your graph can upscale, mask, or feed into a video model.

This is the flagship node of the poyo-comfyui pack, and it's squarely the thing the KB's API-node essay is about: a node that doesn't run a model, it reaches out and calls one. You use it when the model you want has no open weights, when your GPU can't handle the job, or when you just want a draft stage without warming up a local pipeline. The honest tradeoffs come with it - every call is metered, your prompt and any input image leave your machine, and whatever filter the hosted model has applies to you with no local bypass. If that's fine for your use case, this is the easiest door in.

How it works. Under the hood it's a thin REST client, not a sampler. The dropdown is filled from PoYo's catalog (GET /v1/catalog/models), cached locally for 15 minutes so the UI doesn't fetch on every keystroke. When you run, it uploads any connected input image as a PNG, submits your prompt to POST /api/generate/submit, grabs the returned task_id, and polls the status endpoint every few seconds until the task is finished - then downloads the first image URL from the response and turns the bytes into an IMAGE tensor. All of it rides on a bearer token from your API key; nothing about your prompt lives in the workflow JSON.

The inputs you'll actually touch. The two that matter are model (the dropdown) and prompt. Everything else has sane defaults. If you connect an image to the optional IMAGE socket, it gets uploaded and wired into the model's input, which turns the node from text-to-image into image-edit or img2img depending on the model - that's the "generation/editing" in the pack's own description. The advanced fields you'll reach for only when something breaks: model_id_override (type a model ID directly if the catalog fetch failed - the dropdown will be stuck on (enter model ID below)), and input_json for model-specific parameters that don't have their own widget. poll_interval and timeout control the wait; the default timeout of an hour is plenty.

Outputs: image (IMAGE) for the rest of the graph, plus task_id and response_json (STRING) if you want to keep a handle on the job or see the raw API reply.

Install. The pack needs ComfyUI 0.32.0 or newer - it uses the newer native node system, so an old install just won't load it. Then either search "PoYo" in ComfyUI Manager, run comfy node install poyo-nodes, or:

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

Restart ComfyUI. There are no model files to download - that's the whole point - and no declared runtime dependencies beyond what ComfyUI already ships.

Where people get burned. First, the API key. Set POYO_API_KEY (and optionally POYO_BASE_URL) as an environment variable, or run python -m poyo_nodes.configure to stash it in ~/.poyo/comfyui.json. It's deliberately kept out of workflow JSON - do not paste your key into a node field, since workflows get shared. Second, billing: you're charged per call, so a big batch with control_after_generate: randomize on the prompt is spending real money in a way local sampling never does. And because this is an early, official-but-unknown pack (you won't find it discussed on the subreddits), give it the once-over before trusting it with a key - an API node that phones home with your credential is exactly the shape that category has been weaponized in before.

CategoryPoYo AI/Generate

Inputs (8)

NameTypeDefaultDescription
modelCOMBO1 options: (enter model ID below)
promptSTRING
input_jsonSTRING{}
media_fieldSTRINGimage_urls
poll_intervalFLOAT31–60
timeoutINT36001–86400
imageoptIMAGE
model_id_overrideoptSTRING

Outputs (3)

NameTypeDescription
imageIMAGE
task_idSTRING
response_jsonSTRING