Concurrent Submit | zhenzhen-pixelcut-video-background-removal-fal
Batch background removal on whole videos, not just frames
- video
- task
Here's the thing about background removal: locally, it's commoditized to death - BiRefNet, rembg, a hundred nodes, all free. But do it on video and the local story changes completely. Per-frame matting of a multi-second clip on your own GPU is slow and fiddly. This node sends the whole video to Pixelcut's background-removal service through fal's queue and hands you back a clean cutout video with the background already stripped. That's a genuinely useful cloud job, not just a local model wearing an API costume.
It's also a video node, which means it runs in the shared video pool (10 workers, not 30), and it returns a COMFLY_VIDEO_FUTURE task. Collect with Concurrent Collect Videos (ComflyConcurrent_Video_Await), which takes up to 10 tasks and returns video_1…video_10 in slot order.
The inputs
- video - the input clip (VIDEO type from your video nodes), or video_url if you have a hosted URL. The
video_urltooltip says it's ignored whenvideois connected, so wire the tensor when you can. - video_way -
upload(send the clip to their server) vsvideo_url(pass a URL through). - background - what to put behind the subject:
transparent,black,white,green,blue,magenta, orcustom. Transparent is the default and the usual goal - green/blue are for keying workflows downstream. - custom_r / custom_g / custom_b - the RGB triple for
custombackgrounds. - output_format - the good stuff:
auto,webm_vp9,mp4_h264,mp4_h265,mov_proresks,mov_h265,mkv_h264,mkv_h265,mkv_vp9, orgif. ProRes for post, h.264 for web, gif when you must. - poll_interval / max_poll_attempts - default 600 × 6s = 1 hour timeout.
- api_key and skip_error - the usual.
Install
Pack-standard - ComfyUI Manager → search Comfyui-zhenzhen, or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-zhenzhen
Restart, add your token (ai.t8star.org overseas; api.seedance.nz for the domestic discount) to api_key.
Things worth knowing
- Upload size is your limit. You're shipping a whole video file to a server. Long 4K clips will be slow to upload and slow to process; keep the input short if you're iterating.
- Transparency in every container isn't free. If you pick
mp4_h264, you're getting the background you selected - you only get real alpha in formats that support it (webm, mov, mkv). That's how video containers work, not a node bug. - This is the video pool. Don't expect the 30-way image concurrency here; 10 concurrent video jobs is what the pack gives you, and each one is hammering the same pool as every other video node in the pack.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| video_url | STRING | Public video URL. Ignored when video input is connected. | |
| videoopt | VIDEO | — | |
| api_keyopt | STRING | — | |
| backgroundopt | COMBO | transparent | 7 options: transparent, black, white, green, blue, magenta, +1 |
| output_formatopt | COMBO | auto | 10 options: auto, webm_vp9, mp4_h264, mp4_h265, mov_proresks, mov_h265, +4 |
| custom_ropt | INT | 00–255 | — |
| custom_gopt | INT | 00–255 | — |
| custom_bopt | INT | 00–255 | — |
| 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 | — |