Seedance 2.0 Fast · Text to Video
The switch that makes it search the web first
- video
- last frame
- task id
Most video nodes want something from you up front - a still, a reference, a first frame. This one wants a sentence. Prompt it, run it, get 4 to 15 seconds of video with sound in the same pass, at 480p or 720p, from $0.04499712 per second.
And it has one input no other Seedance node here carries: enable_web_search. Flip it on and the model looks things up before it renders, so a prompt about a specific car, building or gadget doesn't come back with an invention that merely resembles one. Requests with it on are billed at the web-search rate, so it isn't free - but for anything factual on screen it's the difference between a reference and a hallucination.
The settings worth thinking about
prompt carries everything: the author's suggested shopping list is subject, action, camera, light, sound, and constraints. Note sound - this model generates audio natively, so a line about rain on a tin roof or a bass drop in the last second is actionable, not decoration. Vague prompts here give you generic drone shots.
aspect_ratio gives you 16:9, 9:16, 4:3, 3:4, 1:1, 21:9, or adaptive (the default). There's no image on this node, so adaptive mostly means letting the model decide - pick a real ratio when the output has a destination.
resolution is 480p or 720p. No 1080p on the Fast tier; that's the full Seedance 2.0 node.
duration_seconds is a dropdown topped by -1, then 4 through 15. -1 is smart duration: leave the length out of the request and the model picks it. Handy for exploring, wrong for anything you're cutting to music. Whatever gets generated is what you pay for.
generate_audio is on by default and doesn't change the rate on Fast - priced the same either way. seed is fixed by default so a re-queue reuses the cached result rather than billing a second time.
Then the three presentation switches: return_last_frame (also emits the final frame as an IMAGE - the clean way to chain shots), bitrate_mode (standard or high, a bigger crisper file, no effect on the generation itself), and watermark (adds the model's visible "AI generated" mark).
Outputs
video goes to Save Video. last frame is an IMAGE and stays empty until return_last_frame is on. task id is a plain string - the run's id in your SpicyAPI console, and what support will ask for if something fails.
Install
Search SpicyAPI in ComfyUI Manager and install, or do it by hand:
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 set SPICY_API_KEY if this is a server. Restart once more so the node list is fetched for your account. No dependencies, no model files: everything runs on SpicyAPI's hardware, which is why this works on a laptop with no GPU at all.
The pack's template browser (under comfyui-spicyapi) has a text-to-image and a prompt-writer graph; for text-to-video you're mostly wiring video into Save Video and going.
When it doesn't work
"No SpicyAPI key is set" is the first-run classic - the key goes in Settings, not in the node. 40310 means your email isn't verified yet; 40004 means the combination of options you picked has no deployment behind it, and the error names which field to change. An error ending in request_id is worth pasting straight into a support ticket.
Two behaviours that surprise people: interrupting a run doesn't stop the job - it keeps rendering server-side and is charged if it succeeds, with the result waiting in your console for up to 14 days - and without a Max cost per run cap in Settings, a queue full of 15-second takes is an open tab in more ways than one. Set the cap first. Then explore.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Describe the intended subject, action, camera, light, sound, and constraints. | |
| 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. |
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. |