Nodes/Seedance 2.0 BytePlus/๐ŸŒฑ Seedance 2.0 S3 Browse Reference Videos
ComfyUI Node

๐ŸŒฑ Seedance 2.0 S3 Browse Reference Videos

Your library of reference clips, browsable and deletable

By nnnnkatsuยทCreated 3 months agoยทUpdated about a month agoยท 1
๐ŸŒฑ Seedance 2.0 S3 Browse Reference Videos
    • video_ref
    โ—„s3_config_jsonโ€”โ–บ
    โ—„prefixโ–บ
    โ—„selected_index1โ–บ
    โ—„max_items20โ–บ
    โ—„expires_in300โ–บ
    โ—„selected_s3_keyโ–บ
    โ—„delete_selectedfalseโ–บ

    If S3 Upload Reference Video gets a clip into your reference library, Seedance 2.0 S3 Browse Reference Videos is the shelf you keep that library on. It lists the videos in your S3 bucket under the configured prefix, shows you a preview, lets you select one, and hands back a video_ref - so you can reuse an uploaded reference again and again without re-uploading. It even deletes objects, which means it's also your housekeeping tool.

    The reuse story is the main reason this node exists. Re-reference the same motion/style clip across many Omni generations by browsing instead of re-uploading each time:

    S3 Config s3_config_json โ†’ S3 Browse Reference Videos s3_config_json
    S3 Browse Reference Videos video_ref โ†’ Omni Reference video_ref_1
    

    The inputs that matter

    • s3_config_json - from S3 Config (or env vars / ~/.byteplus/seedance2-s3.json). Same wiring as the upload node.
    • prefix - optional override; blank uses the configured prefix (video-refs).
    • max_items - how many objects to list (default 20, up to 200). Objects are sorted newest-first.
    • selected_index - which row is selected (1โ€“999).
    • selected_s3_key - the stable object key the browser sets for you; if populated it wins over selected_index, keeping your selection stable across re-runs.
    • expires_in - pre-signed URL lifetime (default 300s).
    • delete_selected - flip to true and the node deletes the currently selected object, then refreshes the list. The UI resets this switch after execution, which is a nice safety touch - you have to deliberately arm it each time.

    Output is a single video_ref for the selected object.

    How it works

    It lists objects under the prefix, filters to actual video files (non-empty, video extensions), sorts newest-first, and lets you select one. The selection logic prefers selected_s3_key over selected_index, and if you've armed delete_selected it deletes the selected key (after checking it still exists), re-lists, and re-selects a sane neighbor.

    The browse list only shows filenames, timestamps and sizes - not previews inline in the list. If you want to eyeball the actual clip before committing it to a render, that's what the preview area on the node is for after you select a row.

    The honest notes

    Three things to keep straight:

    • Delete is destructive. The README's IAM guidance is deliberate: browse needs s3:ListBucket + s3:GetObject, delete needs s3:DeleteObject. If you give your key delete permission, be careful - delete_selected is one flag flip away from removing a reference you may have re-used in a dozen workflows.
    • Pre-signed URLs expire. Default 300 seconds. The video_ref carries S3 metadata so the pack can work around staleness, but a dead pre-signed URL in a saved ref will bite you.
    • This is the S3 section's payoff node. If you never reuse references, browse adds little. If you do, it's the difference between re-uploading every clip by hand and having a library.

    Install: ComfyUI Manager โ†’ Install via Git URL โ†’ https://github.com/nnnnkatsu/seedance2-comfyui-byteplus, restart, with boto3 installed.

    Category๐ŸŒฑ Seedance 2.0/S3

    Inputs (7)

    NameTypeDefaultDescription
    s3_config_jsonSTRINGโ€”
    prefixSTRINGOptional prefix override for browsing. Leave blank to use S3 Config, env vars, file config, or video-refs.
    selected_indexINT11โ€“999โ€”
    max_itemsINT201โ€“200โ€”
    expires_inINT30060โ€“86400โ€”
    selected_s3_keySTRINGOptional stable S3 object key selected by the browser list. If set, it is used before selected_index.
    delete_selectedBOOLEANfalseDelete the currently selected S3 object when this node runs. The UI resets this switch after execution.

    Outputs (1)

    NameTypeDescription
    video_refSEEDANCE2_VIDEO_REFโ€”