Nodes/SpicyAPI/Seedance 1.5 Pro · Image to Video
ComfyUI Node

Seedance 1.5 Pro · Image to Video

The still you already made, now moving

By spicyapi-ai·Created 21 days ago·Updated 2 days ago· 2
Seedance 1.5 Pro · Image to Video
  • image_url
  • last_image_url
  • video
  • task id
◄prompt►
◄aspect_ratio16:9►
◄resolution720p►
◄duration_seconds5►
◄generate_audiotrue►
◄camera_fixedfalse►
◄seed0►

Seedance 1.5 Pro is ByteDance's closed video model, and closed is the whole point: there are no weights to download, so the only way it enters a ComfyUI graph is through a node that uploads your inputs and downloads the result. This node is that door for bytedance/seedance-1.5-pro/image-to-video - you hand it a still, it hands back 4 to 12 seconds of motion with sound, and it bills by the second.

Reach for it when the picture is already good and you just want it to breathe. Render in whatever local checkpoint you trust, upscale it, then let this node do the part your GPU can't.

How it actually works

Nothing runs locally. When you hit Run, the pack uploads your image (PNG if it fits the 10 MiB ceiling, otherwise a high-quality JPEG), asks SpicyAPI for a quote, submits the task, then polls while the model works on their hardware. The finished MP4 is downloaded and handed back as an ordinary ComfyUI VIDEO value, the same type a local video node would emit. Your machine only needs to reach api.spicyapi.ai.

Dropping a picture into the node is an upload to a third-party service. Worth saying out loud once - that is the price of a model you were never allowed to download.

The inputs that matter

You wire Load Image into image_url and write the prompt - subject, action, camera movement, mood. Ignore the _url suffix; it takes a ComfyUI IMAGE socket, not a link.

Then four decisions:

  • duration_seconds - 4 to 12, whole seconds. This is the billed quantity, so a 12-second clip is three times the price of a 4-second one.
  • resolution - 480p, 720p, 1080p. This is where the money is: 480p is $0.0112/s with audio off and $0.0223/s with it on, 720p is $0.0227/s and $0.0454/s, and 1080p is $0.0491/s and $0.0982/s. Audio roughly doubles the rate, so a silent 480p draft is about a ninth the price of a 1080p one with sound. The node's badge shows your current combination before you commit.
  • aspect_ratio - 21:9, 16:9, 4:3, 1:1, 3:4, 9:16. Note there's no adaptive on this node: it does not read the ratio off your still, so set it to match or your framing gets re-cut.
  • camera_fixed - off by default. Turn it on when you want a locked-off shot; leave it off when you want the model to invent a move.

seed starts on fixed, deliberately. Queue the same graph twice and you get the cached first result instead of a second charge. Switch control-after-generate to randomize when you want a new take, and remember each take costs real money.

Optional last_image_url gives the shot a closing frame it has to land on - but only at 480p and 720p. At 1080p the combination isn't served, and the run dies with a 40004 telling you which option is the problem.

Outputs

Two sockets: video and task id. Wire video into Save Video (or a preview) and you're done. The task id is a plain string - it's the id in your SpicyAPI console, and the one thing support needs if a run misbehaves.

Install

ComfyUI Manager → search SpicyAPI → Install, or from a terminal:

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. Restart once more so the node list is built from your account. On a server, set SPICY_API_KEY in the environment instead. There is nothing to pip install and no model files to download - the pack declares zero dependencies beyond what ComfyUI already ships.

Where people get burned

  • "No SpicyAPI key is set" - the node finds no key. Add it in Settings, or export SPICY_API_KEY.
  • Cancelling doesn't cancel. Interrupting stops your wait; the job keeps running on SpicyAPI and is charged if it succeeds. The result stays in your console for up to 14 days.
  • Uncapped spend. Set Settings > SpicyAPI > Max cost per run before you start experimenting. Anything quoted above it stops before a cent is charged.
  • A node you saw on the site isn't in the menu. The list rebuilds at startup. Restart.
  • Your key in a shared workflow? It isn't - the key lives in user/spicyapi/config.json, not in node settings, workflows, or PNG metadata.
CategorySpicyAPI/Video/ByteDance

Inputs (9)

NameTypeDefaultDescription
promptSTRINGWhat to generate: subject, action, camera movement and mood.
image_urlIMAGEURL of the image used as the first frame.
aspect_ratioCOMBO16:9Aspect ratio of the generated video.
resolutionCOMBO720pOutput resolution. Super-resolution tiers are not offered.
duration_secondsINT54–12Clip length in seconds. This is the billed quantity.
generate_audioBOOLEANtrueGenerate a native soundtrack synchronised to the picture.
camera_fixedBOOLEANfalseLock the camera to produce a stable, fixed-position shot.
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.
last_image_urloptIMAGEOptional closing frame the shot has to land on (480p and 720p).

Outputs (2)

NameTypeDescription
videoVIDEO—
task idSTRINGThe SpicyAPI task id, for the console logs or support.