Nodes/ComfyUI Seedance/并发提交|VOSR2 2K 视频超分
ComfyUI Node

并发提交|VOSR2 2K 视频超分

Ten videos to 2K at once — the 并发提交 wrapper for VOSR2 video upscaling

By T8mars·Created 2 months ago·Updated 3 days ago· 31
并发提交|VOSR2 2K 视频超分
  • input_video
  • api_config
  • future
video_url
skip_errorfalse
seed0

Video upscaling is slow even when it isn't yours. The single-shot VOSR2_Video_Upscale node uploads a clip, waits on a remote 2K upscale job, and only then returns. Run that one at a time across a whole folder and you'll be there all day. SeedanceConcurrent_VOSR2_Video_Upscale_Submit ("并发提交|VOSR2 2K 视频超分") is the parallel version: same cloud model, but each instance hands back a future immediately instead of blocking, so the pack can run up to ten clips side by side and collect them as they finish.

How it works

Like every concurrent node in ComfyUI_Seedance, this is the submit half of a submit/collect pair. Inputs mirror the plain video node exactly - video_url for a public direct link or input_video for a local clip, plus api_config and skip_error - and it still enforces the one-source rule: local video or public URL, never both, never neither. Preflight validation runs synchronously before anything is dispatched, so a bad source fails instantly without spending a cent.

The single output is future (type SEEDANCE_VIDEO_FUTURE). That's a handle, not a video. You wire it into the pack's collector 并发接收视频(10 路) (SeedanceConcurrent_Video_Await, in the "Seedance/并发接收" category), connecting each submit node's future to a future_1future_10 slot. The collector waits on all ten, keeps slot order, and outputs each 2K result as VIDEO alongside a status_json summary.

What actually matters when setting it up

  • One submit node per clip. Want ten videos upscaled? Ten of these nodes, ten future wires into the collector's ten slots.
  • The collector's failure_mode is raise by default: any failed job cancels the rest and points at the failing slot. Flip it to placeholder and failed slots get placeholder videos while the good ones still come through.
  • Each submit node's own skip_error is respected per job, so one dead clip doesn't have to take down the batch.

The collector is video-typed rather than model-typed, which means this VOSR2 future can sit in the same collector as futures from the pack's Seedance, Hailuo or FlashVSR video nodes. It all just works, because each submit wrapper preserves its own strict single-source contract internally.

Installing

This is a node in the ComfyUI_Seedance pack, so the install is the pack install:

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 ComfyUI (or install via Manager by searching "ComfyUI Seedance"). No model files to download, requests is the only dependency, and you'll want an API key from api.seedance.nz/console before the batch runs.

Gotchas

  • No collector, no video. A dangling future output produces nothing. Build the submit → collect chain before you hit run.
  • Ten-slot ceiling. The collector stops at 10, and the pool defaults to 10 concurrent jobs. SEEDANCE_VIDEO_CONCURRENCY (1–10) turns the dial down if upload rate limits start biting.
  • Cost and storage. Ten jobs means ten billed upscales and potentially large downloads; the pack caps video downloads at 8 GiB each. Save outputs promptly - gateway links expire.

Single clip, occasional batch - skip this node, the plain one is friendlier. The moment you're queuing a set of clips overnight, this is the version you want: ten uploads, ten polls, one collector doing the waiting.

CategorySeedance/并发提交

Inputs (5)

NameTypeDefaultDescription
video_urlSTRINGOptional public video URL. Leave empty when connecting input_video. | 可选公网视频直链;连接 input_video 时留空。
input_videooptVIDEOLocal ComfyUI video to upload. Use exactly one local video or one public URL. The result is a 2K video. | 本地 ComfyUI 视频;本地视频和公网直链二选一,结果为 2K 视频。
api_configoptSEEDANCE_CONFIGConnect Seedance API Config; otherwise SEEDANCE_API_KEY is used.
skip_erroroptBOOLEANfalseOn failure return a placeholder error video instead of stopping the workflow. | 失败时输出占位错误视频而不中断工作流。
seedoptINT00–18446744073709550000ComfyUI 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)

NameTypeDescription
futureSEEDANCE_VIDEO_FUTURE