Skip to main content

Seedance 2.0 Fast image-to-video from ByteDance starts the clip on a still you supply and animates it, with sound in the same pass. Clips run 4 to 15 seconds at 480p or 720p, and an optional closing still makes the shot arrive on a set frame.

From $0.045/s20% below the publisher's list price

Workbench

Input

Image to video
Optional, but worth writing: say what happens after the frame rather than restate what is already visible — the action, the camera move, the passage of time, the sound. Left out, the model decides the motion on its own. Because the still already fixes the picture, this is the path that survives uncensored briefs — content that is in the frame does not have to be argued for in words. at least 1 characters
1/1

Drop files or media links, paste, or browse · 1 file · Max 10 MB · JPG · PNG · WEBP · GIF

  • 1
1 / 1 files
Public, directly downloadable link to the first frame; required. It fixes composition, how the subject looks, the grade and the quality ceiling — raising `resolution` will not sharpen a soft source. Text, watermarks and logos carry into the video, so clean them off first where you can. Each side must be between 300 and 6000 pixels; a smaller plate is rejected by the input check before you are charged.
0/1

Drop files or media links, paste, or browse · 1 file · Max 10 MB · JPG · PNG · WEBP · GIF

0 / 1 files
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. Keep camera and light steady between the two and change one clear state, or the middle of the clip turns into a cut. Give it the same proportions as the opening frame; when they differ, the closing frame is cropped to match. Each side must be between 300 and 6000 pixels; a smaller plate is rejected by the input check before you are charged.
Output framing, adaptive by default: the clip keeps the proportions of your opening frame, so nothing is cropped away. Choose one of the six fixed ratios, from 21:9 down to 9:16, only when the delivery needs a different shape — the still is then reframed to fit. No effect on what you are billed.
affects price
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. Higher tiers mean bigger files and longer renders.
Durationaffects price
Length of the finished clip in whole seconds, 4 to 15, default 5, and the billed quantity; -1 lets the model choose, with the estimate assuming 15 seconds. A shot driven by a single frame drifts further the longer it runs, so confirm the motion at 4 or 5 seconds before paying for 15. no lower than 4 · no higher than 15
Generate audioaffects price
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. Turn it off for silent loops and for material you will score in post.
Safety checkerOff

SpicyAPI does not run a safety checker on this model. Your prompt and media go to the model as written, and the model itself decides what comes back.

Checking your account before enabling submission and pricing.

Output

Ready for a new run
Example result

Related models and next tasks

Missing the model you need?

Tell us what to add and where you would use it. Requests go to the people who decide what gets onboarded next.

Animate an approved still, with an optional closing frame

The Seedance 2.0 Fast image-to-video API animates a still: image_url is the opening frame, and the clip runs 4 to 15 seconds at 480p or 720p with a soundtrack in the same pass. prompt is optional here, because the picture already settles composition, wardrobe and likeness. last_image_url pins the closing frame for shots that have to land somewhere specific, and resolution stops at 720p where base Seedance 2.0 continues to 1080p and 4K.

Open the playground
Animate an approved still, with an optional closing frame
Required input
image_url only; prompt is optional on this endpoint
Optional closing frame
last_image_url, sent alongside image_url
Duration
4-15 whole seconds, default 5, or -1 for a model-chosen length
Resolution
480p or 720p, 720p by default; no 1080p or 4K step
Aspect ratio
7 values; adaptive keeps the opening frame's proportions
Task timeout
1200 seconds to reach a terminal state, against 1800 on base 2.0
Required fields
image_url is the only field you have to sendA Seedance 2.0 Fast image-to-video request can carry nothing but image_url, and every other field falls back to its default: 5 seconds, 720p, adaptive framing and audio on. That keeps a first pass over a batch of approved stills simple to script, before anyone has written a prompt for them.
Ceiling
720p, with the still setting the real limitresolution picks the delivered format and the rate tier, and adds no detail the source never carried. A soft or underexposed image_url produces a soft clip at 720p exactly as it does at 480p, so approving the still matters more than the tier.
Endings
last_image_url is how a shot lands on a known frameSending a closing still tells the model where the motion has to arrive. It is the one field on this endpoint that constrains the end of the clip, and it travels with image_url rather than alone.

What the Seedance 2.0 Fast API does well

Two tiers, and the still sets the ceiling

Two tiers, and the still sets the ceiling

resolution takes 480p or 720p. The tier decides the delivered format and the rate, but it cannot recover detail the opening frame never had, so a sharp, correctly exposed image_url does more for the finished clip than moving from 480p to 720p on a soft source ever will.

The opening frame does the grounding

The opening frame does the grounding

There is no lookup field on this endpoint, and it does not need one: whatever the photograph shows is already in the clip. That frees the prompt to cover motion, camera and sound only, and on this endpoint the prompt can be dropped entirely when the still says enough.

  • Video Extend continues a clip; shots also hand off by frame

    Send a finished clip to the Video Extend endpoint and it continues from the last frame, joined into one video. To cut to a new shot instead, set return_last_frame to true and use that frame as image_url in the next image-to-video request.

  • adaptive keeps the still's own shape

    aspect_ratio defaults to adaptive, which follows the proportions of the opening frame, so a vertical still is not pushed into a wide frame. Naming one of the six fixed values reframes the still to fit that shape instead, which is worth doing only when the placement demands it.

  • Sound is rendered for the motion, not lifted from the source

    generate_audio defaults to true and produces a soundtrack for the animation being generated; a still carries no audio to reuse. The rate is identical whether the switch is on or off, so delivering a silent clip is an editorial decision here and not a saving.

  • Keep the seed fixed for a clearer comparison

    Keep the prompt, seed, duration and resolution unchanged, then vary one setting at a time. On image-based tasks, reuse the same source images. Compare the staging and motion across a few takes to see whether the change helps.

Who Seedance 2.0 Fast is for

  • Animate what has already been signed off

    Approved key art

    Animate what has already been signed off

    The still carries the approval and generation only adds movement to it. Draft the motion at 480p, check whether the subject holds together across the full length, then rerun the same request at 720p for the take that ships.

  • Reframe deliberately, or leave adaptive alone

    Known delivery shape

    Reframe deliberately, or leave adaptive alone

    adaptive keeps the still's proportions, which is usually what you want from a frame that has already been approved. Name a fixed ratio only when the destination differs from the source, and expect the still to be reframed to fit that shape.

  • Let the photograph carry the detail

    A real product or place in the photo

    Let the photograph carry the detail

    When the opening frame is an actual product shot or location, no description competes with it for accuracy. Spend the prompt on what moves, how the camera behaves and what should be heard, and leave the appearance to the file.

  • Plan the piece as a list of frames

    Multi-shot sequences

    Plan the piece as a list of frames

    A film longer than 15 seconds takes several calls here: extend the joined clip pass by pass, or open each shot on the previous clip's closing frame. Deciding those hand-off frames before rendering is cheaper than discovering afterwards that two shots do not meet.

How to call the Seedance 2.0 Fast API

  1. Approve the still before animating it

    Framing, exposure and any flaw in image_url persist through every frame of the clip, and resolution cannot add detail the source never had. Fixing the picture first is the cheapest edit available on this endpoint.

  2. Say what moves, not what is in the frame

    prompt is optional here, so use it for motion, camera and sound. Restating what the photograph already shows takes room away from the instructions that actually change the render.

  3. Add last_image_url only when the ending matters

    A defined closing frame is worth sending for transitions, reveals and loops. It is accepted alongside image_url, so a request carrying it always carries the opening frame as well. Give it the same proportions as the opening still: a closing frame of a different shape is cropped to match.

  4. Draft at 480p, then commit at 720p

    resolution is the field that moves the request between rate tiers, and nothing on this endpoint repairs a finished clip, so the motion is worth confirming cheaply before the take that ships.

  5. Keep both end frames of every render

    Set return_last_frame to true to receive the final frame as a separate image, then use it as image_url in the next image-to-video request. Each following segment is a new generation.

Seedance 2.0 Fast worked examples

  • A key visual animated for delivery

    image_url is the approved frame, 720p, 8 seconds, with nothing in the shot left for the model to invent.

    The product rotates gently in place under soft studio light, camera holds a static frontal angle, a faint reflection visible on the surface below it
  • A transition with both ends supplied

    Opening and closing frames are both sent, so the passage between them has a destination instead of an open end.

    A cup of coffee steams gently on a wooden table by a rain-streaked window, camera slowly pushes in toward the cup
  • A short opening beat in a longer sequence

    6 seconds, deliberately short, with last_image_url set to the frame the following call will open on.

    A door slowly opens into a sunlit room, dust visible in the light beam, camera stays still at the threshold

Seedance 2.0 Fast API questions

Getting the most from a fixed frame

Treat image_url as the ceiling on quality: resolution formats the delivery but adds no sharpness the source never had, so approve the still before spending on 720p. Keep the seed and the other inputs fixed when comparing one change. Reserve last_image_url for shots whose ending has to land on a specific frame, and archive that frame, because it is what the next call in a sequence opens on.