并发提交|FlashVSR 480P 视频超分
The concurrent FlashVSR submit node
- input_video
- api_config
- future
This is the same FlashVSR 480P upscaler you already met, but wearing a "fire it in a batch" hat. Instead of producing a video, it produces a future - a handle on a job that's running in a background thread pool - and you wire up to ten of those futures into the pack's 并发接收视频(10 路) (10-slot video receiver) node, which waits on all of them and hands you the videos in slot order. One submit node per clip, one receiver for the batch. That's the whole concurrency story of this pack in miniature: single runs use the plain node, batch runs use the 并发提交| variants plus a receiver.
It's still an API wrapper from T8mars/ComfyUI_Seedance - the "concurrency" here is about your workflow not blocking while ten cloud jobs run, not about GPU parallelism.
How it works
The submit node copies the original FlashVSR node's inputs (video_url, input_video, api_config, skip_error, seed) but replaces the outputs with a single future of type SEEDANCE_VIDEO_FUTURE. Before anything enters the pool, it runs the same strict preflight validation the original node would - a bad parameter fails fast at the submit node, not inside the batch. Then the job is submitted to the pack's bounded thread pool (video jobs cap at 10 concurrent), and the future is returned. The receiver node takes future_1 through future_10, waits, and re-orders results by slot.
There are two failure modes on the receiver worth knowing: raise stops everything and points at the failing slot; placeholder keeps the successful slots and gives you a redacted status summary. With skip_error on, a single dead clip won't sink the whole batch.
The inputs that matter
- video_url / input_video - exactly one source per submit node, same rules as the plain FlashVSR node: 480P, 3–15 seconds, public URL or local video.
- api_config - the shared config; all ten submit nodes can use the same one.
- seed - cache seed for repeat runs.
Output: future, wired into future_N of the 10-slot video receiver.
Installing it
ComfyUI Manager → search "ComfyUI Seedance", or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/ComfyUI_Seedance.git
cd ../..
python -m pip install -r custom_nodes/ComfyUI_Seedance/requirements.txt
Restart, key from api.seedance.nz/console, Seedance API Config into api_config.
The batch shape
Ten submit nodes, each with its own clip and a future output. Ten wires into the receiver's future_1..future_10. Receiver outputs video per slot. The pack ships a 并发视频10路示例.json example workflow showing the full wiring, and the receiver is generic - it doesn't care that these particular futures came from FlashVSR, so you can mix in other video submit nodes (Seedance, Hailuo, Kling…) on different slots.
Common issues
- Future won't connect to the receiver - you need the video receiver (
并发接收视频(10 路)), not the image one; the future types differ. - One bad clip kills the batch - that's
failure_mode=raisedoing its job. Switch toplaceholder(and/orskip_error) to isolate failures. - Slots out of order - the receiver restores slot order from the input connections, so keep future-to-slot wiring explicit; the example workflow is the reference.
- Not seeing the node - check the category: it's under
Seedance/并发提交, not the plainSeedancefolder.
Batch upscaling is the classic use - ten 480P clips upscaled in roughly the time one takes, because the ten API jobs run in parallel and the receiver only blocks on the slowest.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| video_url | STRING | Optional public video URL. Leave empty when connecting input_video. The source must be 480P and 3-15 seconds. | 可选公网视频直链;连接 input_video 时留空。源视频必须为 480P,时长 3-15 秒。 | |
| input_videoopt | VIDEO | Local ComfyUI video to upload. Use exactly one local video or one public URL. | 本地 ComfyUI 视频;本地视频和公网直链二选一。 | |
| api_configopt | SEEDANCE_CONFIG | Connect Seedance API Config; otherwise SEEDANCE_API_KEY is used. | |
| skip_erroropt | BOOLEAN | false | On failure return a placeholder error video instead of stopping the workflow. | 失败时输出占位错误视频而不中断工作流。 |
| seedopt | INT | 00–18446744073709550000 | ComfyUI cache seed. Fixed reuses the cached result while all other inputs stay unchanged; randomize/increment/decrement starts a new execution. This value is not sent to models without documented seed support. | ComfyUI 缓存种子;Fixed 在其他输入不变时复用缓存,随机、递增或递减会触发新任务。未声明支持 seed 的模型不会收到此参数。 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| future | SEEDANCE_VIDEO_FUTURE | — |