Apply a LUT to video by API: no .cube file, use lutrgb curves
Sume's video filter cannot load a .cube LUT because lut3d is not allowlisted. Per-channel curves with lutrgb or lutyuv are the supported way to grade.

You cannot upload a .cube or other LUT file to Sume. The video filter docs name lut3d as not allowed, along with anything that reads a file. What a graph can use instead are lutrgb, lutyuv and lut, which take inline expressions, plus colour filters such as eq, colorbalance and colortemperature.
Blackmagic's DaVinci Resolve 21.1 notes mention additional camera transform LUTs and ACES Transform choices. Those are files and colour-managed transforms inside Resolve; none of them can be handed to Sume. Facts below are from Video filter and the compiler allowlist, read 2026-10-01.
Which grading filters are allowed?
| Group | Filters |
|---|---|
| Curves | lutrgb, lutyuv, lut |
| Balance and tone | eq, colorbalance, colorchannelmixer, colorlevels, colortemperature, colorcontrast, colorcorrect |
| Not allowed | lut3d, movie, drawtext, subtitles, trim, setpts |
How do I write a curve instead?
Put the expression in the filtergraph. This example applies a gamma to the red channel only; the expression syntax belongs to ffmpeg's lutrgb, so confirm the look on a short clip. You can approximate a creative LUT by hand, but a measured camera-to-display transform is a 3D table and cannot be reproduced with three 1D curves.
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/clip.mp4",
"filtergraph": "lutrgb=r=gammaval(0.9)"
}'What runs first, ops or the graph?
Ordered ops[] (dim and crop, max 8) run before the filtergraph. A dim darkens luma before your curve sees it, so grade expectations shift. See why ops run before the filtergraph.
What does it cost?
The docs list $0.02 per encode job and a free /check. If the clip is already graded in Resolve or another editor, export it graded and upload the result; Sume then only needs to cut or assemble it.
Sources
Related posts
More in Developers
- Deepgram Flux numerals toggle vs Sume STT digits
Deepgram Flux can switch numerals on mid-stream for PINs and phone numbers. Sume STT is a batch job with fixed provider settings and no numerals flag.
- Deepgram Flux TTS speed 0.5 to 1.5 vs Sume's 0.6 to 1.5
Deepgram widened Flux TTS speed to 0.5-1.5 in 0.05 steps on 2026-08-31. Sume TTS accepts generation_config.speed from 0.6 to 1.5, plus a deprecated enum.
- Devin Desktop ACP session/new mcp_servers with Sume's remote URL
Devin Desktop 3.10.35 uses MCP servers an ACP client passes in session/new. Pass Sume's streamable HTTP URL and an API-key header, not editor config.
- ElevenLabs API timeout: cascade_timeout_seconds vs Sume waits
ElevenLabs added cascade_timeout_seconds (2-15 s) for Speech Engine retries. Sume's wait_timeout_seconds is a different knob: a 0-30 s HTTP wait on a job.
Written by Sume