Nodes/Comfyui-zhenzhen/Concurrent Submit | zhenzhen-boogu-image-fal
ComfyUI Node

Concurrent Submit | zhenzhen-boogu-image-fal

30 parallel calls, results in order

By T8mars·Created about a year ago·Updated 2 days ago· 740
Concurrent Submit | zhenzhen-boogu-image-fal
  • image
  • task
prompt
modetext_to_image
image_url
api_key
negative_prompt
image_sizesquare_hd
custom_width1024
custom_height1024
num_inference_steps30
guidance_scale4.0
image_guidance_scale1.0
cfg_range_start0.00
cfg_range_end1.00
num_images1
seed0
enable_safety_checkertrue
output_formatjpeg
sync_modefalse
image_waybase64
poll_interval6
max_poll_attempts600
skip_errorfalse

Boogu is the pack's dependable hosted image model - text-to-image and editing in one node, no hype, no queues. Its one weakness is the same as every other blocking node in ComfyUI: one image at a time, one wait at a time. This submit node is the parallel version of zhenzhen-boogu-image-fal. Same inputs, same fal-ai/boogu-image endpoints, but each call goes into the shared image pool and you get a task back immediately instead of a finished image.

Where this shines is prompting experiments and batch variations: you want five different prompts at square_hd, or the same prompt at four aspect ratios, and you'd rather fire them all at once than serially. That's exactly what this node (plus the collector) is for. The pool runs 30 image jobs in parallel, which for a fast model like Boogu means a whole grid of variations lands in roughly the time of one blocking call.

How it works

The concurrent machinery is auto-generated per node: the submit class inherits the base node's entire input list at import time, wraps its process() in a bounded ThreadPoolExecutor (30 image workers by default, tunable via COMFLY_IMAGE_CONCURRENCY), and returns a COMFLY_IMAGE_FUTURE. You collect with ComflyConcurrent_Image_Await ("Concurrent Collect Images (30)"), which waits for the batch and hands back IMAGE tensors in their original slot order.

Inputs are identical to the base node: prompt, mode (text_to_image / edit), image/image_url, api_key, negative_prompt, image_size (including custom with custom_width/custom_height), num_inference_steps, guidance_scale, image_guidance_scale (edit mode), num_images, seed (FAL max 65535), enable_safety_checker, output_format, sync_mode, image_way, and the poll settings. skip_error is what you flip on if you want a partial failure to leave the rest of the batch alive.

Installing it

The whole pack, one clone:

cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-zhenzhen

Restart ComfyUI, or install "Comfyui-zhenzhen" via ComfyUI Manager. No models to download - generation runs on hosted Boogu through the Zhenzhen proxy.

Common issues

Standard pack gotchas: you need a Zhenzhen account with credit, 443 errors from some networks mean VPN with TUN mode, and first-run 500s are usually upstream - re-run. Concurrency-specific: remember num_images multiplies the meter, so 30 concurrent submits each generating 4 images is 120 paid calls - the pool is your parallelism, not a discount. And if the collector seems stalled, check whether a long video job is hogging shared resources; image and video have separate pools, so in practice this one only queues against other images.

Categoryzhenzhen/FAL/Concurrent Submit

Inputs (23)

NameTypeDefaultDescription
promptSTRING
modeoptCOMBOtext_to_image2 options: text_to_image, edit
imageoptIMAGE
image_urloptSTRING
api_keyoptSTRING
negative_promptoptSTRING
image_sizeoptCOMBOsquare_hd8 options: auto, square_hd, square, portrait_4_3, portrait_16_9, landscape_4_3, +2
custom_widthoptINT1024256–2048
custom_heightoptINT1024256–2048
num_inference_stepsoptINT3020–100
guidance_scaleoptFLOAT4.00–20
image_guidance_scaleoptFLOAT1.00–20Edit mode only.
cfg_range_startoptFLOAT0.000–1
cfg_range_endoptFLOAT1.000–1
num_imagesoptINT11–4
seedoptINT00–655350 = random seed. FAL seed max is 65535.
enable_safety_checkeroptBOOLEANtrue
output_formatoptCOMBOjpeg2 options: jpeg, png
sync_modeoptBOOLEANfalse
image_wayoptCOMBObase642 options: base64, image_url
poll_intervaloptINT61–60
max_poll_attemptsoptINT60010–3600Default 600*6s = 3600s timeout.
skip_erroroptBOOLEANfalse

Outputs (1)

NameTypeDescription
taskCOMFLY_IMAGE_FUTURE