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

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

GPT Image 2 with pixel-exact custom sizes — the stable one

By T8mars·Created about a year ago·Updated 2 days ago· 740
Concurrent Submit | zhenzhen-gpt-image-2-official_ratio_stable
  • image1
  • image2
  • image3
  • image4
  • image5
  • image6
  • image7
  • image8
  • image9
  • image10
  • image11
  • image12
  • image13
  • image14
  • image15
  • image16
  • mask
  • task
prompt
aspect_ratioempty
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
custom_width2560
custom_height1280

The official GPT Image 2 API doesn't take arbitrary resolutions - it has a fixed set of legal sizes. The plain official_ratio node handles that by snapping your requested ratio to the nearest valid box. This node, official_ratio_stable, is the one that goes further: pick custom in the aspect-ratio dropdown and you get custom_width / custom_height up to 8192, with the backend doing the snapping for you. It was added later in the pack's life specifically for people who needed a specific pixel dimension - the README's update log notes custom sizes must be divisible by 32 (the schema steps the widgets in 64s to keep you honest).

Same family as the other official GPT Image 2 nodes: async mode, task-ID recovery, webhook, polling/retry knobs, sixteen image slots plus a mask, all resold through the Comfyui-zhenzhen key. The "stable" in the name is a claim about this being the dependable custom-size path - and it's also the node you'll reach for when a client hands you an exact spec.

How the concurrent bit works

The plain Comfly_gpt_image_2_official_ratio_stable 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.

The inputs that matter

  • prompt (required).
  • aspect_ratio - a long list including empty, the common set, and custom. Choose custom and the custom_width / custom_height widgets activate (defaults 2560×1280).
  • resolution - 1k / 2k / 4k.
  • image1image16 and mask - multi-image editing + inpainting.
  • model - gpt-image-2 / -all / -2K / -4K.
  • n, quality, background, output_format, output_compression, moderation, response_format - the standard official-family controls.
  • async_mode (default true), webhook, and the polling/retry knobs.

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

The custom-size rule is the whole game: keep custom_width/custom_height divisible by 32 (the widgets step by 64 by default) or the call fails on validation. And remember the result is still snapped to the nearest legal GPT Image 2 size - "stable" doesn't mean "exactly your number comes out," it means the flow is reliable. Same family warnings apply: official-channel congestion is real (the -2K/-4K models and the fal channel are the backups), and if a job times out client-side, check the shop's async task list for the task ID before paying for a rerun.

Categoryzhenzhen/Openai/Concurrent Submit

Inputs (39)

NameTypeDefaultDescription
promptSTRING
aspect_ratioCOMBOempty12 options: empty, 1:1, 3:2, 2:3, 4:3, 3:4, +6
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开启后,节点失败时不报错、按旧行为返回默认空结果;关闭时(默认)失败直接抛出错误。
custom_widthoptINT256064–8192aspect_ratio选择custom时生效,自定义宽度
custom_heightoptINT128064–8192aspect_ratio选择custom时生效,自定义高度

Outputs (1)

NameTypeDescription
taskCOMFLY_IMAGE_FUTURE