๐ฑ Seedance 2.0 S3 Browse Reference Videos
Your library of reference clips, browsable and deletable
- video_ref
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- fromS3 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 overselected_index, keeping your selection stable across re-runs.expires_in- pre-signed URL lifetime (default 300s).delete_selected- flip totrueand 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 needss3:DeleteObject. If you give your key delete permission, be careful -delete_selectedis 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_refcarries 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.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| s3_config_json | STRING | โ | |
| prefix | STRING | Optional prefix override for browsing. Leave blank to use S3 Config, env vars, file config, or video-refs. | |
| selected_index | INT | 11โ999 | โ |
| max_items | INT | 201โ200 | โ |
| expires_in | INT | 30060โ86400 | โ |
| selected_s3_key | STRING | Optional stable S3 object key selected by the browser list. If set, it is used before selected_index. | |
| delete_selected | BOOLEAN | false | Delete the currently selected S3 object when this node runs. The UI resets this switch after execution. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video_ref | SEEDANCE2_VIDEO_REF | โ |