Seedance 2.5
ByteDance's video model in your graph, cost and all
- referenceImages
- frameImages
- referenceVideos
- video
Seedance is ByteDance's video line - the closed model that Hollywood-scale training money buys - and this node is how the 2.5 generation shows up in ComfyUI: through Runware's cloud, as a native VIDEO, no ByteDance account required. But you should know the community baggage you're inheriting before you queue your first run, because Seedance is the model the r/comfyui API-node objection was built around. When Seedance 2.0 hit ComfyUI as an API node, the top comment was "Wow?!? Local and not through an api? No? Nvm then. Go kick rocks," and the cost complaint ("a really small number of videos per year for a monthly subscription") got the honest reply that this is simply what these renders cost. Seedance 2.5 keeps that shape: genuinely capable, genuinely metered, closed at the source.
What the model does well is generation and editing in one place. The node takes referenceImages and frameImages for image-to-video, referenceVideos for reference motion, and a video input for an actual source clip. Feed it a clip and the positivePrompt decides what happens - the tooltip is explicit that with a source video, the prompt chooses between editing it and extending it - or pin the behavior with the settings.operation dropdown instead of trusting prompt detection. Prompt referencing uses @ syntax: @Image1, @Video1, @Audio1, numbered from one. settings.audio defaults on, because 2.5-class Seedance generates synchronized audio natively. size starts at 720p 16:9 with a preset dropdown, and numberResults, safety with fast/full modes, outputFormat (MP4/WEBM/MOV) and outputQuality fill out the rest. Duration rides in advanced_json, alongside any reference-audio input.
Install
Same pack as every Runware node: ComfyUI Manager → search Runware → install → restart, or clone https://github.com/Runware/ComfyUI-Runware into custom_nodes and pip install -r requirements.txt. Key from the Runware dashboard via Settings → Runware API key, RUNWARE_API_KEY, or runware auth login. No downloads - the weights only exist server-side.
Read this before you spend
Seedance 2.5 is the textbook "closed model, rent it" purchase, and the discipline that keeps it sane is iteration budgeting. Run short, run cheap, and read the per-run cost on the node's title bar like it's a gas gauge - video minutes are where cloud bills spike. Your prompt and source clips go through Runware and ByteDance's moderation, and there is no local bypass because there are no weights. If you want the same job without the meter and the filtering, that's what open-weight video models like LTX-2.3 are for - Seedance 2.5 is the pick specifically when you need ByteDance's current-generation quality on footage worth paying for.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| referenceImagesopt | IMAGE | — | |
| frameImagesopt | IMAGE | — | |
| referenceVideosopt | RUNWARE_REFERENCEVIDEOS | — | |
| videoopt | STRING | Video input (UUID or URL). The source clip to edit or extend. The prompt decides which of the two happens. | |
| positivePromptopt | STRING | Text prompt describing elements to include in the generated output. Reference assets in array order as `@Image1`, `@Video1`, and `@Audio1`, numbered from one. | |
| sizeopt | COMBO | 720p (16:9) | Output size. Only one of resolution or dimensions is sent. |
| numberResultsopt | INT | 11–4 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| settings.audioopt | BOOLEAN | true | Generate synchronized audio. |
| settings.operationopt | COMBO | (default) | The operation to perform on the source video. When omitted, the prompt decides which one runs. |
| safetyopt | BOOLEAN | false | Enable to set safety. Off uses the model's default. |
| safety.checkContentopt | BOOLEAN | false | Enable or disable content safety checking. Increases total generation time. |
| safety.modeopt | COMBO | fast | Safety checking mode for video generation. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | MP4 | File format for the generated video. |
| outputQualityopt | INT | 9520–99 | Compression quality of the output. Higher values preserve quality but increase file size. |
| advanced_jsonopt | STRING | Optional JSON merged into the request. For: inputs.referenceAudios, duration |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |