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

๐ŸŒฑ Seedance 2.0 Video Reference URL

Turning any video URL into something Omni will accept

By nnnnkatsuยทCreated 3 months agoยทUpdated about a month agoยท 1
๐ŸŒฑ Seedance 2.0 Video Reference URL
    • video_ref
    โ—„video_urlโ–บ

    The one-line summary: Seedance 2.0 Video Reference URL takes a video URL and wraps it in the structured type that the Omni Reference node expects. That's it. It's the smallest node in the pack, but it's the bridge that lets a public video - an https://... link, an S3 pre-signed URL, or a BytePlus asset:// ID - stand in as reference material for generation.

    Why bother with a wrapper node at all? Because the pack uses a custom connection type, SEEDANCE2_VIDEO_REF, to carry not just the URL but optional S3 metadata alongside it. That metadata is what lets Omni Reference delete an uploaded S3 reference after a successful generation (via the delete_s3_references_after_generation toggle), so the cleanup travels with the URL instead of being tracked by hand. A raw STRING connection can't do that. This node is the thin adapter that upgrades a bare URL to that richer object.

    How it works

    You paste the URL into video_url (tooltip: "Reference video URL, S3 pre-signed URL, or asset:// ID."), and the node returns {"url": <your-url>} as a video_ref. Straight passthrough - no network calls, no uploads, nothing to verify. If the field is empty it raises a video_url is required. error rather than silently passing a blank.

    Wire the video_ref output into one of Omni Reference's three video_ref_1/video_ref_2/video_ref_3 inputs, and reference it in your prompt as @video1, @video2, or @video3.

    The common gotcha lives in the URL you feed it. BytePlus will not accept a random private file path or a localhost link - the reference has to be something their servers can actually fetch. A public URL works. An S3 pre-signed URL works (that's what the S3 upload/browse nodes generate). And a BytePlus asset:// ID works, which is the "upload it to BytePlus's own storage first" path. If you have a local video file sitting in ComfyUI/input/, this node can't help you directly - that's what Seedance 2.0 S3 Upload Reference Video is for. It uploads the file, generates a pre-signed URL, and hands you the same video_ref type.

    Install and a footgun

    Part of the pack, so: ComfyUI Manager โ†’ Install via Git URL โ†’ https://github.com/nnnnkatsu/seedance2-comfyui-byteplus, restart. No dependencies beyond what the pack already needs; you don't even need boto3 for this node since it never touches S3 itself.

    The footgun is expiry. S3 pre-signed URLs are time-limited - the upload node's expires_in defaults to 300 seconds. If you generate a video_ref, stare at the canvas for ten minutes, and then run the workflow, the URL may already be dead. If you're holding a ref for later, either bump expires_in on the upload/browse nodes or keep the S3 metadata in the ref so the pack can re-sign it. And the same 24-hour rule that governs every output URL applies to reference videos: BytePlus task data doesn't live forever, so save anything you plan to reuse.

    Category๐ŸŒฑ Seedance 2.0

    Inputs (1)

    NameTypeDefaultDescription
    video_urlSTRINGReference video URL, S3 pre-signed URL, or asset:// ID.

    Outputs (1)

    NameTypeDescription
    video_refSEEDANCE2_VIDEO_REFโ€”