Wan 2.7 Pro · Text to Image
4k canvases and a colour palette you actually control
- images
- task id
Most text-to-image endpoints top out around a megapixel, then you upscale and hope. This one returns 2k - about 4 megapixels - or 4k, about 16 - from a prompt, in seven aspect ratios, for $0.075 an image. That's the pitch: a print-sized file straight out, not a draft.
Whether the resolution is real detail or interpolated size is the obvious question, and the answer is the same as always: judge it at 100% on the thing you care about, skin and fabric and glass, before you build a pipeline on it. But a 16 megapixel output is doing something your local 1024px sampler plus an upscaler has to fake, and for one-off product or poster work that's worth real money.
The inputs
prompt is the subject, composition, style, lighting. Long prompts are fine; the model has the context for it.
resolution is the headline control - 2k by default, 4k available - and it's the one that changes your bill most in practice, because it changes your render time and your options. Draft at 2k, commit at 4k.
aspect_ratio covers the usual seven shapes from 1:1 through 16:9 and 9:16, which is enough for social, print and wallpaper formats without a crop.
color_palette is the unusual one, and honestly the reason I'd reach for this node over a generic image endpoint. You give it 3 to 10 colours as JSON, each with an optional share of the frame in percent:
[{"hex": "#0f1b2d", "ratio": 50}, {"hex": "#e0b464", "ratio": 30}, {"hex": "#f2efe6"}]
Shares are your call; omit them and the colours split evenly. If you're generating a set of assets that has to sit next to a brand palette, this is far more reliable than typing hex codes into a prompt and hoping.
seed repeats a draw exactly, which is the only honest way to compare two prompt phrasings.
Outputs are images and task id. Note there's no num_outputs on this node - one image per run - so batching means several runs, and each is billed.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi
Restart once, then Settings > SpicyAPI with a key from spicyapi.ai/console/keys - or search "SpicyAPI" in ComfyUI Manager. No model files, no dependencies, no GPU: the node sends a request and downloads the result, which is why it behaves identically on a laptop and on a rented box. The key is stored in the ComfyUI user folder rather than in a node field, so it doesn't ride along inside workflow files or PNG metadata; SPICY_API_KEY is the server equivalent.
Money, seeds and error strings
Image endpoints price per image, and the badge shows the rate - $0.075/image - not a total, so set Max cost per run in the SpicyAPI settings before you start a 4k session. Anything quoted above the ceiling stops before anything is charged.
Seeds default to fixed. That's a feature: re-queueing the same graph reuses the same result and costs one run, not two. Switch control after generate to randomize only when you want a fresh take, because a fresh take is a fresh charge. And cancelling in ComfyUI doesn't cancel the job - it completes server-side and is billed if successful, with the file waiting in your console for up to 14 days.
Failure messages tell you which failure it is. No SpicyAPI key is set is exactly that. 40004 means your option combination has no deployment, and the message names the parameter to change. 40901 means the price moved before the task was created - run the node again to accept the new price. 50301 means the model has no usable deployment right now, so try later. 50302 means it failed upstream and was refunded; re-queue. An error ending in request_id ... is worth pasting into a support message untouched, because it names the exact request and nothing else does.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Describe the image to generate: subject, composition, style, and lighting. | |
| aspect_ratio | COMBO | 1:1 | Aspect ratio of the generated image. |
| resolution | COMBO | 2k | Output resolution tier. |
| color_palette | STRING | Custom colour theme: 3 to 10 colours, each with an optional share of the image in percent. Leave the shares empty to split them evenly. JSON. A list of objects with "hex", "ratio"?. | |
| seed | INT | 00–2147483647 | Same seed and settings, same result. Set 'control after generate' to randomize to get 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. |