Concurrent Submit | Zhenzhen MJ Face Swap
Swap thirty faces, collect them all at once
- source_image
- target_image
- task
Face swap is one of those operations that feels like magic the first time and like a production tool by the third batch: you've got a source face and a target image, and out comes the target with the source's face, plausibly lit and blended. This node is the Concurrent Submit twin of Comfly_Mj_swap_face - Midjourney's face-swap path through the Zhenzhen reseller. It's about as minimal as a node gets, which means the concurrent angle is the whole story: swap a stack of faces in the 30-worker image pool instead of babysitting one at a time.
The inputs that matter
There are only two real inputs, both required:
- source_image - the face you want to transplant.
- target_image - the image getting the new face.
Then the usual trio: api_key (paste your Zhenzhen key), seed (cache-control seed), and skip_error (fail silently vs throw). That's genuinely the entire node.
The concurrent flow
Output is a task (COMFLY_IMAGE_FUTURE), not an image - same deal as every Submit node. Wire your swaps into ComflyConcurrent_Image_Await (30 slots) and the collector waits for the whole batch, returns the images in slot order, and appends a status JSON. The natural use: one source face across thirty target images, or thirty face pairs in one go. If one swap fails, failure_mode on the collector (or skip_error) decides whether you lose the batch or just that slot.
Install and gotchas
It's part of T8mars/Comfyui-zhenzhen: ComfyUI Manager → search "Comfyui-zhenzhen", or git clone https://github.com/T8mars/Comfyui-zhenzhen into custom_nodes, then restart. No local models; standard deps. Paid token, overseas servers (proxy from China).
Two honest caveats. First, face swap is the kind of thing you should only do with faces you're entitled to use - the API has no idea who's in your image, and neither does the reseller. Second, "plausibly lit and blended" is doing a lot of work there: results are good, not Photoshop-level, and consistency across a batch varies. Batch generously and pick winners.
A note on the rest of the Midjourney family
This node sits alongside the pack's other MJ operations - Comfly_Mj (imagine), Comfly_Mju (upscale), Comfly_Mjv (variants), and the video pair. All of them follow the same Submit pattern: same inputs as the original, task output, collected via ComflyConcurrent_Image_Await or ComflyConcurrent_Video_Await.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| source_image | IMAGE | — | |
| target_image | IMAGE | — | |
| api_keyopt | STRING | — | |
| seedopt | INT | 00–2147483647 | — |
| skip_erroropt | BOOLEAN | false | 开启后,节点失败时不报错、按旧行为返回默认空结果;关闭时(默认)失败直接抛出错误。 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| task | COMFLY_IMAGE_FUTURE | — |