Brand-color captions: punch and tiktok-green skip design
Sume's docs say punch and tiktok-green read none of the design tokens. To change a caption color per request, use slam or a Hangul style. Token groups.

If you want to change the caption color for one request, do not use punch or tiktok-green. The Sume docs say those two styles do not support design and render on a path that reads none of its tokens. Use slam for Latin text, or a Hangul style for Korean text, and set the color in design.colors. A standalone caption job costs $0.20 whichever style you use.
What design can change
A style is a set of design tokens, and design overrides some of them for one request. Sume merges each field over the value of the style, so one key changes one thing. The docs list five groups.
| Group | Fields |
|---|---|
| colors | base, active, stroke, accent, accent_deep, card (null shows no card) |
| typography | base_weight, active_weight, active_scale, font_size_ratio, safe_width_ratio, stroke_width_px |
| placement | anchor_ratio, landscape_anchor_ratio (center of the line as a fraction of frame height) |
| phrasing | max_words, max_chars, pause_seconds |
| motion | enter_seconds, exit_seconds, emphasis_in_seconds, emphasis_out_seconds |
Which styles read it
The docs name two exceptions and give one working example. This table does not claim more than that.
| Style | Reads design? | Note |
|---|---|---|
| slam | yes (the docs say a selected slam keeps its own gold tint, which design.colors.active replaces) | Latin default |
| black-outline | yes (the docs example) | Hangul default |
| punch | no | renders on a path that reads none of these tokens |
| tiktok-green | no | renders on a path that reads none of these tokens |
Ask for a color, pay nothing for a typo
Colors must be hex, rgb() or rgba(), or transparent. Sume rejects other CSS syntax and does not put it into the render document. A number outside its documented range returns 400. The docs state the reason: an incorrect look fails at request time, and you do not pay for an incorrect render. So a name such as cyan is rejected before any money moves. Use #22D3EE.
curl -X POST https://api.sume.com/v1/video-captions \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: slam-brand-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/example/clean.mp4",
"style": "slam",
"design": { "colors": { "active": "#22D3EE" } }
}'Where the line between presets and tokens falls
The docs describe design as a way to change the look of a style for one request without changing the style name. That is why the brand-color route is slam with design.colors.active, not a custom name. The reverse also holds: if your brand color is already close to the preset, punch and tiktok-green save you a request field, but they cannot be tuned afterwards. If a client later asks for a different emphasis color, you will need to switch the style, not just the token.
Phrasing is also a token group. phrasing.max_words, max_chars and pause_seconds set how many words appear at once, so a Latin style with a design override gives you control of both color and pace. The presets give you neither.
A decision rule
- Need an exact brand color on Latin captions:
slamplusdesign.colors.active. - Want the preset
punchortiktok-greenlook unchanged: use it as is, and know that no token changes it. - Want to compare looks without paying for a second transcription: use
source_caption_idand restyle. - Korean text: pick a Hangul style, because Korean text on a Latin style returns
caption_hangul_text_latin_style.
Sources
Related posts
More in Media tools
- Recipe reel from 6 step clips: video trim exact or keyframe, $0.12
Cut six cooking steps from one kitchen take with Sume video trim: exact re-encode or keyframe copy, $0.02 per cut, then one $0.10 Timeline render. Total $0.22.
- Remove backgrounds from 500 product photos: RMBG API cost and code
Sume RMBG 1.0 removes a background for $0.0225 per image regardless of size. Batch cost for 50 to 5,000 photos, the request body and a Python loop.
- Restyle captions four ways for 80 cents without transcribing twice
Each Sume caption render is $0.20, so four styles of one clip cost $0.80. A restyle with source_caption_id reuses the word timings and skips re-transcribing.
- Restyle captions three times with source_caption_id: $0.60 total
To test three caption looks on one video, send source_caption_id: no second transcription, but each restyle is a render at the same job price.
Written by Sume