Barbershop before-and-after clip: Kling 3 first frame and last frame

Send the before photo as first_frame and the after photo as last_frame to kling-3 on Sume: a 6-second silent clip is $0.84; what to check before posting.

5 min readSume
All posts

To animate a barber's before and after photos into one clip, send the before shot as first_frame and the after shot as last_frame to kling-3. A 6-second silent 1080p clip costs $0.84 on Sume, or $1.26 with audio. The catalog lists kling-3 with text-to-video, image-to-video and end-frame support, 4 to 15 seconds, at 720p and 1080p (Video Router, read 2026-10-05).

What does the body look like?

Two frame_images entries, one per frame_type. Keep the framing, lighting and crop of the two photos as close as you can, because the model has to bridge them.

curl -X POST https://api.sume.com/v1/videos \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"kling-3","prompt":"A barber works with scissors, hair falls away, the cut is finished, same chair and mirror","duration":6,"resolution":"1080p","aspect_ratio":"9:16","generate_audio":false,"frame_images":[{"type":"image_url","image_url":{"url":"https://example.com/before.jpg"},"frame_type":"first_frame"},{"type":"image_url","image_url":{"url":"https://example.com/after.jpg"},"frame_type":"last_frame"}]}'

How many clips does a month of cuts need?

A shop that posts three transformations a week makes about a dozen clips a month. The table prices that at two clip lengths.

kling-3 silent 1080p clips for a barbershop, Sume prices (read 2026-10-05)
Clip lengthOne clip12 clips
4 seconds$0.56$6.72
6 seconds$0.84$10.08
8 seconds$1.12$13.44

How do I poll and download the result?

A submit returns 202 with id, polling_url, status and model. Poll GET /v1/videos/{id} until status is completed (the other terminal values are failed and cancelled), then download from GET /v1/videos/{id}/content?index=0 with the same bearer key. If the job fails, read the error field on the poll response.

curl https://api.sume.com/v1/videos/JOB_ID -H "Authorization: Bearer $SUME_API_KEY"
curl -L "https://api.sume.com/v1/videos/JOB_ID/content?index=0" \
  -H "Authorization: Bearer $SUME_API_KEY" --output clip.mp4

What should I check before posting?

Watch the middle of the clip: a transformation between two photos can invent in-between details. If the clip shows something the real haircut did not, show the plain before and after photos instead. Which models accept a last frame is listed in end-frame AI video on Sume.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume