Seedance 2.0 Fast · Image to Video
What '-1' does, and why audio is free here
- image_url
- last_image_url
- video
- last frame
- task id
Seedance 2.0 Fast is the throughput tier of ByteDance's video line: same family, 480p or 720p only, up to 15 seconds, and a price that doesn't punish you for leaving sound on. This node animates a still you supply. From $0.04499712 per second - an unlovely number the pricing system arrived at, not a rounding joke.
The thing that makes it interesting isn't the model, it's the plumbing: Fast is where the pack stops treating video settings as a fixed list and starts exposing the model's native switches. Smart duration, bitrate mode, watermark, last frame out. That's more control than the older Seedance nodes give you.
Two ideas you should understand before you touch anything
Smart duration. duration_seconds on this node isn't a slider, it's a dropdown with -1 at the top and 4 through 15 below it. Anything else is self-explanatory. -1 means don't tell the model how long the clip should be - let it pick. It's genuinely useful when a prompt implies its own rhythm ("a slow reveal", "a snappy cutaway") and useless when you're cutting to a track and need exactly 8 seconds. Either way, the pick is the billed quantity.
Audio is priced in. On the 1.5 Pro line, generate_audio roughly doubles the rate. Here, 480p costs the same $0.04499712/s whether audio is on or off, and 720p the same $0.096768/s. So leave it on. There's no cheaper silent version to trade against - just a resolution choice that doubles the rate.
The inputs, briefly
image_url is an IMAGE socket - Load Image goes in there, and the pack uploads the picture for you (PNG up to 10 MiB, JPEG fallback above that, and the upload is cached for 12 hours so re-running the same graph doesn't re-send it). prompt is the creative input; the author's own list of what to describe is "subject, action, camera, light, sound, and constraints" - note sound, which this model can actually act on.
Then aspect_ratio (16:9, 9:16, 4:3, 3:4, 1:1, 21:9, or the default adaptive, which follows your still), resolution (480p or 720p - that's the whole list), generate_audio, seed, and three switches that are unique to the 2.0 line:
return_last_frame- off by default. Turn it on and you also get the clip's final frame as anIMAGE, which is the honest way to chain clips: feed frame two's first image from clip one's last frame.bitrate_mode-standard, orhighfor a crisper file at a bigger size. Presentation only; it doesn't change the generation.watermark- adds the model's visible "AI generated" mark. Off by default.
Optional last_image_url gives the shot a closing frame to arrive on. That, plus return_last_frame, is how you build a sequence that actually cuts together.
Outputs
video → Save Video. last frame → anything that takes an IMAGE, but only once return_last_frame is on; until then it hands your graph a blocker rather than an image. task id → a string, the id from your console, the thing support asks for.
Install
Manager → search SpicyAPI, or:
cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi
Restart, paste a key into Settings > SpicyAPI (or export SPICY_API_KEY), restart again so the node list is built for your account. Zero dependencies, zero downloads.
Costs and the usual traps
The node shows its rate for the combination you've picked, and every run is quoted before it starts. Set Settings > SpicyAPI > Max cost per run - video jobs are the expensive end of this pack and a 15-second 720p take isn't pocket change. seed defaults to fixed control-after-generate so a double-queue reuses the first result instead of buying a second one; randomize deliberately.
Interrupting a run stops your wait, not the job: it finishes on SpicyAPI and is charged if it succeeds, with the result parked in your console for up to 14 days. And if the site lists a model your menu doesn't, restart ComfyUI - the catalogue is pulled at startup.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Describe the intended subject, action, camera, light, sound, and constraints. | |
| image_url | IMAGE | A source image that you are authorised to process. | |
| aspect_ratio | COMBO | adaptive | Output frame ratio. |
| resolution | COMBO | 720p | Output resolution. |
| duration_seconds | COMBO | 5 | Requested output duration in seconds. Pass -1 for smart duration: the model picks the length itself instead of a fixed number. |
| generate_audio | BOOLEAN | true | Request synchronised output audio. |
| seed | INT | 00–2147483647 | Same seed and settings, same result. Set 'control after generate' to randomize to get a new result on every run; every run is billed. |
| return_last_frame | BOOLEAN | false | Also return the clip’s final frame as a separate image. |
| bitrate_mode | COMBO | standard | Encoding bitrate of the delivered file: standard, or high for crisper detail and a larger file. |
| watermark | BOOLEAN | false | Add the model’s visible "AI generated" watermark to the video. |
| last_image_urlopt | IMAGE | Optional closing image for the chosen video workflow. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| last frame | IMAGE | Needs return_last_frame turned on. |
| task id | STRING | The SpicyAPI task id, for the console logs or support. |