Kling Start-End Frame to Video
The A-to-B transition node that solves the 'how does it get there' problem
- start_frame
- end_frame
- VIDEO
- video_id
- duration
Text-to-video and image-to-video give you a clip, but they don't give you control over where the clip ends. Start-end frame generation fixes that: you hand Kling a first frame and a last frame, and the node generates everything in between, producing a smooth transformation from A to B. The classic use is the scene transition - a character at the start of a hallway walking to the end, a product shot turning into a lifestyle shot, an establishing shot dissolving into a close-up. It's the "bookend" approach, and it's the reliable way to guarantee your clip lands exactly where you need it to for stitching into a sequence.
Like everything in the built-in partner/video category, it's an API node: ships with ComfyUI core, uploads both frames to Comfy Org's backend, calls Kling's image-to-video endpoint, and bills your Comfy account in credits. Under the hood the second frame goes in as Kling's image_tail - the endpoint is the normal I2V one, just restricted to the inputs that support an end frame.
The inputs that matter
- start_frame and end_frame - the two bookends. Both must be at least 300×300, with an aspect ratio between 1:2.5 and 2.5:1, and the frames can't exceed 10MB. If the start and end look wildly different, the in-between has a lot of work to do - expect artifacts and budget a longer duration.
- prompt and negative_prompt - the transition described in words. Kling respects both, which is a nice change from closed APIs that ignore negatives.
- cfg_scale - 0 to 1, default 0.5. Lower = freer, higher = tighter adherence. For transitions, a mid value is a sensible start.
- mode - a combo that bundles mode + duration + model, with a default like "pro mode / 5s duration / kling-v2-5-turbo". The tooltip spells out the format: mode / duration / model_name. That's where you set the clip length and whether you're on a turbo model.
Outputs: VIDEO, plus a video_id and duration string. The video_id is the useful extra - Kling nodes that extend videos (like Video Extend) can take it and continue the clip past its end. Keep it in mind when you're planning a longer sequence.
Where people get burned
- Bookends too far apart. If start and end are completely different scenes, the model has to invent the whole bridge and it shows. Same character, same lighting, same camera height all make the transition dramatically better. Runway's own docs make the same point about its first/last-frame node - longer durations give the transition room to breathe.
- The 10MB frame limit and the aspect constraint. Huge generated images can trip the size limit; downscale before wiring in.
- Paid per generation, and transitions burn compute. The badge scales with duration. Draft both frames first, then render once.
One light aside: it's easy to confuse this with the "Kling 3.0 First-Last-Frame" node - same idea, newer model family. This one is the v2.5-era workhorse, and for simple transitions it's honestly the more predictable of the two.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| start_frame | IMAGE | Reference Image - URL or Base64 encoded string, cannot exceed 10MB, resolution not less than 300*300px, aspect ratio between 1:2.5 ~ 2.5:1. Base64 should not include data:image prefix. | |
| end_frame | IMAGE | Reference Image - End frame control. URL or Base64 encoded string, cannot exceed 10MB, resolution not less than 300*300px. Base64 should not include data:image prefix. | |
| prompt | STRING | Positive text prompt | |
| negative_prompt | STRING | Negative text prompt | |
| cfg_scale | FLOAT | 0.500–1 | — |
| aspect_ratio | COMBO | 3 options: 16:9, 9:16, 1:1 | |
| mode | COMBO | pro mode / 5s duration / kling-v2-5-turbo | The configuration to use for the video generation following the format: mode / duration / model_name. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| VIDEO | VIDEO | — |
| video_id | STRING | — |
| duration | STRING | — |