Kling motion control on Sume: keep_original_sound and orientation
Two optional Kling motion control fields on Sume: keep_original_sound defaults to true and character_orientation defaults to video, or image.

Sume's Kling 3.0 Motion Control route takes two optional switches besides the still and the driving video: keep_original_sound, a boolean that is true when you leave it out, and character_orientation, which is either video or image and is video when you leave it out. Nothing else about the output can be set, because the provider has no duration, resolution or audio-generation knob.
The request body
The route is POST /v1/kling/3.0/motion-control, also reachable as POST /v1/avatar-1.0/motion-control. The body is strict, so unknown keys are refused.
| Field | Type | Notes |
|---|---|---|
| image_url | public HTTPS URL | The still of the character; or use avatar_handle |
| motion_video_url | public HTTPS URL | The driving video; required |
| duration_seconds | number, 1 to 30 | Declared driver length, used for the reservation |
| prompt | string, up to 2,000 | Optional |
| keep_original_sound | boolean | Defaults to true |
| character_orientation | video or image | Defaults to video |
| model, endpoint, provider_endpoint | refused | Sume picks the model |
What the defaults mean for you
With keep_original_sound left at true, the sound of the driving video is requested to stay in the result. If your driving clip is a dance filmed with music you do not hold rights to, set it to false before you publish anything. Rights to the soundtrack are your responsibility; the setting only decides whether the provider keeps the sound.
The character_orientation setting takes the values video and image. Sume's code passes the value through and defaults to video; the vendor's own description of what each value does is not in the Sume docs, so test both on a 3-second driver (3 x $0.1575 = $0.4725 each) and look at the framing before you pick one for a batch.
Related behaviour
Paid calls through the hosted MCP use the tool kling-motion-control_create and need an idempotency key, like any paid tool. Use the same key when you retry a lost response so you do not pay twice.
Cost of experimenting with the switches
There are four combinations of the two options, with keep_original_sound true or false and character_orientation video or image. Running each on the same 3-second driver costs 4 x 3 x $0.1575 = $1.89 in total. That is a cheap way to see the effect before a batch of 40 clips of 10 seconds, which would reserve 40 x 10 x $0.1575 = $63.00.
Record the four settings with the result in your own metadata field. The schema accepts a free-form metadata object on the request, which is useful for remembering which variant you chose.
Neither switch changes the price, since the price depends only on the declared length of the driving video.
Sources
Related posts
More in Developers
- Kotlin: submit and poll a Sume video job with java.net.http
A Kotlin port of a Sora videos call: POST /v1/videos with an Idempotency-Key, poll every 30 seconds until done, with the JDK client and kotlinx.serialization.
- Kubernetes CronJob that submits a nightly 30-second Wan 3.0 clip
A CronJob manifest using curlimages/curl and a Secret: one dated Idempotency-Key per night, concurrency forbidden, and a month of reserves at each resolution.
- AWS Lambda's 3 s default vs POST /v1/images' 30 s sync wait
POST /v1/images waits up to 30 seconds by default, but a Lambda defaults to 3. Send mode async with an Idempotency-Key and return the job id instead.
- Lambda get_remaining_time_in_millis: stop polling a Sume job in time
A Lambda that polls a Sume job should check get_remaining_time_in_millis before each sleep and return the job id so a later invocation can resume. Python.
Written by Sume