GPT Image 2.5 Sunburst · Text to Image
4K, Legible Type, and a Local Alternative Muscling In
- images
- task id
Two things make OpenAI's image models worth a wrapper node in your graph: they put readable words in pictures, and they follow an awkward instruction without a prompt-engineering degree. Sunburst is the quality-first half of the GPT Image 2.5 pair - five quality tiers, 1K/2K/4K, fifteen aspect ratios - at about $0.001816 an image at the headline rate.
Why it's here, and what's changing around it
There is a real argument that this call is now optional rather than necessary. Text-in-image was the closed frontier's moat for years - the KB's closed-model write-up names Ideogram as the long-time benchmark for it - and then the moat started draining: Ideogram open-weighted 4.0 in June 2026 with native ComfyUI support and a claimed 0.97 on English OCR accuracy, Krea 2 opened its weights the same month, and Z-Image is sitting in the same pack you're reading about. If your job is "put type on an image" and you have a decent local setup, you can now do it without a meter running.
What the hosted call still buys you is convenience and consistency: no LoRA hunting, no two-hour model downloads, and quality that doesn't depend on your card. At roughly a fifth of a cent per image, the honest framing is that this is cheap enough that the deciding factor is your time, not your wallet.
Inputs and outputs
- prompt - describe the image you want. Name the text you want rendered; that's the capability you came for.
- aspect_ratio - fifteen ratios from 1:3 to 3:1, default 1:1. Unusually wide, and the reason this node is good for banners, covers and vertical social formats.
- resolution -
1k(default),2kor4k. 4K is where small type stops mushifying. - quality - five tiers from low to max. Higher tiers add detail, time and cost.
- num_outputs - 1 to 10, billed individually. Set it to 4 for a quick comparison grid and remember you're paying for four.
- output_format -
pngby default, with JPEG and WebP available; output_quality applies to those two only (−1 means the model decides, 0–100 otherwise).
Outputs: images and task id. Save Image or a preview node finishes the graph.
Flare is the sibling with identical inputs that trades some quality for speed. Use Flare while you're iterating on wording, Sunburst on the version you keep.
Installing it
ComfyUI Manager → search SpicyAPI → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi
Restart ComfyUI, open Settings > SpicyAPI and paste a key from spicyapi.ai/console/keys. Restart once more - the node menu is rebuilt from your account's catalogue at startup, and that restart is the fix for "the model I saw on the website isn't in my menu". No Python dependencies, no model files; the pack adds nothing that can break your environment. On a remote box, put the key in SPICY_API_KEY.
Where people get burned
The moderation is the one to plan around. GPT Image refuses things, and the community's complaint about this model family has always been unpredictability rather than strictness - the filter is not yours to tune, no matter how the node is wired. A declined request generally isn't billed, so the cost of finding out is small.
Then the bill mechanics. Max cost per run in Settings > SpicyAPI is your seatbelt: every job is quoted first, and the node raises before creating a task if the worst case exceeds your limit. Seeds aren't exposed on these OpenAI nodes, so every run is a new result - which means every run is a new charge, and num_outputs at 10 is ten of them. If you cancel mid-run, the task carries on server-side and is charged on success; the result stays in your console for up to 14 days. Keep an eye on task id output when something fails - support can identify the request from that alone.
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 | high | 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. |