Poe Image Generate
Text-to-image in ComfyUI with zero model downloads and zero VRAM
- image
- raw_response
The node that runs on someone else's GPU
PoeImageGenerate is the text-to-image node from the ComfyPoe pack, and the whole point of it is that nothing runs on your machine. You type a prompt, pick a model from a dropdown that reads like a greatest-hits list of closed image APIs - GPT-Image-1, DALL-E-3, Imagen-4, FLUX-pro-1.1, FLUX-schnell, Playground-v3, Recraft-V3, Ideogram-v2, SD3.5-Large and its Turbo sibling - and Poe's servers do the generating. No checkpoint to download, no VRAM, no Failed to load model error. It's a thin wrapper over Poe's OpenAI-compatible API, and it's the node you reach for when you want a closed-model result without leaving the graph.
The name sounds like a local generator. It's not. That's the feature.
How it works
Under the hood this is just an OpenAI chat-completions call. The node builds a request with the official openai Python client pointed at https://api.poe.com/v1, with your prompt as the user message. Poe runs the image model server-side and answers with text containing a markdown image URL. The node regexes out the first URL it can find, downloads the image, and converts it into a normal ComfyUI IMAGE tensor. From the graph's perspective, the output is indistinguishable from a local generator - which is the neat trick: you can wire it straight into PreviewImage, SaveImage, or even downstream upscaling nodes.
The inputs that matter
Only two are required, and they're the obvious ones:
prompt- the text prompt, multiline.api_key- grab it from https://poe.com/api_key. You need a Poe account with API access; this isn't free tier stuff.
Everything else is optional:
model- the 10-model dropdown, defaultGPT-Image-1. This is the best feature of the whole pack: swap closed models without installing anything.aspect- default1:1, with 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, andauto.quality- low / medium / high, default high.seed--1for random; set a positive value to reproduce.negative_prompt- a gentle warning: this is not CFG-style negative conditioning. The node literally appendsAvoid: <your text>to the prompt and hopes the model listens. Some models do; most quietly ignore it. Treat it as a phrasing hint, not a control.
Outputs
Two outputs: image (a standard IMAGE tensor - wire it to PreviewImage or SaveImage) and raw_response (the full text of the API reply). That second one matters more than it looks - when the model returns a refusal or text instead of a picture, raw_response is where you'll see why.
Installing
Via ComfyUI Manager, search ComfyPoe and hit install. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/mrf/ComfyPoe.git
Then restart ComfyUI. openai and requests auto-install on first load - no model files to hunt down. That's the whole install story, which is a relief in a hobby where half the setup is gigabyte downloads.
Gotchas
- "API key is required" - the
api_keyfield is blank. It's a plain-text field, not a stored credential. - "No image URL found in response" - the model answered with words, not a picture. On DALL-E-3 this is often a content refusal (that model has a well-earned reputation for censorship); check
raw_response. - It's synchronous and slow. Each generation is a blocking HTTP round-trip. The node sits there until Poe's server finishes, so don't batch 50 of them and walk away.
- Don't share the workflow. Your API key lives in the workflow JSON in plain text. Strip it before you post that
.jsonanywhere. - Poe's lineup can drift. The model list is the pack author's snapshot; if a model 404s, the pack is behind Poe's current offering.
One opinion, since you'll stare at that dropdown: GPT-Image-1 is the standout here for text rendering and prompt-following, which is exactly what the local open-weight models still stumble on. FLUX-pro and SD3.5 are in the list too, but if you have the hardware to run those locally, you already know. The real value of this node is the closed ones - and the fact that you can hit all of them from one ComfyUI graph.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | A beautiful landscape... | — |
| api_key | STRING | — | |
| modelopt | COMBO | GPT-Image-1 | 10 options: GPT-Image-1, DALL-E-3, Imagen-4, FLUX-pro-1.1, FLUX-schnell, Playground-v3, +4 |
| aspectopt | COMBO | 1:1 | 8 options: 1:1, 3:2, 2:3, 4:3, 3:4, 16:9, +2 |
| qualityopt | COMBO | high | 3 options: low, medium, high |
| seedopt | INT | -1-1–2147483647 | — |
| negative_promptopt | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| raw_response | STRING | — |