Seedance 2.5 Spicy · Image to Video
The priciest node in the Seedance line
- image_url
- last_image_url
- video
- task id
Uncensored, 2.5, and up to 4K. That combination exists on exactly one node in this pack, and it is not cheap: bytedance/seedance-2.5-spicy/image-to-video starts at $0.216 per second at 480p and climbs to $2.16 per second at 4K. A 30-second 4K take - the maximum the model allows - quotes at $64.80. Nobody is "just testing" that by accident, so know the ladder before you drag the sliders:
| Resolution | Rate | | --- | --- | | 480p | $0.216/s | | 720p | $0.432/s | | 1080p | $1.080/s | | 4k | $2.160/s |
For contrast, 2.0 Spicy does 4K at $1.14/s and Mini Spicy does 720p at $0.0387/s. What you're paying for here is the newer generation and the looser policy at high resolution at the same time. If you don't need 1080p or 4K, the cheaper Spicy tiers will get you most of the way there.
The schema, which is short
The Spicy variants drop the convenience switches, so there's no bitrate_mode, no watermark and no return_last_frame here. Note also that there's no aspect_ratio input at all - unlike 2.5's standard image-to-video node, which offers a single adaptive entry, this one doesn't expose the field. The framing follows your still; set the ratio where the still was made.
What's left is tight and readable:
image_url- anIMAGEsocket. Load Image wires in and the pack uploads it for you (PNG, falling back to JPEG above 10 MiB).prompt- scene, action, camera movement, mood.resolution- 480p, 720p, 1080p, 4k.duration_seconds- an integer slider, 4 to 30. The billed quantity, and the reason 30 seconds at 4K is a decision rather than a setting.generate_audio- native synchronised sound, on by default, and free at a given resolution.seed- fixed after generate, so re-queueing an identical graph reuses the cached render instead of charging twice.
Optional last_image_url supplies a closing frame - "last frame image URL for video continuation" - which pairs with the first frame to land a long move precisely.
Outputs: video, a standard ComfyUI VIDEO for Save Video, and task id, the string that identifies the job in your SpicyAPI console.
Install
ComfyUI Manager → search SpicyAPI → Install. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi
Restart ComfyUI, then open Settings > SpicyAPI and paste a key from spicyapi.ai/console/keys - or export SPICY_API_KEY on a server. Restart once more so the node catalogue loads for your account. The pack needs no pip installs and ships no weights; the model runs entirely on SpicyAPI's hardware, which is the only way a closed ByteDance model gets into a local graph.
The two things to be clear-eyed about
"Spicy" is a policy description, not a different model you can inspect. There are no weights here to patch or merge - the looseness belongs to the endpoint. Trust it as far as you'd trust any provider's description of its own filtering, and verify on the content you actually need before designing a project around it.
Set the spend cap first. Settings > SpicyAPI > Max cost per run - every run is quoted before submission and anything above the ceiling stops without charge. On a node whose top end is $2.16 a second, that guardrail isn't optional. Interrupting a run doesn't stop the job: it finishes on SpicyAPI, is charged if it succeeds, and the result waits in your console for up to 14 days.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image_url | IMAGE | Start image URL to guide the video generation. | |
| prompt | STRING | Describe the scene, action, camera movement, and mood for the video. | |
| resolution | COMBO | 720p | The output video resolution. |
| duration_seconds | INT | 54–30 | The duration of the generated video in seconds (4-30s). |
| generate_audio | BOOLEAN | true | Whether to generate native audio synchronized with the output video. Defaults to true. |
| 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. |
| last_image_urlopt | IMAGE | Last frame image URL for video continuation. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| task id | STRING | The SpicyAPI task id, for the console logs or support. |