๐ฑ Seedance 2.0 Save Video
The one node you should always have in the graph
- frames
- filepath
- frame_count
If you use this pack for more than a day, you will hit the wall this node exists to knock down: every video URL BytePlus hands you expires in about 24 hours. Render a clip, close ComfyUI, come back tomorrow, and the link is a corpse. Seedance 2.0 Save Video is the insurance: it downloads the mp4 from a video_url to your ComfyUI output folder, where it lives forever, and - if you want - decodes it into a ComfyUI IMAGE batch you can keep working with. The README's advice is unambiguous: "Use Save Video for anything you need to keep." This is the node that makes the pack usable instead of a very expensive screensaver.
The inputs
video_url- the output of any generation node,Retrieve Task Result,Task History Browser, orBatch Result Browser.save_subfolder- subfolder under your output dir, defaultseedance2.filename_prefix- defaultseedance2; files save as<prefix>_00001.mp4, auto-incrementing.load_frames- defaultfalse. When on, the node decodes the saved video into an IMAGE batch. The tooltip is your friend: "Off is safer for 1080p/4k videos." Loading frames of a long 4K clip into RAM is exactly how you OOM a machine.frame_load_cap- whenload_framesis on:0loads all frames, anything else caps the count. Default 1 - i.e., just the first frame for a cheap preview.skip_first_framesandselect_every_nth- trim the start and thin the frame rate of the batch you decode.
Outputs
frames (IMAGE batch, meaningful only with load_frames on), filepath (the STRING path of the saved file), and frame_count (INT - number of frames decoded, or 0 with load_frames off).
How it works
It streams the URL to disk in chunks, auto-incrementing the filename so nothing is overwritten, then embeds ComfyUI workflow metadata into the mp4 (a genuinely nice touch - the metadata survives in the file). With load_frames on it decodes via OpenCV with your skip/cap/nth settings. If the URL is dead, you get an "Invalid URL" error in the node rather than a silent fail.
The workflow habit worth forming
Generator video_url โ Save Video video_url
Wire it in before you queue the render, not after. The cost is one extra download while the task is fresh; the alternative is re-paying for a render you can't retrieve. And if you want frames to keep feeding into local ComfyUI processing - upscaling, frame interpolation, whatever you'd do to a local video - flip load_frames on with a frame_load_cap you can afford.
The honest tradeoff: Save Video is strictly more useful than Preview Video URL, but it's heavier - full download plus optional frame decode versus a quick glance. Use the preview node to decide, the saver to keep. This is the one node I'd call mandatory in any workflow where the output matters.
Install: ComfyUI Manager โ Install via Git URL โ https://github.com/nnnnkatsu/seedance2-comfyui-byteplus, restart. Frame loading needs OpenCV, which the pack's requirements.txt installs.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| video_url | STRING | โ | |
| save_subfolder | STRING | seedance2 | โ |
| filename_prefix | STRING | seedance2 | โ |
| frame_load_capopt | INT | 10โ9999 | When load_frames is enabled, 0 loads all frames; otherwise cap the number of frames. |
| skip_first_framesopt | INT | 00โ500 | โ |
| select_every_nthopt | INT | 11โ30 | โ |
| load_framesopt | BOOLEAN | false | Load saved video frames into the IMAGE output. Off is safer for 1080p/4k videos. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| frames | IMAGE | โ |
| filepath | STRING | โ |
| frame_count | INT | โ |