GPT Image 2 · Text to Image
Medium Quality, Legible Type, and Fifteen Aspect Ratios
- images
- task id
The straightforward one: a prompt in, one to ten images out, at low/medium/high quality, in 1K, 2K or 4K, in any of fifteen ratios. GPT Image 2's party trick is writing readable text into the picture, which is the thing most open models still fumble. About $0.001816 per image at the headline rate.
When to call it instead of running something local
Honestly? Less often than you'd have said a year ago. The closed-model gap on text rendering narrowed hard in 2026 - Ideogram open-weighted 4.0 with native ComfyUI support, Krea 2 shipped its weights, and the local options in the same pack as this node (Z-Image, Qwen Image) are no slouches. If you already have a working local pipeline and occasional bad lettering is survivable, stay home and pay nothing.
Call this node when the words have to be right and you'd rather not spend an evening fighting it: menus, posters, packaging mockups, signage, anything where a misspelled word ruins the deliverable. It's also the node for prompts that require actual instruction-following - "six objects on a shelf, the third one red" - where open models tend to drift. The price of that reliability is the usual API-node contract: your prompt leaves the machine, and OpenAI's moderation decides what it will draw.
Inputs
- prompt - describe the image. Be specific about rendered text.
- aspect_ratio - fifteen options, 1:3 through 3:1, default 1:1. Vertical formats and wide banners are first-class here.
- resolution -
1k(default),2k,4k. - quality - low, medium or high, default
medium. Three tiers, not five - the 2.5 nodes are the ones with the longer quality ladder. Higher tiers add detail, time and cost. - num_outputs - 1 to 10, each one billed separately, so think before typing 10.
- output_format -
pngby default; JPEG and WebP supported. - output_quality - −1 leaves compression to the model; 0–100 applies to JPEG/WebP only.
Outputs are images and task id. Straight into Save Image or a preview node.
No seed, no negative prompt, no sampler - nothing to dial. That's the deal with this whole class of node: fewer knobs, more predictability, metered by the call.
Installing it
ComfyUI Manager → search SpicyAPI → install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi
Restart ComfyUI, open Settings > SpicyAPI, paste a key from spicyapi.ai/console/keys, and restart once more so the node list is rebuilt from your account catalogue - the menu is generated at startup, and that's why a model on the website can be absent from your canvas. Nothing else installs; the pack declares no dependencies and uses what ComfyUI already ships. On a server, set SPICY_API_KEY; a proxy via HTTPS_PROXY is honoured.
Small print worth reading
Max cost per run in Settings > SpicyAPI is the one setting to configure on day one. Every job gets quoted before it exists, and the node raises if the worst case exceeds your ceiling - a check that happens before you're charged, which is the right order. The badge on the node shows a rate per image, not a total, because resolution tier and num_outputs change the real figure; the actual charge appears on the node when the run completes. And since there's no seed input, queueing twice means generating twice and paying twice - if you want to compare settings, do it from the same queue or you'll be comparing two different samples.
If you share workflows or screenshots: your key lives in your ComfyUI user folder, not in the graph or image metadata, so nothing leaks that way. Failed runs aren't charged unless the model page says otherwise, and a content_rejected result is the model refusing - not something the node can fix.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Describe the image you want. | |
| aspect_ratio | COMBO | 1:1 | Output aspect ratio. |
| resolution | COMBO | 1k | Output size tier. |
| quality | COMBO | medium | Rendering quality. Higher tiers add detail, time and cost. |
| num_outputs | INT | 11–10 | How many images to return, each billed separately. |
| output_format | COMBO | png | File format of the returned images. |
| output_quality | INT | -1-1–100 | Compression quality for JPEG and WebP, from 0 to 100. -1 leaves it to the model. |
| seed | INT | 00–2147483647 | This model takes no seed, so the number is never sent. Changing it makes ComfyUI run the node again: set 'control after generate' to randomize for a new result on every run; every run is billed. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| task id | STRING | The SpicyAPI task id, for the console logs or support. |