Seedance 1.5 Pro
Text-to-video with a lock-the-camera switch
- input_urls
- video
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
Seedance is ByteDance's video line - closed, API-only, no weights you could download at any VRAM. If you want it in a ComfyUI graph, calling it is the only door, and this node is the door for 1.5 Pro: one prompt, one aspect ratio, one duration, and a couple of switches that actually matter. It's also the version that ships in the pack's offline bootstrap, so it's there on a fresh install before the first catalog sync finishes.
Where it sits: 1.5 Pro is the older, simpler point on the dial than the 2.x family. You don't get reference videos, reference audio, first-and-last-frame pairs or an adaptive aspect ratio. What you get is a prompt-driven shot with the model's characteristically tasteful motion and - the reason people still reach for it - an explicit fixed_lens switch.
Inputs and outputs
Three required. prompt is your shot, multiline and long (the docs allow up to 20,000 characters; the field's default is a beach-at-sunset sample you should replace immediately). aspect_ratio is required and defaults to 1:1 - pick from 1:1, 4:3, 3:4, 16:9, 9:16, 21:9; 16:9 is what you want for anything widescreen, and the default square has surprised people who assumed it inherited something. duration is a FLOAT in seconds, and the docs pinned it to 4–12 with a default of 8.
The optional ones are where the character is. input_urls is an IMAGE socket - connect a still and you've turned this into image-to-video, no URL pasting, because the pack uploads it to KIE for you. resolution climbs 480p → 1080p, with 720p the sane default and 480p the sane draft. fixed_lens is the one I'd call out: the docs describe Seedance as adding dynamic camera movement by default, and this switch locks the camera off for a stable static shot. That's a real problem-solver, because prompt-only attempts to suppress a model's preferred camera drift are unreliable. generate_audio is off by default and the author's tooltip warns it raises the cost. nsfw_checker is off by default and the provider's own note is that with it off, filtering is disabled and results come straight back from the model - no guarantee anything gets filtered either way.
Outputs: video (a native ComfyUI VIDEO), url, all_urls_json (every result URL, which matters on endpoints that return several artifacts), task_id, raw_json, and credits_consumed / credits_left as floats. The credit numbers are the pack's best feature - after each run the node also displays credits spent and remaining balance in the UI, so you can't be surprised by the bill at the end of a session.
Wire video into a SaveVideo/preview node; raw_json and task_id are your debugging trail. callback_url exists for servers that can receive KIE's webhook - leave it empty.
Cost, and the sane way to iterate
Seedance is not cheap, and the community reaction when 2.0 landed as an API node was blunt: a lot of people priced it as a small number of clips per month and said no thanks, while the reply from the other camp was that this is the real price of these renders and the promo era is ending. Both are fair. The practical discipline that comes out of that: test at 480p to get the prompt and camera right, then re-run at the resolution you actually want. Users of the 2.x nodes report exactly this workflow and that the model understands intent well enough to justify it.
Also: this node is synchronous - ComfyUI waits on the task, so a long clip holds your queue and timeout_seconds (default 1200, max 7200) is what stands between you and a hung queue entry. Raising it is cheaper than re-queuing.
Install
Manager → search KIE.ai Nodes Next (publisher id felipeosilva); if that comes up empty - the README's registry publishing is still described as prepared - clone it:
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 model downloads, no ffmpeg to install - the pack pulls results back over HTTP. Windows users can run the .vbs one-click installer in dist/ instead, and there's a matching full uninstaller.
Then set your key once: ComfyUI → Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key. It's validated against KIE before replacing anything, after which you get a masked fingerprint and a ✅ CONNECTED row. The full key is backend-only and never lands in workflow JSON; KIE_API_KEY as an env var takes priority if you're running headless.
Gotchas
Your videos live on KIE's servers and are billed per call. Your prompt and any connected image leave the machine - that's the mechanism, not a bug, and it's the deal for every hosted model here. The pack does archive finished results into your ComfyUI output/KIE-Results/ folder so a restart doesn't lose a successful generation, which is a nicety most API packs skip.
The filter follows the model. Turning nsfw_checker off disables KIE's check, but ByteDance's model still makes its own calls, and there's nothing local to patch.
If the node's widgets don't match a tutorial, run KIE • Refresh Model Catalog. These node definitions are generated from KIE's live documentation, so the fields track the docs rather than a fixed release - and the ugly hash suffix on the class name (..._ad687f1a) is the same mechanism.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | A serene beach at sunset with waves gently crashing on the shore, palm trees swaying in the breeze, and seagulls flying across the orange sky | The text prompt used to generate the video. Required field. (Min length: 3, Max length: 20000 characters) |
| aspect_ratio | COMBO | 1:1 | Video aspect ratio configuration. Required field. |
| duration | FLOAT | 8.00-10000–10000 | Duration of the video in seconds,Optional range 4-12 s |
| input_urlsopt | IMAGE | — | |
| resolutionopt | COMBO | 720p | Video resolution - 480p for faster generation, 720p for balance, 1080p for higher quality |
| fixed_lensopt | BOOLEAN | false | Seedance adds dynamic camera movement. Enable this feature to lock the camera for stable, static shots. - **true**: Lock camera for static shots - **false**: Allow dynamic camera movement |
| generate_audioopt | BOOLEAN | false | Whether to generate audio for the video. - **true**: Generate with audio (higher cost) - **false**: Generate without audio Note: Enabling audio will increase the generation cost |
| nsfw_checkeropt | BOOLEAN | false | Defaults 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_secondsopt | INT | 120030–7200 | — |
| callback_urlopt | STRING | Optional KIE callback URL. Leave empty for normal ComfyUI use. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| url | STRING | — |
| all_urls_json | STRING | — |
| task_id | STRING | — |
| raw_json | STRING | — |
| credits_consumed | FLOAT | — |
| credits_left | FLOAT | — |