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 3 days ago· 749
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—