Kling 4.0 video extension, forward or backward, done by hand on Sume

Kling 4.0 extends a video forward or backward in one workflow. On Sume you chain clips yourself: pull a frame, pass it as first_frame or last_frame.

4 min readSume
All posts

Kling's page says video extension in Kling 4.0 lets you extend any video forward or backward across multiple passes, up to 2 minutes total. Sume's video request has no extension call in the docs read for this post, so you do it by hand: take a still from the clip, then pass it as first_frame (to go forward) or last_frame (to go backward) in a new job.

Kling facts are from its Kling 4.0 page; Sume facts from Video generation and Video frames, read 2026-10-01.

What does Kling say extension does?

The page lists text-to-video, image-to-video, reference-based generation, video continuation and video editing as one native workflow in Kling Creator Studio. It describes full Kling 4.0 as coming this October, with Kling 4.0 Flash first in a limited rollout. Flash, per the same page, supports only a subset and does not support first/last frames or multi-keyframes.

How do I extend forward on Sume?

Extract the last still of your clip with video frames, then start a new job whose frame_images entry has frame_type set to first_frame. The docs say each frame_images entry must carry a frame_type of first_frame or last_frame. Video frames takes one media.sume.com clip, takes either at[] or fps, and is unbilled; the source must be imported first with POST /v1/media-imports. Submit always returns 202, so poll the job and read the image URL from its result before step 2.

# 1) a still near the end of a 12 s clip (video_url must be on media.sume.com)
curl -X POST https://api.sume.com/v1/video-frames \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: frames-001" \
  -d '{"video_url":"https://media.sume.com/artifacts/artf_demo/clip.mp4","at":[11.9]}'

# 2) continue from it: use the returned frame url as first_frame
curl -X POST https://api.sume.com/v1/videos \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: next-001" \
  -d '{"model":"seedance-2","prompt":"Same scene, the camera keeps pulling back",
       "frame_images":[{"type":"image_url",
         "image_url":{"url":"FRAME_URL"},"frame_type":"first_frame"}]}'

How do I extend backward?

Reverse the roles. Extract the first still (at of 0), and submit a new job with that image as last_frame, so the new clip ends where your original begins. Then play the new clip before the original. Both frame types are supported by the model whose catalog entry lists supported_frame_images of first_frame and last_frame; check that field on GET /v1/videos/models before you pick a model.

Join the pieces with Timeline; the steps are in assemble long-form video with the Timeline API.

How does this differ from Kling's extension?

Kling 4.0 page and Sume docs, read 2026-10-01.
QuestionKling 4.0 pageSume docs
DirectionForward or backwardForward: first_frame. Backward: last_frame
PassesMultiple, up to 2 minutes totalOne job per clip, you chain them
ContinuityHandled in one workflowCarried by the still you pass
Extra costNot statedVideo frames is unbilled

What should I expect at the seam?

A single frame carries pose and framing but not motion, so the join can show a change in speed or direction. Keep the prompt of the new job consistent with the original, and trim a few frames at the cut if the Timeline preview shows a jump. Each new clip is its own job, so budget for each one. Extend an AI video past 30 seconds covers the same loop for longer runs.

Sources

Related posts

More in Models

All Models posts

Written by Sume