ComfyUI Node

Seedance 2.5

Longer clips, output format control, and audio on by default

By felipederosilva·Created 2 months ago·Updated 2 days ago· 3
Seedance 2.5
  • first_frame_url
  • last_frame_url
  • reference_image_urls
  • reference_video_1
  • reference_video_2
  • reference_video_3
  • reference_audio_1
  • reference_audio_2
  • reference_audio_3
  • video
  • url
  • all_urls_json
  • task_id
  • raw_json
  • credits_consumed
  • credits_left
◄promptA serene beach at sunset with waves gently crashing on the shore, palm trees swaying in the breeze, and seagulls flying across the orange sky►
◄return_last_framefalse►
◄generate_audiotrue►
◄resolution720p►
◄aspect_ratioadaptive►
◄duration5►
◄output_formatmp4►
◄web_searchfalse►
◄nsfw_checkerfalse►
◄timeout_seconds1200►
◄callback_url►

Seedance 2.5 is the newest point on ByteDance's video line, and the news value is simple: it's an API product. It was announced at ByteDance's own conference as a hosted model, and the Seedance family's entire history is closed-endpoint-only - no weights, no local version, and no realistic chance of one, because ByteDance's flagships stay on the API while the components underneath them ship free. So if you want 2.5 in ComfyUI, this node is the whole story.

The additions over 2.0 are the kind that matter once you're delivering clips rather than testing prompts: longer durations, a choice of container format, and audio that's on unless you turn it off.

Inputs and outputs

prompt is required and long-form - the docs allow up to 30,000 characters, the roomiest of the Seedance prompts.

The media sockets are the 2.x family's full set: first_frame_url, last_frame_url (IMAGE), reference_image_urls (IMAGE, batches welcome), reference_video_1/2/3 (VIDEO), reference_audio_1/2/3 (AUDIO). And you're still bound by the family rule - KIE documents First/Last Frame mode and Multimodal Reference mode as mutually exclusive scenarios, and the pack validates that before submitting, so a mixed workflow fails locally with a readable error rather than silently taking your money.

duration is an INT, default 5, documented as 4–30 seconds, or -1 for automatic: the model picks a length for you, and for editing-style tasks it matches the length of your input video instead of guessing. That -1 option is the most interesting thing on this node - it turns "how long should this be?" into the model's problem, which is often the right answer. output_format picks mp4 or mov, and mov is the one to reach for if the clip is heading into a professional post chain.

generate_audio defaults to true here, unlike its siblings - worth knowing before you queue, because the docs say audio raises the generation cost. resolution covers 480p, 720p, 1080p; aspect_ratio defaults to adaptive (which infers shape from your input) and also offers 1:1, 4:3, 3:4, 16:9, 9:16, 21:9. return_last_frame returns the final frame as an image - the docs note it can't be combined with the draft-mode behaviour on that endpoint, though draft isn't exposed as an input on this node. web_search exists for research-flavoured scenes, nsfw_checker defaults off.

Outputs: video, url, all_urls_json, task_id, raw_json, credits_consumed, credits_left. The credits pair and the on-node "credits spent / credits left" receipt are what keep a metered session comprehensible.

Cost discipline, again

There's no getting around it: this is the newest and most capable Seedance endpoint in the pack, and it's priced like one. Two habits make it survivable. First, generate_audio is on by default - if you're scoring the clip yourself, turn it off and save the surcharge. Second, draft cheap: earlier Seedance nodes taught users to iterate at 480p and commit at the resolution they're shipping, and that habit transfers directly. Also lean on -1 duration and the reference-frame inputs so you're paying for rendering rather than for the model to reinvent a shot you already liked.

Remember these nodes run synchronously - ComfyUI waits, your queue is blocked, and timeout_seconds (default 1200, up to 7200) needs headroom for a 30-second render. Timeouts don't come with refunds.

Install

Manager → search KIE.ai Nodes Next (publisher id felipeosilva) → install. If Manager comes up empty, the README still frames registry publishing as prepared rather than live, so do it manually:

cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
pip install -r ComfyUI-KIE-Nodes-Next/requirements.txt

Restart ComfyUI. Four light dependencies (requests, Pillow, numpy, PyYAML), no downloads, no local inference, no video codecs to fight - results come back over HTTP and get archived in output/KIE-Results/. Windows users can run the .vbs one-click installer from dist/. Then, once: Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key. The key is validated before it replaces a working one, the frontend only sees a masked fingerprint, and KIE_API_KEY wins on headless installs.

Gotchas

Nodes minted from live docs drift. Seedance 2.5's page can gain or change fields, and your install reflects whatever it last synced - run KIE • Refresh Model Catalog when something looks off, and remember the odd hash suffix on the class name is just how generated nodes are named.

adaptive aspect ratio is not a neutral default the way 16:9 is. It follows your input, which is what you want on reference-driven work and not what you want when you're building a 9:16 social clip from scratch.

And the standing trade: prompt plus any connected frame, video or audio goes to KIE, every render is metered, and ByteDance's model enforces its own content policy regardless of the nsfw_checker switch. This is the whole deal with hosted frontier models - the one thing you can't have locally, at per-call prices and with your inputs leaving the machine.

CategoryKIE Next/Video/ByteDance/Seedance

Inputs (20)

NameTypeDefaultDescription
promptSTRINGA serene beach at sunset with waves gently crashing on the shore, palm trees swaying in the breeze, and seagulls flying across the orange skyThe text prompt used to generate the video.. ( Max length: 30000 characters)
first_frame_urloptIMAGE—
last_frame_urloptIMAGE—
reference_image_urlsoptIMAGE—
reference_video_1optVIDEO—
reference_video_2optVIDEO—
reference_video_3optVIDEO—
reference_audio_1optAUDIO—
reference_audio_2optAUDIO—
reference_audio_3optAUDIO—
return_last_frameoptBOOLEANfalseWhether to return the last frame of the video. When draft=true, this parameter cannot be set to true.
generate_audiooptBOOLEANtrueWhether to generate audio for the video. - **true**: Generate with audio (higher cost) - **false**: Generate without audio Note: Enabling audio will increase the generation cost
resolutionoptCOMBO720pVideo resolution - 480p for faster generation, 720p for balance.
aspect_ratiooptCOMBOadaptiveVideo aspect ratio configuration.
durationoptINT5-2147483648–2147483647Video duration in 4-30 seconds. Special values -1: Pass -1 for automatic duration selection — the model picks a suitable duration itself (for video-editing tasks, it matches the input video's length; for other task types, it selects within the valid range), instead of you specifying an exact value.
output_formatoptCOMBOmp4Video output format.
web_searchoptBOOLEANfalseEnable online search.
nsfw_checkeroptBOOLEANfalseDefaults to false. You can set it to false based on your needs. If set to false, our content filtering will be disabled, and all results will be returned directly by the model itself. Note: There is no guarantee that everything can be filtered out; if you are not satisfied with the results, you will need to make your own arrangements.
timeout_secondsoptINT120030–7200—
callback_urloptSTRINGOptional KIE callback URL. Leave empty for normal ComfyUI use.

Outputs (7)

NameTypeDescription
videoVIDEO—
urlSTRING—
all_urls_jsonSTRING—
task_idSTRING—
raw_jsonSTRING—
credits_consumedFLOAT—
credits_leftFLOAT—