Nodes/SpicyAPI/Seedance 2.0 · Image to Video
ComfyUI Node

Seedance 2.0 · Image to Video

The one that goes to 4K

By spicyapi-ai·Created 21 days ago·Updated 2 days ago· 2
Seedance 2.0 · Image to Video
  • image_url
  • last_image_url
  • video
  • last frame
  • task id
◄prompt►
◄aspect_ratioadaptive►
◄resolution720p►
◄duration_seconds5►
◄generate_audiotrue►
◄seed0►
◄return_last_framefalse►
◄bitrate_modestandard►
◄watermarkfalse►

The naming in this pack is worth thirty seconds of your attention, because the Seedance 2.0 family has four tiers and they are not interchangeable: 2.0 is the full model (this node, up to 4K, $0.07/s), 2.0 Fast is the quick tier (480p/720p, cheaper), 2.0 Mini is the cheap tier, and 2.0 Spicy is the uncensored one. Same generation of model, different price and different ceiling.

This is the full one. You give it a still, it gives you 4 to 15 seconds at 480p, 720p, 1080p or 4K, with sound in the same pass.

That 4K option is the reason to care. Most of this pack tops out at 720p, and none of the Fast or Mini nodes offer 4K at all. It's also where the money goes. The published ladder is $0.07/s at 480p, $0.152/s at 720p, $0.374/s at 1080p and $0.778/s at 4K - eleven times the base rate for sixteen times the pixels. Audio on or off costs the same at every tier, so leaving generate_audio enabled is never the expensive choice here.

Which is the honest trade: render at 720p and you're paying about a tenth of what 4K costs for a clip most people will watch on a phone.

Wiring and settings

image_url takes an IMAGE socket; Load Image in. The pack uploads it (PNG, JPEG fallback above 10 MiB) and caches the upload for 12 hours, so iterating on a prompt doesn't re-send the same picture over and over.

prompt is your direction: subject, action, camera movement, mood.

  • aspect_ratio - 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 or adaptive (default). adaptive follows the connected still, which is usually what you want when the still was framed deliberately.
  • duration_seconds - a dropdown led by -1 and then 4 through 15. -1 is smart duration: the length is left out of the request and the model picks it. Everything else hands it a number. Either way it's the billed quantity.
  • resolution - 480p, 720p, 1080p, 4k.
  • generate_audio - native synchronised sound, on by default.
  • return_last_frame - also emit the clip's final frame as an IMAGE. This is how you build a sequence: last frame of one clip becomes the first frame of the next.
  • bitrate_mode - standard or high. Delivery quality only.
  • watermark - adds the model's visible "AI generated" mark.

Optional last_image_url pins a closing frame - "only accepted together with image_url", per the author's tooltip, so it complements the first frame rather than replacing it.

seed is fixed after generate by default, so re-queueing gives you the cached result instead of a second invoice.

What you get out

Three sockets: video (a normal VIDEO, into Save Video), last frame (an IMAGE, empty until the switch is on), and task id (a string, the console id and the only thing support needs).

Install

ComfyUI Manager → SpicyAPI → Install. Hand-rolled:

cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi

Restart, paste your key under Settings > SpicyAPI (or SPICY_API_KEY in the environment for a server), restart once so the node catalogue loads for your account. The pack has no Python dependencies of its own and downloads nothing - the model never touches your disk, which is precisely why ByteDance's API-only releases sit behind nodes like this one rather than in your models folder.

Before you spend

Set Settings > SpicyAPI > Max cost per run. Every run is quoted first and anything above your ceiling stops pre-charge, which matters much more here than in an image node. Interrupting a job is not a cancel: it keeps running on SpicyAPI, is charged if it succeeds, and waits in your console for up to 14 days. A model missing from your node menu just means the catalogue predates it - restart ComfyUI.

CategorySpicyAPI/Video/ByteDance

Inputs (11)

NameTypeDefaultDescription
promptSTRINGWhat to generate: subject, action, camera movement and mood.
image_urlIMAGEURL of the image used as the first frame.
aspect_ratioCOMBOadaptiveAspect ratio of the generated video.
resolutionCOMBO720pOutput resolution. Super-resolution tiers are not offered.
duration_secondsCOMBO5Clip length in seconds. This is the billed quantity. Pass -1 for smart duration: the model picks the length itself instead of a fixed number.
generate_audioBOOLEANtrueGenerate a native soundtrack synchronised to the picture.
seedINT00–2147483647Same 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_frameBOOLEANfalseAlso return the clip’s final frame as a separate image.
bitrate_modeCOMBOstandardEncoding bitrate of the delivered file: standard, or high for crisper detail and a larger file.
watermarkBOOLEANfalseAdd the model’s visible "AI generated" watermark to the video.
last_image_urloptIMAGEURL of the image used as the closing frame. Only accepted together with image_url.

Outputs (3)

NameTypeDescription
videoVIDEO—
last frameIMAGENeeds return_last_frame turned on.
task idSTRINGThe SpicyAPI task id, for the console logs or support.