Concurrent Submit | zhenzhen-image-gk-v2-region-edit
Point at an object, tell it what to become
- api_config
- task
This is the most interesting node in the concurrent family, because it isn't just "the same node, but parallel." zhenzhen-image-gk-v2-region-edit is GK V2's region editor - you tell it which part of an image to change, and it changes that part. The Concurrent Submit wrapper batches those region edits into the shared 30-slot image pool.
If you've done local regeneration, you know the shape of the job: mask a region, change the thing inside it. This node does that on the cloud model, but the selection isn't a mask you draw - it's expressed in JSON, and that's what makes it weird and powerful.
How region selection works here
There are three selection modes, picked with selection_mode:
- object_indices - the model segments the image and you reference objects by index.
selection_jsonof[0](the default) means "the first object the model found." You'd run the segmentation once, see what indices came back, then edit by index. - boxes - instead of indices, you give bounding boxes:
[[x, y, w, h]]-style coordinates for the region. - selection_regions - the region-editor form of the same idea, for the API endpoint that takes explicit region definitions.
The selection_json field is a JSON list, validated hard: object_indices must be non-negative integers, boxes must be lists of numbers. Get the shape wrong and the node raises before anything is billed.
The catch: image_id is a required STRING, not an IMAGE tensor. It's the task id of a previously generated GK V2 image. So the normal flow is: generate (or segment) with the GK V2 image nodes → grab the task id → feed it here with a region selection and a prompt. That's why the pack ships the segment node (zhenzhen-image-gk-v2-segment) as a sibling - the segmentation pass hands you the object indices you then paste into selection_json. Batch edition of this node just means several of these queued through the pool at once, each editing its own task id.
Inputs that matter
- image_id - the prior task's id. Required, string, force-input.
- prompt - what to do to the selected region. Multiline.
- selection_mode -
object_indices/boxes/selection_regions. - selection_json - the JSON list that makes the selection. Start with
[0]and confirm what the segmentation actually found. - api_config - the standard
zhenzhen-seedance2-low-price-api-settingsnode (domestic key from api.seedance.nz). - seed - cache-control only.
Output is a task (COMFLY_IMAGE_FUTURE) → Concurrent Collect Images (30) → real IMAGE tensors plus status.
Install
ComfyUI Manager → search "Comfyui-zhenzhen" → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-zhenzhen
Pure API client, no downloads, needs a Zhenzhen key.
Where people get burned
- The
image_idis not a ComfyUI image. It's the API task id from a prior generation. Wiring a tensor into the string slot fails validation before anything happens. - Your selection must match the actual segmentation. Object indices are assigned by the model, not by you. If the model sees the background as object 0,
[0]edits the background. Run the segmentation pass first and read what it returns - guessing indices bills you for the wrong edit. - Malformed JSON is rejected up front.
[0]is valid;0is not. The node validates before you spend a credit, which is a rare kindness in this pack - use it. - It's still metered cloud. Every region edit is a billed call, and your source image is uploaded to a third-party server. The privacy caveat that applies to the whole pack applies double here, because you're shipping a reference image plus a precise description of what's in it.
Region editing is fiddly the first time and genuinely fast once the flow clicks: segment → collect indices → queue region edits. If you do e-commerce, character cleanup, or any job that's "fix the same spot across many images," this is the node the pack was built around.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image_id | STRING | — | |
| prompt | STRING | — | |
| selection_mode | COMBO | object_indices | 3 options: object_indices, boxes, selection_regions |
| selection_json | STRING | [0] | — |
| api_configopt | ZHENZHEN_SEEDANCE2_CONFIG | — | |
| skip_erroropt | BOOLEAN | false | — |
| seedopt | INT | 00–18446744073709550000 | Execution seed for ComfyUI cache control. Fixed reuses the cached result; randomize/increment/decrement requests a new run. This compatibility seed is not sent to APIs that do not expose a native seed parameter. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| task | COMFLY_IMAGE_FUTURE | — |