Seedance 2.0 Mini · Image to Video
Seedance 2.0 for about two cents a second
- image_url
- last_image_url
- video
- last frame
- task id
Mini is where the Seedance 2.0 line gets affordable. $0.0246078 per second - call it two and a half cents - for image-to-video at 480p or 720p, 4 to 15 seconds, sound included. The full 2.0 node charges $0.07/s for the same job with 1080p and 4K on top; Mini skips the top resolutions and takes roughly a third of the money.
For a lot of work that's the right trade. Drafts, social cuts, anything that ends up on a phone screen: 720p is plenty, and three takes at Mini prices cost less than one at full. Where you notice the difference is fine detail - faces at distance, small text, fast motion - and that's a resolution-and-model-quality question, so test on your own material rather than trusting either of our opinions.
What's on the node
image_url is an IMAGE socket, so Load Image connects straight in, and the pack uploads the picture for you. prompt is the direction - the author's framing is "subject, action, camera, light, sound, and constraints", which is a good checklist when output comes back generic.
aspect_ratio defaults to adaptive and can be forced to 16:9, 9:16, 4:3, 3:4, 1:1 or 21:9. resolution is 480p or 720p, full stop. duration_seconds is the Fast-line dropdown: -1 at the top for smart duration (the model picks the length), then 4 to 15 - and the billed quantity either way.
generate_audio is on by default and, on this tier, doesn't change the price. generate_audio off saves nothing, so leave the sound in.
enable_web_search is the interesting extra on the Mini nodes and it's off by default. Switch it on and the model searches the web for prompt-relevant information before rendering - genuinely useful when a shot has to depict something specific and real, and a surcharge when it doesn't. The published numbers: 480p goes from $0.0246078/s to $0.036/s, 720p from $0.05292/s to $0.072/s. Worth it for a landmark or a product; not worth it for a mood piece.
Then the three presentation switches that the 2.0 line all share: return_last_frame (also outputs the final frame as an IMAGE, the clean way to hand a shot to the next one), bitrate_mode (standard or high, a bigger, crisper delivered file), and watermark. Optional last_image_url closes the shot on an image you supply.
seed starts on fixed control-after-generate: queue the same graph twice and ComfyUI reuses the first result instead of buying a second one. Randomize on purpose, not by accident, because every run is billed.
Outputs
video → Save Video or a preview node. last frame → any IMAGE input, populated only with return_last_frame on. task id → a string; it's the task's id in the SpicyAPI console and it's what a support request needs.
Install
Manager → search SpicyAPI → Install. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi
Restart, then Settings > SpicyAPI → paste a key from spicyapi.ai/console/keys (on a server, set SPICY_API_KEY instead), then restart once more so the node list matches your account. No pip installs, no weights, no GPU needed - the work happens on SpicyAPI's servers.
The realistic failure list
No key → "No SpicyAPI key is set". No headroom → the run stops with a message quoting the worst-case cost above your cap; raise the cap in Settings if you meant it. A 40004 means no deployment serves that combination and names the offending field. A request_id in the error is support currency. And a cancelled run is a failed wait, not a cancelled job - it finishes server-side, gets charged if it succeeds, and its result stays in your console for up to 14 days.
Inputs (12)
| 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. |
| enable_web_search | BOOLEAN | false | Let the model search the web for information related to the prompt before rendering. Requests with it on are billed at the web-search rate. |
| 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. |