Zuco Image2 Text to Image
Your first cloud image generation node
- IMAGE
Your prompt just left the machine
Zuco Image2 Text to Image is a cloud node in the most literal sense: you type a prompt, hit run, and the image is generated somewhere else - on OpenAI's gpt-image-2 model, reached through the Zuco API at https://api.zuco.ai/v1. No checkpoint to download, no LoRA stack, no VRAM usage, and - the part that trips everyone up - no way to run it for free. It's a paid API call wearing a ComfyUI jacket.
If you've been living in fully-local ComfyUI, this will feel like cheating, because it kind of is. gpt-image-2 is one of the strongest closed image models around (it leaked into community awareness in April 2026 as a Nano Banana competitor, and the community's immediate reaction was "not open source" - fair). This node is the easiest way to hit it from inside a ComfyUI graph. Handy when you want a quick one-off concept without a render session, when your GPU is busy, or when you want to A/B a closed model against your local stack. Just understand the trade: closed model, third-party reseller, and every prompt and result leaves your machine.
How it works
The name is a giveaway if you squint: "Image2" is the model version, not a second edition of the node. The model is fixed to gpt-image-2 and the API base URL is fixed to api.zuco.ai - neither is configurable.
Mechanically it's a thin wrapper. It builds a JSON payload (model, prompt, size, output_format) and POSTs it to /v1/images/generations. The response comes back as base64 image data (or a URL the node downloads), gets decoded into a normal IMAGE tensor, and drops out the single IMAGE output ready to wire into anything downstream. It's async, with a 10-minute request timeout, and it handles HTTPS certificates internally with multiple CA sources so it works on Windows, macOS, and Linux installs alike. Notably, the pack has zero extra pip dependencies - its requirements.txt literally says it uses ComfyUI's existing runtime (aiohttp, certifi, numpy, torch, Pillow).
The inputs that matter
There are only a handful, and a beginner sets three of them:
- API Key - the one that gates everything. It's sent as a Bearer token and, per the author's own tooltip, never written to disk. That means you'll be pasting it in on every run; ComfyUI doesn't remember it for you. No key, no request.
- Prompt - describe the image. Empty prompt throws a validation error, so it's not optional in practice.
- width / height - default 1024×1024, and they must be multiples of 16. The backend also caps things: each side 256–3840, aspect ratio no worse than 3:1, and total pixels between about 0.64 and 8.3 megapixels. If you hit a resolution error, this is the constraint list to check.
output_format rounds out the inputs (png, jpeg, or webp; png is default). The single output is IMAGE, which feeds into any save or preview node you already use.
Installing it
Same pack as its sibling node, so one install gets you both:
- ComfyUI Manager: open Manager → Install Custom Nodes, search
comfyui_zuco_image2, install, restart. - Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/zuco1111/comfyui_zuco_image2
# restart ComfyUI
No model files to fetch, no pip install step, no heavy dependencies. This is as clean an install as the ecosystem gets.
Where people get burned
- Blank key or prompt → immediate "Zuco API Key is required." / "Prompt is required." errors. It validates before it ever dials out.
- "Resolution" errors → you hit the multiple-of-16, 3840, 3:1, or pixel-range constraint. Fix the numbers, not the node.
- It's slow - the timeout is 10 minutes because gpt-image-2 can genuinely take a while on complex prompts. Don't assume it hung.
- Billing reality check: this is a per-image paid API. I checked the community signal and there's essentially zero Reddit footprint for
zuco.ai- it's a small reseller, not a household name. Watch the invoice, and be aware the connection and content moderation live on someone else's terms. - The model is fixed, so if you want to try a different OpenAI-compatible image model, this isn't the node - and note the base URL is hardcoded, so you can't repoint it at another provider.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | Zuco API Key. The plugin sends it as a Bearer token and does not write it to disk. | |
| prompt | STRING | Describe the image to generate. | |
| width | INT | 1024256–3840 | Output image width. Must be a multiple of 16. |
| height | INT | 1024256–3840 | Output image height. Must be a multiple of 16. |
| output_format | COMBO | png | Output image format returned by the API. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |