Skip to main content

Seedance 2.0 Mini 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.025/s

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 a still, then repeat it across a whole library

The Seedance 2.0 Mini image-to-video API takes one hosted still as image_url and returns 4 to 15 seconds of motion at 480p or 720p, with audio in the same pass. image_url is the only required field here, so prompt is optional and last_image_url can pin the frame the shot has to land on. The schema matches Seedance 2.0 Fast, and the rate per second is lower.

Open the playground
Animate a still, then repeat it across a whole library
Required input
image_url only, with prompt optional
Optional closing frame
last_image_url, sent alongside image_url
Duration
4 to 15 whole seconds, default 5, or -1 quoted as 15
Resolution
480p or 720p, 720p by default
Framing
aspect_ratio adaptive by default, following the still
Task timeout
1200 seconds, against 1800 on base Seedance 2.0
Required fields
A still on its own is already a complete requestSeedance 2.0 Mini image-to-video requires image_url and nothing else, so a still on its own is a valid request. prompt is accepted and optional, because the picture already settles composition, wardrobe and grade. An automated caller holding only a URL can submit without inventing wording, and the same bare body is accepted by Seedance 2.0 Fast and base Seedance 2.0 as well.
Positioning
Priced for a library of approved stillsByteDance describes the 720p-capped models as priced for high-volume work such as drafting and rapid iteration. A catalogue where every entry already has a signed-off hero image and needs a short clip is that shape of job: one request per item, with image_url as the only thing that changes between them.
Endings
You hold both ends of every clipSeedance 2.0 Mini publishes no field that hands back the closing frame of a render. last_image_url is how you state where a shot lands; a longer sequence comes from the family's Video Extend endpoint, which continues an approved clip from its last frame and joins the result, or from pulling a frame out yourself and sending it as the next call's image_url.

What the Seedance 2.0 Mini API does well

One template, with image_url swapped per item

One template, with image_url swapped per item

The request body stays stable across a run: the same prompt template, the same duration and resolution, with image_url pointing at a different still each time. That turns the work into a loop around a fixed request shape, and each item is quoted on its own inputs. Nothing about the schema changes as the run gets longer.

Screen the stills, not the tier

Screen the stills, not the tier

resolution moves a call between the two rate tiers and does nothing else. Sharpness, exposure and framing all arrive with the still, so a weak source is still weak at 720p and the tier cannot recover what the picture never had. Across a hundred items, rejecting bad stills at the input is the cheapest quality control available.

  • Smart duration for stills that do not share a pace

    duration_seconds accepts -1, and the model then picks a length inside the 4 to 15 second range. A call sent that way is quoted as a full 15 seconds until the clip lands, so a large library is usually easier to budget with a fixed number per item and -1 kept for the genuinely open cases.

  • last_image_url states where a shot has to land

    Sending last_image_url alongside image_url fixes the closing picture, which is what makes a transition, a before-and-after pair or a loop repeatable across many items. It travels with image_url and is never sent on its own. Leave it out and the prompt decides where the motion ends.

  • Two motion ideas on one still, judged side by side

    The same image_url sent twice with different motion wording returns two takes to compare, each an ordinary call with its own task id. Keeping duration_seconds, resolution and aspect_ratio identical between them leaves the prompt as the only thing that moved, which is what makes the comparison worth reading.

  • Silent and scored items in the same run

    generate_audio is a per-request field, so one pass over a library can deliver scored clips for social placements and silent clips for a site header. The rate per second is the same at both settings, which keeps the decision editorial and stops it from splitting the run into two pipelines.

Who Seedance 2.0 Mini is for

  • A clip for every listing, from stills already signed off

    Catalogue teams

    A clip for every listing, from stills already signed off

    Each listing's approved hero image becomes image_url in an otherwise identical request. The approval travels with the picture, so review after the run is about motion alone, and the rate per second is what decides whether covering a thousand listings is worth doing at all.

  • Handle stills as they arrive

    Pipelines animating incoming images

    Handle stills as they arrive

    A service that animates every new upload has no single deadline to beat, only a rate multiplied by volume. Seedance 2.0 Mini is the lowest-priced of the three Seedance 2.0 tiers per second, and image-to-video keeps prompt optional, so an automated caller can send the still and nothing else.

  • Several prompts against one approved still

    Teams comparing motion treatments

    Several prompts against one approved still

    Three or four calls carrying the same image_url and different motion wording produce a set to choose from. Since nothing repairs a finished clip, this is also the cheapest place to find out that a still animates badly, before it is committed to a longer run.

  • Check the motion before the still is final

    Previsualisation

    Check the motion before the still is final

    A 480p pass on a candidate frame answers whether the intended movement reads. ByteDance names drafting and rapid iteration as the stages the 720p tiers are priced for, and this is that step: cheap answers first, with the approved frame rerun at 720p once the direction is settled.

How to call the Seedance 2.0 Mini API

  1. Host the still where it can be fetched

    image_url takes a URL the platform downloads, so every still in a run has to be reachable when its call goes out. A stale or broken link is the usual reason one item fails while the items around it succeed.

  2. Decide whether the run uses last_image_url

    last_image_url pins the closing frame, and a run that mixes items with one and items without usually contains two different jobs. Settle it for the whole run, then keep the remaining fields identical between items so the outputs stay comparable.

  3. Confirm the motion on a few items at 480p

    resolution selects the rate tier, so a handful of representative stills at 480p costs a fraction of the full run. A prompt or duration that turns out wrong is then a cheap discovery instead of a rerun of every item that used it.

  4. Fix the duration per item before submitting

    duration_seconds is the billed quantity and runs from 4 to 15 whole seconds. A still driven for 15 seconds drifts further than one driven for 5, so a long length is worth confirming on a single item before the whole run inherits it.

  5. Track the task for each item

    Each call returns its own task and nothing groups a run, so the mapping from item to task id lives at your end. Poll or wait on the callback per item, and treat a late item as independent of the rest.

Seedance 2.0 Mini worked examples

  • Animating a run of catalogue stills

    The same prompt template with image_url swapped per entry, resolution held at 720p, so each listing is quoted and reviewed the same way.

    The product turns a quarter rotation and settles, soft even studio light, camera holds a static angle, no cuts
  • Two motion treatments on one approved still

    Two calls carrying the same image_url and different motion wording, with every other field held constant so the prompt is the only variable.

    Slow push in toward the subject, shallow depth of field, light shifting gently across the frame, no cuts
  • A previsualisation pass at 480p

    resolution at 480p and duration_seconds at 5, run on a candidate frame to see whether the movement reads before the still is locked.

    The camera drifts slowly backward from the doorway, revealing the room in hazy morning light, no abrupt movement

Seedance 2.0 Mini API questions

Screen the stills before you write anything, because image_url decides composition, likeness and the quality the clip can reach, and resolution cannot add detail the picture never carried. Run a handful of representative frames at 480p to confirm the motion direction, then freeze prompt, duration_seconds and the last_image_url policy into one template and let the run vary only the still. Keep duration at a fixed number where the length is known, since -1 is quoted as a 15 second clip until the result lands.