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

Seedance 2.0 Spicy · Image to Video

Uncensored, and it goes to 4K

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

Here's the trap with the Spicy line: "uncensored" is easy to find, but "uncensored with real resolution options" is not. Mini Spicy and Fast Spicy both stop at 720p. Only two nodes in this whole family let you go higher with the filter off - this one and 2.5 Spicy - and this is the cheaper of the two by a wide margin.

bytedance/seedance-2.0-spicy/image-to-video goes up to 4K, runs 4 to 15 seconds, includes audio, and starts at $0.114 per second at 480p. The ladder is steep and worth having in your head before you pick a resolution:

| Resolution | Rate | | --- | --- | | 480p | $0.114/s | | 720p | $0.228/s | | 1080p | $0.570/s | | 4k | $1.140/s |

A 15-second 4K take is over $17. The node's badge shows the rate for whatever combination you've dialled in, and every run is quoted before it starts - read both.

What's on the node

The Spicy schema is deliberately small: no bitrate_mode, no watermark, no return_last_frame.

image_url is an IMAGE socket and leads the field list - Load Image straight in, and the pack handles the upload (PNG, with a JPEG fallback if the picture is over 10 MiB). prompt is the direction: scene, action, camera movement, mood.

aspect_ratio defaults to adaptive, which follows the still's own ratio, and also accepts 16:9, 9:16, 4:3, 3:4, 1:1 and 21:9. resolution is where this node earns its keep: 480p, 720p, 1080p, 4k.

duration_seconds is an integer slider from 4 to 15 - no smart-duration -1 on the Spicy variants, so you always name the length, and that length is the billed quantity. generate_audio is on by default and produces native synced sound; turning it off doesn't reduce the rate on this model, so leave it.

seed is fixed after generate, so re-queueing an identical graph reuses the cached result rather than charging twice. That default is deliberate: every run costs money.

Optional last_image_url sets a closing frame - "last frame image URL for video continuation" - which pairs with the first frame for a two-anchor move.

Outputs

video is a normal ComfyUI VIDEO; Save Video takes it directly. task id is a plain string - the job's id in your SpicyAPI console, and the identifier support asks for.

Install

ComfyUI Manager → search SpicyAPI → Install. Or:

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

Restart ComfyUI, then Settings > SpicyAPI → paste a key from spicyapi.ai/console/keys (or set SPICY_API_KEY on a server). Restart once more so the node list is built from your account's catalogue. No pip installs, no weights, no GPU requirement - the model runs on SpicyAPI's servers, which is the only way a closed ByteDance model gets into a local graph at all.

Two honest caveats

Uncensored is a policy claim, not a weight you can inspect. There's nothing local to patch or merge; you're trusting that the Spicy endpoint runs with a looser filter, which is the same bargain as every unofficial route to a closed model. Test on your own content first.

Everything leaves your machine. Prompt and image go to SpicyAPI, which calls ByteDance's model. That's the mechanism, not a bug - but it's worth knowing before you feed it anything you wouldn't upload.

When it misbehaves

"No SpicyAPI key is set" is the plain-language one. 40310 is an unverified email. 40004 means no deployment serves the option combination and the message names the offending field. An error ending in request_id is what support wants pasted in full. And interrupting a run doesn't cancel it: the job continues on SpicyAPI, is charged if it succeeds, and the output waits in your console for up to 14 days. Set Max cost per run in Settings before you start pushing this node's resolution ladder.

CategorySpicyAPI/Video/ByteDance

Inputs (8)

NameTypeDefaultDescription
image_urlIMAGEStart image URL to guide the video generation.
promptSTRINGDescribe the scene, action, camera movement, and mood for the video.
aspect_ratioCOMBOadaptiveThe aspect ratio of the generated video. Use adaptive to follow the input image.
resolutionCOMBO720pThe output video resolution.
duration_secondsINT54–15The duration of the generated video in seconds (4-15s).
generate_audioBOOLEANtrueWhether to generate native audio synchronized with the output video. Defaults to true.
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_urloptIMAGELast frame image URL for video continuation.

Outputs (2)

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