Kling motion control still: 340 to 3,850 px edges, checked first
Kling's motion control guide sets a 340 px short edge and a 3,850 px long edge for the still. Check both in Python before a Sume job reserves money.

Before you send a still to Kling 3.0 Motion Control, make sure its short edge is at least 340 px and its long edge is at most 3,850 px, with the whole body and head visible. Those numbers come from Kling's own motion control guide (read 2026-10-07). Sume's route takes a public HTTPS image_url and publishes no pixel check of its own, so the cheap move is to test the file yourself before a job reserves money.
This matters because the failure shows up late. A still that breaks the vendor rules is accepted at submit, reserved at admit, and only then fails or returns a poor clip. Sume refunds a failed job, but you still lose a polling cycle and a retry.
What Kling's guide asks of the still
Kling's guide lists the rules below for the character image. The table pairs each rule with what to do before you call Sume.
| Rule | Kling guide says | Before you submit |
|---|---|---|
| Short edge | Minimum 340 px | Upscale or regenerate the still |
| Long edge | Maximum 3,850 px | Downscale before upload |
| Visibility | Whole body and head clearly visible, not obstructed | Reject crops that cut off hands or head |
| Proportion | Match full-body or half-body to the motion reference | Pick a still that frames like the clip |
| Face data (3.0) | Upload a clear facial close-up for Element Binding | Keep the face large in the still |
What the Sume route takes
POST /v1/kling/3.0/motion-control accepts exactly one visual source: a public HTTPS image_url, or a ready avatar by avatar_id or avatar_handle. It also needs a motion_video_url and a duration_seconds between 1 and 30. The body is strict, so extra fields are rejected rather than ignored.
The Sume docs do not state pixel limits for image_url. Treat Kling's numbers as the contract. If you use an avatar instead, the still is resolved server-side from the avatar identity, so there is no file for you to measure.
A pre-flight check in Python
This helper needs Pillow. It returns a list of problems and prints ok when the still passes the two size rules. It cannot judge whether the body is visible, so look at the image once yourself.
from PIL import Image
import sys
def check_still(path):
problems = []
with Image.open(path) as im:
width, height = im.size
short_edge, long_edge = min(width, height), max(width, height)
if short_edge < 340:
problems.append(f'short edge {short_edge} px is below 340')
if long_edge > 3850:
problems.append(f'long edge {long_edge} px is above 3850')
return problems
if __name__ == '__main__':
found = check_still(sys.argv[1])
print('; '.join(found) if found else 'ok')What a bad still costs
Sume prices the route at ceil(duration_seconds) times the Kling motion-control list of $0.126 per output second, times a 1.25 margin, which is $0.1575 per second. A 10-second reference reserves $1.575 at admit. The amount is captured on completion and refunded on failure, so a rejected still does not keep your money, but a poor clip that completes does.
A 30-second reference reserves $4.725. Run the size check, look at the still once, and then submit.
What this check does not cover
It does not test the motion video. Kling's guide gives the reference clip a 3 to 30 second window, and Sume caps duration_seconds at 30. It also does not decide who faces which way: that is the character_orientation setting.
Sources
Related posts
More in Media tools
- Meta wants a fixed frame rate: set Timeline output.fps when clips mix
Meta's Facebook feed page requires a fixed frame rate. Sume Timeline takes output.fps 24, 25, 30 or 60, and mixed-rate sources are resampled with judder.
- Bumper and non-skippable ads bill per impression: cut 6, 15, 30 s
Google bills bumper and non-skippable in-stream per impression (Target CPM). Length is a creative call: cut 6, 15, and 30 second versions with video-trim.
- Omni 40-second ad: resend the packshot at every 10-second step
Google extends Omni clips to 40 s in 10 s steps with 10 s of prior context. On Sume, four 720p clips with the packshot as a reference cost $5.00.
- Pan and scan a 1.85:1 trailer to vertical: one crop per shot
For a 1.85:1 trailer, trim each shot, then crop it at its own x offset: width 0.304054, x 0 to 0.695946. A three-shot plan with job count, cost and order.
Written by Sume