Nodes/Comfyui-zhenzhen/Concurrent Collect Videos (10)
ComfyUI Node

Concurrent Collect Videos (10)

Ten slots, one status JSON

By T8mars·Created about a year ago·Updated 2 days ago· 740
Concurrent Collect Videos (10)
  • task_1
  • task_2
  • task_3
  • task_4
  • task_5
  • task_6
  • task_7
  • task_8
  • task_9
  • task_10
  • video_1
  • video_2
  • video_3
  • video_4
  • video_5
  • video_6
  • video_7
  • video_8
  • video_9
  • video_10
  • status
failure_modefail_fast

The video sibling of the pack's image collector, and it does exactly one job: Concurrent Collect Videos (10) waits for up to ten video task futures and hands back real videos in slot order. Every ComflyConcurrent_..._Submit node that produces a COMFLY_VIDEO_FUTURE - the video generators, the Sora nodes, even the video upscaler - feeds through here. No collector, no videos. It's the second half of the pack's concurrency pattern, sized for video's reality: 10 workers, not 30.

That ten-vs-thirty split is the most important thing to internalize about this node. Video jobs are long and expensive - a 15-second clip can take minutes server-side. The author capped the video pool at 10 on purpose. Queue more than ten video tasks and the extras wait for a slot. It's the pack's throttle, and it's doing you a favor.

How it works

Wire task_1 through task_10 (only task_1 required; empty slots report not_connected). Each task is a COMFLY_VIDEO_FUTURE from any video Submit node - mixed models are fine, since they share the pool. On execution it waits on all pending futures with a ComfyUI progress bar, then returns:

  • video_1 … video_10 - VIDEO tensors in task order.
  • status - a JSON string: every slot as not_connected, pending, success, or failed (with sanitized error text that redacts keys and URLs).

failure_mode controls failure behavior:

  • fail_fast (default) - first failure cancels the remaining queued tasks and raises. Fast feedback, but you lose the rest of the batch.
  • placeholder - failed slots get an empty video adapter placeholder, the run completes, and you read status to find the casualties. The right default for "my batch of ten must finish."

Like the image collector, IS_CHANGED returns NaN so the node always re-runs - it's a wait node; it must re-poll.

Inputs and outputs, briefly

  • task_1 (required), task_2–task_10 (optional) - COMFLY_VIDEO_FUTURE inputs.
  • failure_mode - fail_fast / placeholder.
  • video_1…video_10 - VIDEO outputs.
  • status - STRING summary JSON.

Install

Ships with the pack:

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

or ComfyUI Manager → search "Comfyui-zhenzhen" → install → restart.

Where people get burned

  • Task futures are not videos. Same family trap, higher stakes: feed a Submit node's task into a Save Video node and you get a type error. It must pass through this collector.
  • Ten is the ceiling. The collector has exactly ten slots, matching the ten video workers. Trying to batch fifteen video tasks means five wait, and with video's long job times, "wait" can be a long time.
  • fail_fast is aggressive. One flaky Sora slot cancels a whole queue. For video especially - where retries are the norm - placeholder is usually the kinder default.
  • Timeout ≠ failure, again. A video slot reporting failed isn't proof the job died. Check the site's async-task page; the MP4 may be there. Re-running a finished job is just a second bill.
  • Long jobs, long waits. The collector holds the queue open until the slowest slot finishes. A ten-slot batch of 15s HD clips is a commit. Plan around it.

The collector is boring on purpose. Connect tasks, pick your failure mode, wait, save. The entire concurrency feature of the pack - the reason the README says "search Concurrent" - collapses into this one node and its ten slots.

Categoryzhenzhen/Concurrent Collect

Inputs (11)

NameTypeDefaultDescription
task_1COMFLY_VIDEO_FUTURE
failure_modeCOMBOfail_fast2 options: fail_fast, placeholder
task_2optCOMFLY_VIDEO_FUTURE
task_3optCOMFLY_VIDEO_FUTURE
task_4optCOMFLY_VIDEO_FUTURE
task_5optCOMFLY_VIDEO_FUTURE
task_6optCOMFLY_VIDEO_FUTURE
task_7optCOMFLY_VIDEO_FUTURE
task_8optCOMFLY_VIDEO_FUTURE
task_9optCOMFLY_VIDEO_FUTURE
task_10optCOMFLY_VIDEO_FUTURE

Outputs (11)

NameTypeDescription
video_1VIDEO
video_2VIDEO
video_3VIDEO
video_4VIDEO
video_5VIDEO
video_6VIDEO
video_7VIDEO
video_8VIDEO
video_9VIDEO
video_10VIDEO
statusSTRING