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.

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.
| Clip length | One clip | 12 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.mp4What 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
- Birthday party invitation video: a 5-second Wan 3.0 clip from a photo
Animate a birthday photo into a 5-second vertical invitation clip with Wan 3.0 on Sume: 480p, 720p and 1080p prices, the request body and what to add after.
- Change the volume number on 12 book covers with Ideogram 4.5
Twelve volume covers from one finished cover: one Ideogram 4.5 edit per number, $0.45 at low and $0.90 at medium on Sume. Prompt, checks and a Python loop.
- Brand character keyframe: GPT Image 2.5 refs, then first_frame
Build an opening frame that keeps your character on model with up to 16 reference images on GPT Image 2.5, then animate it by pinning it as the first frame.
- Brand name misheard in YouTube auto captions: burn your own script
YouTube warns that auto captions can misread accents and noisy audio. For a brand name that must be right, send script_text to Sume and burn your own wording.
Written by Sume