Kling motion control reference over 30 seconds: trim it first
Sume's Kling motion control takes a duration_seconds of 1 to 30. For a longer dance or walk clip, cut a 30-second range with video trim, then submit that.

A motion reference that is longer than 30 seconds does not fit the Sume Kling motion control route: duration_seconds must be 1 to 30. Cut the part you want with POST /v1/video-trim (a new MP4, up to 900 s of output), then send the trimmed file as motion_video_url and declare its length in duration_seconds.
Why the limit is on the reference
Sume's motion control has no duration knob for the model. The motion video sets the length of the output, so the length of your reference is the length of the clip, and the field duration_seconds is only the amount that the API reserves at admit. It prices at ceil(duration_seconds) seconds at $0.126 list (fal, 2026-08) times 1.25, which is $0.1575 per second.
That means a 45-second dance costs nothing to try and cannot be submitted as is. You pick a 30-second window.
Cut the window
Video trim works on a clip that is already on media.sume.com, so import the source first with POST /v1/media-imports. The request needs start and one of end or duration, plus an Idempotency-Key. Use precision: "exact" (the default) so that the cut starts on the frame that you named, and not on the keyframe before it.
A trim costs $0.02 per job, which is small next to the $4.725 reserve of a full 30-second motion job.
curl -X POST https://api.sume.com/v1/video-trim \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: trim-dance-0012" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/dance.mp4",
"start": 12,
"duration": 30,
"precision": "exact"
}'Numbers to keep in mind
| Item | Value |
|---|---|
| Trim source length | up to 1,800 s |
| Trim output length | 0.2 to 900 s |
| Trim price | $0.02 per job |
| Motion control duration_seconds | 1 to 30 |
| Motion control price | $0.1575 per second ($4.725 for 30 s) |
Then submit the trimmed file
Poll GET /v1/jobs/:id/status until the trim reports result_ready, read video_url from GET /v1/jobs/:id/result, and send it as motion_video_url to POST /v1/kling/3.0/motion-control with duration_seconds: 30 and one visual source (image_url or an avatar). If the trimmed clip has a fractional length, round duration_seconds up to the next whole second: the API rounds up anyway, so declaring it yourself keeps the preview honest.
Pick the 30 seconds with the most motion that you want the character to copy. The model copies the reference; a prompt only steers appearance.
When one window is not enough
If the whole 90-second choreography matters, cut three 30-second windows, run three motion jobs with the same still, and join the results on Timeline. Each job is priced on its own duration_seconds, so three windows cost 3 x $4.725 = $14.175 before rounding. Cut on a beat so the seam reads as a pose, not a jump.
Keep the same image_url or avatar across the jobs. The reference sets the motion; the still sets who moves. A stable still is what makes the three parts read as one performance.
Sources
Related posts
More in Media tools
- Lyria music prompt rejected by policy: what to change, what to keep
After a policy rejection on a Sume music job, edit only the flagged content, keep the seven-axis brief, and retry in budget. A generic bed is the wrong fix.
- One-color stencil from an AI image: Pillow threshold for screen print
Make a one-ink stencil from a Sume image with autocontrast, a blur, and a threshold point() call. Pick the cutoff by pixel share, not by guesswork.
- One voice-over under ten AI shots: Timeline spine and start times
Put one narration track under ten AI video shots on Sume Timeline: video[0].start is 0, later starts increase, and the last shot may end up to 0.5 s early.
- Perfume unboxing captions with the scent names spelled right
Fix mis-heard product names in auto-captions by sending script_text: Sume keeps the speech timings and burns your spelling, $0.20 per clip up to 60 seconds.
Written by Sume