Nodes/Comfyui-zhenzhen/Concurrent Submit | Zhenzhen_gpt_image_1_edit
ComfyUI Node

Concurrent Submit | Zhenzhen_gpt_image_1_edit

GPT Image 1 editing with masks — the fiddliest node, made queueable

By T8mars·Created about a year ago·Updated 2 days ago· 740
Concurrent Submit | Zhenzhen_gpt_image_1_edit
  • image1
  • image2
  • image3
  • image4
  • image5
  • image6
  • image7
  • image8
  • image9
  • image10
  • mask1
  • mask2
  • mask3
  • mask4
  • mask5
  • mask6
  • mask7
  • mask8
  • mask9
  • mask10
  • task
prompt
api_key
modelgpt-image-1
n1
qualityauto
sizeauto
seed0
clear_chatstrue
backgroundauto
output_compression100
output_formatpng
max_retries5
initial_timeout900
input_fidelitylow
partial_images0
skip_errorfalse

GPT Image 1 is OpenAI's text-and-image model - the one that made "edit this image in place, keep everything else" feel natural. This node is the edit flavor, and it's the deepest surface in the pack's OpenAI corner: ten image inputs, ten mask inputs, plus fidelity and partial-image controls that the plain generation node doesn't have. The Comfyui-zhenzhen pack resells the API with its own key, and the Concurrent Submit wrapper lets you batch a bunch of edits instead of running them one at a time.

It's also the fiddliest node on this shelf, so let's be honest about the trade: the masks are per-image (mask1 pairs with image1), there's a chat-context toggle, and OpenAI's own servers occasionally just don't deliver. You reach for this when you need surgical edits, and you accept the babysitting that comes with them.

How the concurrent bit works

The plain Comfly_gpt_image_1_edit node blocks until the edit 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, returning images in slot order plus a status string. failure_mode = fail-fast (default) or placeholder.

Batch of masks across ten images = ten parallel API calls, one collector.

The inputs that matter

  • prompt (required) - the edit instruction.
  • image1image10 and mask1mask10 - paired. Connect image2 and mask2 together; a mask without its image is a wasted slot. Leave masks empty for full-image instruction edits.
  • model - gpt-image-1 or gpt-image-1.5 (the README notes 1.5 landed in the Dec update and is faster via the premium group).
  • n - 1–10 images per edit.
  • quality - auto/high/medium/low. High is where the credits go.
  • size - auto or the three fixed presets.
  • clear_chats - default true. Set false to let the node carry chat context so a follow-up edit can reference the previous result.
  • input_fidelity - low (default) or high. High fidelity keeps more of the source pixels; lower gives the model more freedom.
  • partial_images - 0–3; how many of your references count as "partial" images rather than full references.
  • max_retries (5) and initial_timeout (900s) - OpenAI's edit endpoint is slow and flaky; these are your survival knobs.

Output: one task (COMFLY_IMAGE_FUTURE) → Collector → edited 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 README's edit-node history reads like a bug report: up to ten images and ten masks, a clear_chats flag added for context editing, retry/timeout knobs added because "the 500s are usually OpenAI, not us." The default token group for gpt-image-1 was slow enough that the author now recommends the premium ("优质") group - the cheap default group works but is a patience test. And when the model "returns nothing," check the shop's task log before re-paying; OpenAI's failures don't always bill, but reruns always do.

Categoryzhenzhen/Openai/Concurrent Submit

Inputs (36)

NameTypeDefaultDescription
promptSTRING
image1optIMAGE
image2optIMAGE
image3optIMAGE
image4optIMAGE
image5optIMAGE
image6optIMAGE
image7optIMAGE
image8optIMAGE
image9optIMAGE
image10optIMAGE
mask1optMASK
mask2optMASK
mask3optMASK
mask4optMASK
mask5optMASK
mask6optMASK
mask7optMASK
mask8optMASK
mask9optMASK
mask10optMASK
api_keyoptSTRING
modeloptCOMBOgpt-image-12 options: gpt-image-1, gpt-image-1.5
noptINT11–10
qualityoptCOMBOauto4 options: auto, high, medium, low
sizeoptCOMBOauto4 options: auto, 1024x1024, 1536x1024, 1024x1536
seedoptINT00–18446744073709550000
clear_chatsoptBOOLEANtrue
backgroundoptCOMBOauto3 options: auto, transparent, opaque
output_compressionoptINT1000–100
output_formatoptCOMBOpng3 options: png, jpeg, webp
max_retriesoptINT51–10
initial_timeoutoptINT90060–1200
input_fidelityoptCOMBOlow2 options: low, high
partial_imagesoptCOMBO04 options: 0, 1, 2, 3
skip_erroroptBOOLEANfalse开启后,节点失败时不报错、按旧行为返回默认空结果;关闭时(默认)失败直接抛出错误。

Outputs (1)

NameTypeDescription
taskCOMFLY_IMAGE_FUTURE