Show only what moved between frames: tblend in difference mode
Sume's video filter allowlists tblend. In difference mode each frame is blended with the previous one so static areas go dark and movement lights up.

tblend blends each frame with the one before it, and it is on the allowlist in Video filter under Time. With all_mode=difference, areas that did not change between frames come out near black and areas that moved stay visible, which makes a quick motion map. It is useful for checking a locked-off shot for unwanted drift or flicker, not a finished-video effect.
Which tblend options choose the effect?
| Option | What it does |
|---|---|
all_mode | Blend mode for all components. Includes difference, average, darken, addition and many others. |
c0_mode to c3_mode | Set one component's mode separately. |
all_opacity | Blend strength, 0 to 1. |
How do I run a motion check?
Check the graph and encode a short range. A tripod shot should come out nearly black, with bright edges only where something moved. A shot with camera shake lights up the whole frame, which is the signal you wanted.
curl -X POST https://api.sume.com/v1/video-filter/check \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/motion.mp4",
"filtergraph": "tblend=all_mode=difference"
}'Is this the same as frame blending for motion blur?
It uses the same filter family but a different goal. Motion blur averages neighbouring frames to smear movement; see add motion blur with tmix. difference subtracts instead, so static pixels cancel.
What can I do with the result?
Look at it, or pull stills from it with video inspect to check the amount of motion at specific times. The filter output is a normal MP4 and can sit in a Timeline 1.0 slot as a graphic. If a clip flickers rather than moves, deflicker is the allowlisted filter to try.
What does a filter job cost and where are the limits?
The docs list $0.02 per encode job, with a source of at most 300 seconds, a filtergraph of at most 2048 characters and 32 named filters. The /v1/video-filter/check route runs the same allowlist and source checks for free and returns valid and next_action; a graph that passes can still fail on the worker (bad expression, memory, time), which comes back as a structured job error.
Sources
Related posts
More in Developers
- Add a soft glow to video by API: split, gblur, screen blend
Sume's video filter allowlists split, gblur and blend, enough for a dreamy glow: blur a copy, then screen it over the original at partial opacity.
- Soften skin in video by API with smartblur (whole-frame)
Sume video filter allowlists smartblur, which blurs but keeps outlines. No face detection, so it softens the whole frame; tune radius, strength threshold.
- Sora characters gone: reuse a subject with reference images
Sora's reusable Characters left with the Videos API. Sume has no saved character; send the same reference images with each request to wan-3.0 or minimax-h3.
- Sora polling loop ported: Sume statuses and a 30-second poll
Sora's guide polled every 10 to 20 seconds for queued, in_progress, completed, failed. Sume's jobs read pending, in_progress, completed, failed, cancelled.
Written by Sume