Introduction
Seedance 2.0 Fast Spicy image-to-video makes the still you send the first frame and animates it for up to 15 seconds, with sound in the same pass. image_url is the only required field; the prompt directs the motion rather than arguing for the content.
Seedance 2.0 Fast Spicy is the LoRA-tuned, uncensored member of ByteDance's Seedance 2.0 Fast tier, published as an image-to-video endpoint alongside a video-extend endpoint. It returns 4 to 15 second clips at 480p or 720p, and the prompt is optional.
Key features & highlights
Draft at 480p, then re-run the keepers
The fast tier changes how you work rather than what you can make. Put one opening frame through several prompts at 480p, keep the takes that move well, then re-run those at 720p with every other field unchanged. Expect a close variation rather than the same take; pin seed when you want the comparison tighter.
What the still shows is already in the clip
Wardrobe, pose, skin, sunlight and framing arrive with the picture before the prompt is read. That is why frame-driven work survives briefs a blank page will not, and why the prompt is free to direct motion instead of arguing for content.
Adaptive by default
aspect_ratio defaults to adaptive, so a portrait still comes back portrait instead of being cropped into a landscape box. That is the difference between a clip that drops straight into a vertical feed and one that needs an editing pass. Name 9:16, 1:1 or 21:9 only when a placement demands it.
Request parameters
| Parameter | Required | Description |
|---|---|---|
image_url | Yes | Required, and the only required field. |
prompt | No | Optional here, and that is the point: the opening frame already fixes what is on screen, so the prompt only has to direct movement — the action, where the eyes go, the camera dr… |
last_image_url | No | Optional closing frame. It decides the picture the shot lands on: a transition, a before-and-after pair, or a loop that opens and closes on the same still. |
aspect_ratio | No | Output framing, adaptive by default, which follows the ratio of the frame you supplied and spares you a pre-crop. |
resolution | No | Output resolution: 480p, or 720p by default. It selects a rate tier and governs the delivered format only — it adds no detail the first frame does not already have. |
duration_seconds | No | Length of the finished clip in whole seconds, 4 to 15, default 5, and the billed quantity. |
generate_audio | No | Whether a native soundtrack is rendered in sync with the picture. On by default; switching it off does not lower the rate in this tier. Default: |
seed | No | Integer seed; omit it and each run draws its own. Fix it with everything else held constant to judge what a prompt edit actually changed. |
Pricing
| Specification | Price |
|---|---|
| $0.081 / second |
| $0.1742 / second |
Use cases
Footage other platforms refuse
Scenes the official app blocks, couples of any gender included, are not reviewed on our side. Put the content in the opening frame and Seedance 2.0 Fast Spicy animates what the picture shows.
High-volume feeds
One still, five prompts, five clips: the fast tier makes that a working session rather than a budget decision. Draft at 480p and four seconds, then re-run only the keepers at 720p and at the length the feed needs.
An existing photo set turned into motion
A holiday or studio set you already own becomes a reel. Run each keeper on adaptive framing so nothing is cropped, discard what moves badly, and re-run the survivors longer.
Prompt guide & pro tips
Put the content in the opening frame
Shoot the still or generate it. Wardrobe, pose, light and framing have to be in the frame, because resolution adds no detail the frame never had and no prompt can argue content into a picture that does not show it. Each side must be between 300 and 6000 pixels.
Direct the motion, not the picture
The prompt only has to direct movement: the action, where the eyes go, the camera drift, the sound of the place. Seedance's own layer still refuses a narrow band of wording, kissing most consistently, so put that beat in the frame rather than in the sentence.
Adapt the included example
The published example uses duration_seconds 5, generate_audio true and resolution 720p.
The sheet billows and drops as she pins it to the line, then she turns fully toward camera, pushes windblown hair off her face and grins. Bright midday sun, fabric snapping in the breeze, cicadas and distant sea.
The opening still supplies the balcony, the light and the outfit, and the prompt only moves her. Nothing in it describes what she is wearing, because the frame already did.
Keep one person across a set
Reuse a single opening still across the whole set and change only the prompt. The likeness travels in the frame, so the character stays the same person from clip to clip with no reference images to keep in sync.
API quick start
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "bytedance/seedance-2.0-fast-spicy/image-to-video",
"input": {
"aspect_ratio": "adaptive",
"duration_seconds": 5,
"generate_audio": true,
"image_url": "https://example.com/reference.png",
"resolution": "720p"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
See the API reference for authentication, the complete schema, polling, and error handling.
















