Concurrent Submit | zhenzhen-gpt-image-2-official_ratio
GPT Image 2 by aspect ratio — the 'all ratios' official node
- image1
- image2
- image3
- image4
- image5
- image6
- image7
- image8
- image9
- image10
- image11
- image12
- image13
- image14
- image15
- image16
- mask
- task
GPT Image 2's official API is picky about shapes - it wants a specific size, and turning "I need a 21:9 banner" into the right pixel box is exactly the kind of busywork a node should do for you. That's this one's job. Where the base official node exposes a size picklist, this variant takes an aspect ratio (1:1, 3:2, 4:3, 16:9, 9:16, 2:1, 1:2, and more, plus auto) and a resolution (1K/2K/4K), and the backend snaps the ratio to the closest legal size. The README calls it the "full-ratio" node - it was built to cover the special ratios like 21:9 that the plain size list couldn't express.
Wrapped by the Comfyui-zhenzhen reseller, submitted concurrently, and collected like all the rest. It keeps the async machinery (task ID recovery) and the polling knobs of the official family.
How the concurrent bit works
The plain Comfly_gpt_image_2_official_ratio node blocks until the job lands. The Submit variant runs it in the pack's shared image pool (30 workers) and returns a task immediately. Collect via Concurrent Collect Images (30): wire task_1 … and the collector waits for the batch, returning images in slot order plus a status string. failure_mode = fail-fast (default) or placeholder.
Batch of six banners in six ratios? One run, six parallel calls.
The inputs that matter
prompt(required).aspect_ratio- the headline control:auto, the common set,2:1/1:2, and a couple more. The README notesautowas added on request.resolution- 1k / 2k / 4k. The backend takes the ratio and resolution and snaps to the nearest valid size.image1…image16- multi-image edit references.maskfor masked edits.model-gpt-image-2/-all/-2K/-4K.n- 1–10 outputs per call.quality,background,output_format,output_compression,moderation- the standard official-family controls.response_format-urlorb64_json. The README suggests URL when you're passing many reference images (keeps the request light).async_mode(default true) +webhook+ polling/retry knobs - same machinery as the base official node.
Output: one task (COMFLY_IMAGE_FUTURE) → Collector → images.
Installing it
Ships in Comfyui-zhenzhen:
- ComfyUI Manager → Install Custom Nodes → search "Comfyui-zhenzhen" → install → restart.
- Or
cd ComfyUI/custom_nodes && git clone https://github.com/T8mars/Comfyui-zhenzhenand restart.
No model downloads. You need a paid token from the author's storefront (ai.t8star.org), in api_key.
Gotchas
Ratio snapping means the output may not be exactly your requested ratio - it's "approx, snapped to the nearest valid size" (the README says exactly that). For pixel-exact custom sizes you want the ratio_stable sibling, which adds custom width/height. Same congestion story as the whole official GPT Image 2 family: when OpenAI is loaded, this channel slows or throws "system error"; the -2K/-4K models and the fal channel are the author's own recommended backups. And if a job times out on your side but shows complete in the shop's async list, recover by task ID instead of re-spending.
Inputs (37)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| aspect_ratio | COMBO | auto | 14 options: auto, 1:1, 3:2, 2:3, 4:3, 3:4, +8 |
| resolution | COMBO | 1k | 3 options: 1k, 2k, 4k |
| image1opt | IMAGE | — | |
| image2opt | IMAGE | — | |
| image3opt | IMAGE | — | |
| image4opt | IMAGE | — | |
| image5opt | IMAGE | — | |
| image6opt | IMAGE | — | |
| image7opt | IMAGE | — | |
| image8opt | IMAGE | — | |
| image9opt | IMAGE | — | |
| image10opt | IMAGE | — | |
| image11opt | IMAGE | — | |
| image12opt | IMAGE | — | |
| image13opt | IMAGE | — | |
| image14opt | IMAGE | — | |
| image15opt | IMAGE | — | |
| image16opt | IMAGE | — | |
| maskopt | MASK | — | |
| api_keyopt | STRING | — | |
| modelopt | COMBO | gpt-image-2 | 4 options: gpt-image-2, gpt-image-2-all, gpt-image-2-2K, gpt-image-2-4K |
| nopt | INT | 11–10 | — |
| qualityopt | COMBO | auto | 4 options: auto, high, medium, low |
| backgroundopt | COMBO | auto | 2 options: auto, opaque |
| output_formatopt | COMBO | png | 3 options: png, jpeg, webp |
| output_compressionopt | INT | 1000–100 | — |
| moderationopt | COMBO | auto | 2 options: auto, low |
| response_formatopt | COMBO | url | 2 options: url, b64_json |
| async_modeopt | BOOLEAN | true | — |
| webhookopt | STRING | — | |
| max_poll_attemptsopt | INT | 30010–1000 | — |
| poll_intervalopt | INT | 52–60 | — |
| max_retriesopt | INT | 51–10 | — |
| initial_timeoutopt | INT | 90060–1200 | — |
| seedopt | INT | 00–18446744073709550000 | — |
| skip_erroropt | BOOLEAN | false | 开启后,节点失败时不报错、按旧行为返回默认空结果;关闭时(默认)失败直接抛出错误。 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| task | COMFLY_IMAGE_FUTURE | — |