Nodes/Seedance 2.0 BytePlus/๐ŸŒฑ Seedance 2.0 Save Video
ComfyUI Node

๐ŸŒฑ Seedance 2.0 Save Video

The one node you should always have in the graph

By nnnnkatsuยทCreated 3 months agoยทUpdated about a month agoยท 1
๐ŸŒฑ Seedance 2.0 Save Video
    • frames
    • filepath
    • frame_count
    โ—„video_urlโ–บ
    โ—„save_subfolderseedance2โ–บ
    โ—„filename_prefixseedance2โ–บ
    โ—„frame_load_cap1โ–บ
    โ—„skip_first_frames0โ–บ
    โ—„select_every_nth1โ–บ
    โ—„load_framesfalseโ–บ

    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, or Batch Result Browser.
    • save_subfolder - subfolder under your output dir, default seedance2.
    • filename_prefix - default seedance2; files save as <prefix>_00001.mp4, auto-incrementing.
    • load_frames - default false. 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 - when load_frames is on: 0 loads all frames, anything else caps the count. Default 1 - i.e., just the first frame for a cheap preview.
    • skip_first_frames and select_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.

    Category๐ŸŒฑ Seedance 2.0

    Inputs (7)

    NameTypeDefaultDescription
    video_urlSTRINGโ€”
    save_subfolderSTRINGseedance2โ€”
    filename_prefixSTRINGseedance2โ€”
    frame_load_capoptINT10โ€“9999When load_frames is enabled, 0 loads all frames; otherwise cap the number of frames.
    skip_first_framesoptINT00โ€“500โ€”
    select_every_nthoptINT11โ€“30โ€”
    load_framesoptBOOLEANfalseLoad saved video frames into the IMAGE output. Off is safer for 1080p/4k videos.

    Outputs (3)

    NameTypeDescription
    framesIMAGEโ€”
    filepathSTRINGโ€”
    frame_countINTโ€”