Fix a yellow or blue color cast in a video by API (colortemperature)
Sume's video filter allowlists colortemperature, a Kelvin value from 1000 to 40000 with a default of 6500. Warm or cool a clip and mix it in part.

To warm or cool a clip, run colortemperature in the filtergraph of Video filter. It takes a temperature in Kelvin from 1000 to 40000, with a default of 6500, and a mix from 0 to 1 that blends the result with the original. On a mid-gray test frame with ffmpeg 9.0.1, 4000 came out warm and 9000 came out cool, so a yellow-looking clip is the one to try above 6500. Treat the direction as something to confirm on your own frame.
Which colortemperature options are there?
| Option | What it does |
|---|---|
temperature | Kelvin, 1000 to 40000, default 6500. |
mix | Mix with the filtered output, 0 to 1, default 1. Use 0.5 to apply half the shift. |
pl | Amount of lightness preserved, 0 to 1, default 0. |
How do I test a correction before I pay for it?
The check is free. Run a candidate such as 7500, encode a short clip with it, and compare against the source. Because the encode bills per job, not per second, trim first with video trim so each test is a few seconds long, then apply the winning value to the full clip.
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/interview.mp4",
"filtergraph": "colortemperature=temperature=7500:mix=0.8"
}'Is this the same as white balance in a camera app?
No. A camera app can sample a gray card and solve for the cast. This filter applies the number you give it, so the correction is a guess you tune by eye. For a gentler tint without Kelvin math, see sepia or blue tint with colorbalance, which uses channel-level controls.
What if only one shot in a long video has the cast?
Cut that range out with video trim, run the filter on the piece, and put it back with Timeline 1.0. A mix below 1 keeps a heavy-handed correction from looking obvious when the neighbouring shots are fine.
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
- FLUX.2 JSON prompt: on Sume it is text in the prompt field
BFL says FLUX.2 accepts JSON-structured prompts. On Sume, prompt is a plain string, so JSON goes in as text; other fields are typed.
- FLUX.2 LoRA API: finetune_id on BFL, not on Sume
BFL serves klein LoRAs through -finetuned endpoints with finetune_id. Sume rejects provider-specific parameters, so use reference images instead.
- FLUX.2 pose and layout guidance without ControlNet
FLUX.2 has no ControlNet input: BFL says to pass a pose or layout as a reference image. On Sume use image_urls or input_references; unlisted fields get a 400.
- FLUX 3 Image 4K can take minutes: poll, and the Sume 30 s wait
FLUX 3 Image at resolution 4k can take several minutes, so poll. Sume blocks up to 30 seconds, then returns 202 with a job envelope to poll.
Written by Sume