Model Details
Seedance 2.0 First and Last Frame generates a clip that begins on one image and ends on another. You supply both stills — `image` is the opening frame, `end_image` is the closing frame — and the prompt describes what happens in between: the action, the camera move, and the sound. Audio is generated together with the picture rather than dubbed on afterwards, so dialogue, ambience, and sound effects line up with what moves on screen. Clips run 4 to 15 seconds at 24 fps, from 480p up to 1080p.
## Best for - Morphing one image into another with a controlled, watchable transition - Pinning the exact opening and closing frames so the clip cuts cleanly into an edit - Animating between two storyboard keyframes, or two product states (closed to open, before and after) - Seamless loops — pass the same URL as `image` and `end_image` and the clip returns to where it started
## Choose another model when - You only have a starting frame and do not care where the clip lands — use `bytedance/seedance-v2/image-to-video` - You want to steer identity, wardrobe, or style with several reference photos instead of pinning two frames — use `bytedance/seedance-v2/reference-to-video` - You are restyling or extending footage you already have — use `bytedance/seedance-v2/video-to-video` - You need reproducible runs from a fixed seed, a locked-off camera, or one take longer than 15 seconds — none of those are offered here
## Tips - The two frames should be plausibly connected — the model invents a story between them rather than a cross-fade - If the two images have different aspect ratios the first frame wins and the last one is cropped to fit, so match them yourself when the crop matters - Leave `aspect_ratio` on `adaptive` to keep the first frame's shape; set it explicitly only for a deliberate re-frame - Spend the prompt on the transition: what moves, in what order, and what is heard
## Limitations - A large gap between the two frames (a full scene or identity change) can drift in the middle of the clip - Fine texture and small text in either still soften once the shot starts moving - Fast motion and crowds smear at 480p; 720p or higher holds detail
To run via the ModelRunner JavaScript client: ```js import { modelrunner } from "@modelrunner/client";
const result = await modelrunner.subscribe("bytedance/seedance-v2/first-last-frame", { input: { prompt: "The gull lifts off the railing and banks out over the bay as the mist thins, then wheels back and settles on the same railing exactly as it started", image: "https://media.modelrunner.ai/lLzL0kzIHxtmdFBBhc9WO.jpeg", end_image: "https://media.modelrunner.ai/lLzL0kzIHxtmdFBBhc9WO.jpeg", resolution: "720p", aspect_ratio: "adaptive", duration: 6, }, }); ```

