Kling motion control cost calculator: ceil(seconds) x $0.1575

Sume bills Kling motion control as ceil(duration_seconds) x $0.1575. A four-line Python function prices 5, 12.4, 15 and 30 second references before you submit.

5 min readSume
All posts

Kling motion control on Sume costs ceil(duration_seconds) times $0.1575. That is Kling's $0.126 list per output second (fal, 2026-08) times Sume's 1.25 margin. A 30-second reference reserves $4.725, and a 12.4-second reference is billed as 13 seconds, which is $2.0475.

Where the number comes from

The provider has no duration setting for this model. The motion video that you send decides how long the output is, so Sume cannot read the length from a model field. It uses the duration_seconds that you declare, which must be 1 to 30, as the amount to reserve.

The API reserves the amount at admit, captures it when the job completes, and refunds it when the job fails. It always rounds up to a whole second, so it never under-reserves a fractional second.

The function

This is the whole model. It has no network call, so you can run it in a spreadsheet-sized loop over a shot list before you spend anything.

import math

RATE = 0.126 * 1.25  # fal list per second x Sume margin = 0.1575

def motion_cost(seconds: float) -> float:
    n = math.ceil(seconds)
    if not 1 <= n <= 30:
        raise ValueError("duration_seconds must be 1 to 30")
    return round(n * RATE, 4)

for s in (5, 12.4, 15, 30):
    print(s, motion_cost(s))

Cost by length

The output of the loop above, next to a tenfold batch, which is the shape of a real order (one reference for many stills).

Motion control reserve by declared length, USD (read 2026-10-05)
duration_secondsBilled secondsOne clipTen clips
550.78757.875
12.4132.047520.475
15152.362523.625
30304.72547.25

Use the server as the last check

Your function is an estimate. Sume also runs an admission preview (POST /v1/generation/admission-preview) that accepts the public id kling/3.0/motion-control and the older face-control id, and normalizes both. It is hidden from the public OpenAPI document, so do not build a product on it. Treat your own formula as the plan and the usage.billable_amount_usd_micros field on the submit response as the receipt.

If the balance is lower than the reserve, the submit returns 402 insufficient_credits before any provider work starts. A shorter reference is the cheapest fix.

Rounding and the cent

Two details trip people up. First, the unit price is $0.1575, which is a fraction of a cent, so a single second of motion is not a whole number of cents. Your estimate should keep four decimals and only round for display. Second, the ceiling applies to the declared length, not to the real length of the file. If you declare 12 and the reference is 12.4 seconds long, you have under-declared, so declare the rounded-up value yourself and keep the two numbers equal.

Measure the file before you declare it. A probe such as ffprobe reads the duration in a moment, and a trim job can cut a long reference down to the part that you need. Cutting a 45-second reference to 30 seconds takes it from impossible to $4.725, and cutting it to 8 seconds takes it to $1.26.

Budgeting a batch

For a shot list, sum the ceilings, not the raw seconds. Ten references of 3.2 seconds each look like 32 seconds, but they bill as ten 4-second jobs, which is 40 seconds and $6.30. The gap is the cost of fractions, and it grows with the number of short clips. If you can, make your references land on whole seconds.

Related posts

More in Pricing

All Pricing posts

Written by Sume