Concurrent Collect Videos (10)
Ten slots, one status JSON
- 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
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 -
VIDEOtensors in task order. - status - a JSON string: every slot as
not_connected,pending,success, orfailed(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
statusto 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_FUTUREinputs. - failure_mode -
fail_fast/placeholder. - video_1…video_10 -
VIDEOoutputs. - status -
STRINGsummary 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
taskinto 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 -
placeholderis usually the kinder default. - Timeout ≠ failure, again. A video slot reporting
failedisn'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.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| task_1 | COMFLY_VIDEO_FUTURE | — | |
| failure_mode | COMBO | fail_fast | 2 options: fail_fast, placeholder |
| task_2opt | COMFLY_VIDEO_FUTURE | — | |
| task_3opt | COMFLY_VIDEO_FUTURE | — | |
| task_4opt | COMFLY_VIDEO_FUTURE | — | |
| task_5opt | COMFLY_VIDEO_FUTURE | — | |
| task_6opt | COMFLY_VIDEO_FUTURE | — | |
| task_7opt | COMFLY_VIDEO_FUTURE | — | |
| task_8opt | COMFLY_VIDEO_FUTURE | — | |
| task_9opt | COMFLY_VIDEO_FUTURE | — | |
| task_10opt | COMFLY_VIDEO_FUTURE | — |
Outputs (11)
| Name | Type | Description |
|---|---|---|
| video_1 | VIDEO | — |
| video_2 | VIDEO | — |
| video_3 | VIDEO | — |
| video_4 | VIDEO | — |
| video_5 | VIDEO | — |
| video_6 | VIDEO | — |
| video_7 | VIDEO | — |
| video_8 | VIDEO | — |
| video_9 | VIDEO | — |
| video_10 | VIDEO | — |
| status | STRING | — |