Wujiai 通用生图 (同步)
One node, every Wujiai image model — Gemini, Nano Banana, Grok, GPT, Seedream
- images
- image
- report
This is the flagship of the Wujiai side of the ComfyUI-nkxx pack: one node that fronts a whole catalog of closed image models through the Wujiai gateway. Change the model_name and the same node talks to Gemini, Nano Banana, Grok, GPT-image, or Seedream. The README's pitch is "a single node system that unifies multiple models," and it mostly delivers - the node picks a provider by inspecting the model name and builds the right request (Gemini :generateContent style or OpenAI-compatible /v1/images/generations), then blocks until the image comes back.
Inputs:
- model_name - free STRING, default
gemini-3.1-flash-image-preview. This is the whole trick: type a different model name and you switch vendors. The pack's model list is cloud-synced (it fetches the gateway's live host/config at runtime), so new model names appear without updating the plugin. - prompt - multiline, default "A cyberpunk cat".
- aspect_ratio - 1:1, 16:9, 9:16, 3:4, 4:3, 2:3, 3:2, auto, 21:9.
- image_size - 默认 / 1K / 2K / 3K / 4K.
- sequential_mode -
disabled/auto. The tooltip says it plainly: 组图模式, i.e. "group image mode." Auto lets the model produce a composed multi-image grid from your reference inputs instead of treating them as separate stills. - max_images - 1–15. How many reference images get passed along.
- n - 1–10, how many images to request per call.
- concurrency - 1–10, how many parallel calls.
- images (optional) - the reference IMAGE batch; the node slices it up per the max_images/n logic.
- api_key - optional; blank uses the pack-wide Wujiai key.
Outputs: image (IMAGE tensor, ready for preview/save or as a first frame for a local video model) and report (STRING with status and your remaining balance).
Mechanically the sync path builds the request, uploads any reference images to Wujiai, and waits with a long timeout. Note it's a gateway - your images and prompts go through Wujiai's servers, so this is a paid, cloud-only workflow. There's no local model here and never will be; the point is trading a bunch of per-vendor API clients for one node.
Install is pack-wide:
cd ComfyUI/custom_nodes
git clone https://github.com/jieg9341-lab/ComfyUI-nkxx
Restart (first boot auto-installs requests, pandas, openpyxl, yt-dlp, opencv-python, aiohttp). Register a Wujiai account (wujiai.org) and put the key in the node, or set WUJIAI_KEY, or use the pack's global key manager.
Grounded gotchas:
- The Wujiai host is resolved at runtime (a live config fetch with a cached fallback), so a first-run hiccup or a DNS/HTTPS oddity on your network can make the node fail with "动态路由获取失败" printed to the console - it falls back to a secondary channel, but if you see that and failures, check general outbound connectivity before blaming the model.
- Different providers accept different things. Not every model honors
aspect_ratioornthe same way; if a model returns oddly-shaped results, that's the model, not the node. - Sync means it blocks the queue for the duration of the generation - a 4K Seedream call is not instant. For batches, use the async trio.
- This is a paid API: every call spends credits, and the report showing your balance is the pack's way of keeping you honest.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | STRING | gemini-3.1-flash-image-preview | — |
| prompt | STRING | A cyberpunk cat | — |
| aspect_ratio | COMBO | 1:1 | 9 options: 1:1, 16:9, 9:16, 3:4, 4:3, 2:3, +3 |
| image_size | COMBO | 默认 | 5 options: 默认, 1K, 2K, 3K, 4K |
| sequential_mode | COMBO | disabled | 组图模式 |
| max_images | INT | 151–15 | — |
| n | INT | 11–10 | — |
| concurrency | INT | 11–10 | — |
| imagesopt | IMAGE | — | |
| api_keyopt | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| report | STRING | — |