Nodes/Comfyui-zhenzhen/Concurrent Submit | zhenzhen-gpt-image-2-official_ratio
ComfyUI Node

Concurrent Submit | zhenzhen-gpt-image-2-official_ratio

GPT Image 2 by aspect ratio — the 'all ratios' official node

By T8mars·Created about a year ago·Updated 2 days ago· 740
Concurrent Submit | zhenzhen-gpt-image-2-official_ratio
  • image1
  • image2
  • image3
  • image4
  • image5
  • image6
  • image7
  • image8
  • image9
  • image10
  • image11
  • image12
  • image13
  • image14
  • image15
  • image16
  • mask
  • task
prompt
aspect_ratioauto
resolution1k
api_key
modelgpt-image-2
n1
qualityauto
backgroundauto
output_formatpng
output_compression100
moderationauto
response_formaturl
async_modetrue
webhook
max_poll_attempts300
poll_interval5
max_retries5
initial_timeout900
seed0
skip_errorfalse

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 notes auto was added on request.
  • resolution - 1k / 2k / 4k. The backend takes the ratio and resolution and snaps to the nearest valid size.
  • image1image16 - multi-image edit references. mask for 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 - url or b64_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-zhenzhen and 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.

Categoryzhenzhen/Openai/Concurrent Submit

Inputs (37)

NameTypeDefaultDescription
promptSTRING
aspect_ratioCOMBOauto14 options: auto, 1:1, 3:2, 2:3, 4:3, 3:4, +8
resolutionCOMBO1k3 options: 1k, 2k, 4k
image1optIMAGE
image2optIMAGE
image3optIMAGE
image4optIMAGE
image5optIMAGE
image6optIMAGE
image7optIMAGE
image8optIMAGE
image9optIMAGE
image10optIMAGE
image11optIMAGE
image12optIMAGE
image13optIMAGE
image14optIMAGE
image15optIMAGE
image16optIMAGE
maskoptMASK
api_keyoptSTRING
modeloptCOMBOgpt-image-24 options: gpt-image-2, gpt-image-2-all, gpt-image-2-2K, gpt-image-2-4K
noptINT11–10
qualityoptCOMBOauto4 options: auto, high, medium, low
backgroundoptCOMBOauto2 options: auto, opaque
output_formatoptCOMBOpng3 options: png, jpeg, webp
output_compressionoptINT1000–100
moderationoptCOMBOauto2 options: auto, low
response_formatoptCOMBOurl2 options: url, b64_json
async_modeoptBOOLEANtrue
webhookoptSTRING
max_poll_attemptsoptINT30010–1000
poll_intervaloptINT52–60
max_retriesoptINT51–10
initial_timeoutoptINT90060–1200
seedoptINT00–18446744073709550000
skip_erroroptBOOLEANfalse开启后,节点失败时不报错、按旧行为返回默认空结果;关闭时(默认)失败直接抛出错误。

Outputs (1)

NameTypeDescription
taskCOMFLY_IMAGE_FUTURE