Concurrent Submit | Zhenzhen_gpt_image_1_edit
GPT Image 1 editing with masks — the fiddliest node, made queueable
- image1
- image2
- image3
- image4
- image5
- image6
- image7
- image8
- image9
- image10
- mask1
- mask2
- mask3
- mask4
- mask5
- mask6
- mask7
- mask8
- mask9
- mask10
- task
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.image1…image10andmask1…mask10- 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-1orgpt-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) orhigh. 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) andinitial_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-zhenzhenand 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.
Inputs (36)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| image1opt | IMAGE | — | |
| image2opt | IMAGE | — | |
| image3opt | IMAGE | — | |
| image4opt | IMAGE | — | |
| image5opt | IMAGE | — | |
| image6opt | IMAGE | — | |
| image7opt | IMAGE | — | |
| image8opt | IMAGE | — | |
| image9opt | IMAGE | — | |
| image10opt | IMAGE | — | |
| mask1opt | MASK | — | |
| mask2opt | MASK | — | |
| mask3opt | MASK | — | |
| mask4opt | MASK | — | |
| mask5opt | MASK | — | |
| mask6opt | MASK | — | |
| mask7opt | MASK | — | |
| mask8opt | MASK | — | |
| mask9opt | MASK | — | |
| mask10opt | MASK | — | |
| api_keyopt | STRING | — | |
| modelopt | COMBO | gpt-image-1 | 2 options: gpt-image-1, gpt-image-1.5 |
| nopt | INT | 11–10 | — |
| qualityopt | COMBO | auto | 4 options: auto, high, medium, low |
| sizeopt | COMBO | auto | 4 options: auto, 1024x1024, 1536x1024, 1024x1536 |
| seedopt | INT | 00–18446744073709550000 | — |
| clear_chatsopt | BOOLEAN | true | — |
| backgroundopt | COMBO | auto | 3 options: auto, transparent, opaque |
| output_compressionopt | INT | 1000–100 | — |
| output_formatopt | COMBO | png | 3 options: png, jpeg, webp |
| max_retriesopt | INT | 51–10 | — |
| initial_timeoutopt | INT | 90060–1200 | — |
| input_fidelityopt | COMBO | low | 2 options: low, high |
| partial_imagesopt | COMBO | 0 | 4 options: 0, 1, 2, 3 |
| skip_erroropt | BOOLEAN | false | 开启后,节点失败时不报错、按旧行为返回默认空结果;关闭时(默认)失败直接抛出错误。 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| task | COMFLY_IMAGE_FUTURE | — |