Concurrent Submit | zhenzhen-bria-video-background-removal-v3-fal
Concurrent BRIA video background removal
- video
- task
Video background removal is exactly the kind of job you don't want to run one clip at a time. Ten short clips, each a different talking head on a different background, each needing a temporally-stable cutout - done serially that's ten separate waits, and on hosted matting each one takes as long as the model takes. This submit node is the concurrent wrapper around zhenzhen-bria-video-background-removal-v3-fal: same bria/video/background-removal/v3 endpoint, same transparent-or-solid-color output, but the clips go into the shared video pool and you get task handles back while they process in parallel.
Important framing before you get excited: video concurrency is 10, not 30. The pack runs 30 images in parallel but deliberately only 10 videos, because video jobs are long and heavy. Ten parallel cutouts is still a big speedup over ten serial ones - it just isn't the full image-pool party.
How it works
Auto-generated concurrent machinery, same as every submit node here: the class inherits the base node's inputs at import time, wraps its process() in a bounded ThreadPoolExecutor (video workers default to 10, set by COMFLY_VIDEO_CONCURRENCY), and returns a COMFLY_VIDEO_FUTURE. Collect with ComflyConcurrent_Video_Await ("Concurrent Collect Videos (10)"), which waits for the batch and returns VIDEO tensors in slot order.
Inputs mirror the base node: video_url (required, ignored when video is connected), video, api_key, background_color (default Black - pick Transparent for actual alpha), preserve_audio, output_container_and_codec (default webm_vp9, which is what carries alpha), video_way, poll settings, and skip_error.
Installing it
One clone, whole pack:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-zhenzhen
Restart ComfyUI, or install "Comfyui-zhenzhen" via ComfyUI Manager. No model downloads - matting runs on BRIA's servers.
Common issues
Pack-level: account + credit required, 443 errors need VPN with TUN mode, 500s are usually upstream - re-run. For this node, remember alpha needs the right container: mp4_h264/h265 can't carry transparency, so if your cutouts come back with a black background, you either picked Black as the color or a container that can't hold alpha. And since ten videos is ten paid renders, do a single-clip sanity check on background_color and codec before you fire the whole batch - a batch-wide mistake is an expensive one to learn from.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| video_url | STRING | Public video URL. Ignored when video input is connected. | |
| videoopt | VIDEO | — | |
| api_keyopt | STRING | — | |
| background_coloropt | COMBO | Black | 11 options: Transparent, Black, White, Gray, Red, Green, +5 |
| preserve_audioopt | BOOLEAN | true | — |
| output_container_and_codecopt | COMBO | webm_vp9 | 10 options: mp4_h265, mp4_h264, webm_vp9, mov_h265, mov_proresks, mkv_h265, +4 |
| video_wayopt | COMBO | upload | 2 options: upload, video_url |
| poll_intervalopt | INT | 61–60 | — |
| max_poll_attemptsopt | INT | 60010–3600 | Default 600*6s = 3600s timeout. |
| skip_erroropt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| task | COMFLY_VIDEO_FUTURE | — |