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 3 days ago· 749
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.
  • image1 … image16 - 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—