Video filter dim amount 1 changes nothing: check it, skip the $0.02

Dim amount 1 makes no change to a clip, yet an encode still costs $0.02. See the filter boundary table, what the free check refuses, and what to skip.

5 min readSume
All posts

A dim op with amount 1 is valid and does nothing. The Video filter docs say amount is in (0, 1], that 0.45 makes the clip less bright, and that 1 makes no change. An encode with amount 1 would still be a $0.02 job, so a script that loops over amounts should skip 1 and avoid paying for a copy (as of 2026-10-08). The free check accepts it, since it is inside the range, and cannot tell you the output equals the input.

What the boundaries are

These come from the docs. Dim refuses 0 and anything above 1. Crop needs x and y in [0, 1], width and height in [0.05, 1], with x + width and y + height at most 1. A program is limited to 8 ops, the source to 300 seconds, a filtergraph to 2048 characters and 32 filters.

Filter boundaries, read 2026-10-08
InputVerdictWhy
dim amount 0RefusedRange is above 0
dim amount 0.01ValidInside (0, 1]
dim amount 1Valid, no changeDocs: 1 makes no change
dim amount 1.01RefusedAbove 1
crop width 0.04RefusedBelow 0.05
crop x 0.8, width 0.3Refusedx + width is 1.1
Source of 301 sRefusedSource cap is 300 s

What to do with that

Run POST /v1/video-filter/check on every program. It is free, needs no Idempotency-Key, and creates no job. The response says valid or not, with diagnostics, a compiled filter list, an estimate and a next_action. Its encode field reads not_run, so it proves the program is accepted and nothing more about the picture.

Then drop no-ops yourself. If your tool chooses amount from a slider, treat 1 as off and skip the encode. That saves $0.02 per skipped call: across 1,000 jobs where 5 percent are no-ops, that is 50 x $0.02 = $1.00.

TikTok's page states the delivery limits for a finished ad (up to 10 minutes, 500 MB, 516 kbps), none of which a filter program can change on its own.

Where a dim fits

Dim a clip before captions go on it, or before it goes into a Timeline slot. A filter job of $0.02 on a clip under 300 seconds, plus a $0.10 render for a minute of output, is $0.12 for a darkened 60-second piece.

A guard in code

In code, the guard is a single line before the encode: if amount is 1 or more, skip. Keep the check call in front of everything else so a malformed program is caught at no cost, and log the skipped no-ops so you can see how often a slider sits at its end stop. The docs example amount is 0.45. Because the check does not render, decide a level by looking at one encoded file, as in the five-level comparison post.

Cost of a skipped no-op

The saving per skipped no-op is small, $0.02, and the real benefit is a cleaner pipeline: no extra artifact, no extra poll, no extra file to delete. Treat values near 1, such as 0.98, as real dims, because the docs only name exactly 1 as no change.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume