ByteDance First-Last-Frame to Video
ByteDance's first-to-last-frame video
- first_frame
- last_frame
- VIDEO
ByteDance's answer to "make the video end the way I want" is the same shape as Google's and Kling's: pin the first frame, pin the last frame, and let the model animate the middle. This node is the Seedance first/last-frame API, built into ComfyUI core - no install, and it runs on ByteDance's servers through Comfy's proxy rather than your machine.
The mechanics are straightforward. first_frame and last_frame are the anchors, prompt is what you want to happen between them, and the node uploads both images, wraps everything up with the resolution/ratio/duration as command-line-style flags, and polls until a VIDEO lands on the output. The model dropdown is where you choose your tier: seedance-1-5-pro-251215 (the newest pro model, with audio support), seedance-1-0-pro-250528, or the default seedance-1-0-lite-i2v-250428 - the cheap tier that's fine for drafts. Yes, the default is the lite model, which is a sensible way to not bleed credits on your first runs.
The controls you'll actually touch: resolution (480p/720p/1080p), aspect_ratio (including an adaptive option that lets the model pick), and duration - a slider from 3 to 12 seconds, with a real caveat: Seedance 1.5 Pro enforces a minimum of 4 seconds, so the 3-second setting only works on the older models. Then there's camera_fixed, a deceptively simple boolean. It appends an instruction to your prompt telling the camera to hold still - and the tooltip is admirably honest that it does not guarantee the effect. Treat it as a soft preference, not a lock. generate_audio is there too, but read the fine print: it's ignored for every model except seedance-1-5-pro. That's ByteDance quietly telling you audio is a pro-model feature.
Output is a single VIDEO. The image constraints are worth knowing before you fight them: frames must be 300–6000px on each side with an aspect ratio between 0.4:1 and 2.5:1 - a panorama or a near-square both work, a 1:10 banner doesn't. And watermark defaults to false; flip it if you need a visible "AI generated" mark.
Where this fits: anywhere you need a guaranteed ending. Two storyboard stills become a shot. A character's pose at the start and their pose at the end become a motion arc, with the identity pinned at both ends instead of hoped for. It's the same bookending trick as the Veo and Kling variants - pick whichever vendor's quality and pricing you like, because the workflow is interchangeable.
The usual partner-node caveats apply: it's paid per render through your Comfy account, your images get uploaded to ByteDance's servers, and there's a content filter on the other end that occasionally rejects things - a contents_moderation-style failure is the vendor's filter, not a broken graph. ByteDance's video API nodes have been in core since September 2025, with Seedance 1.5 Pro added in early 2026. Cheap tier first, pro tier when the shot's locked.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | seedance-1-0-lite-i2v-250428 | 3 options: seedance-1-5-pro-251215, seedance-1-0-pro-250528, seedance-1-0-lite-i2v-250428 |
| prompt | STRING | The text prompt used to generate the video. | |
| first_frame | IMAGE | First frame to be used for the video. | |
| last_frame | IMAGE | Last frame to be used for the video. | |
| resolution | COMBO | The resolution of the output video. | |
| aspect_ratio | COMBO | The aspect ratio of the output video. | |
| duration | INT | 53–12 | The duration of the output video in seconds. |
| seedopt | INT | 00–2147483647 | Seed to use for generation. |
| camera_fixedopt | BOOLEAN | false | Specifies whether to fix the camera. The platform appends an instruction to fix the camera to your prompt, but does not guarantee the actual effect. |
| watermarkopt | BOOLEAN | false | Whether to add an "AI generated" watermark to the video. |
| generate_audioopt | BOOLEAN | false | This parameter is ignored for any model except seedance-1-5-pro. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| VIDEO | VIDEO | — |