THE DIFFERENTIATOR

Edit grammar, extracted from a reference

Point at a video you admire. Get back a structured description of how it is cut — which then governs every shot and every assembly in the project.

REFERENCE → SPEC → EDIT

01AnalyseShot boundaries, transcript with word timings, beat grid, palette.
02ReduceCollapse those signals into a compact, readable style spec.
03GovernEvery shot inherits the lens language and target duration.
04AssembleThe cut lands on the same rhythm as the reference.
The spec is plain JSON, so the agent can read it, argue with it and change one field without regenerating anything.

Calls

look.from_reference(url)
Analyse a reference and return a style spec.
look.set(project, look)
Attach a look to a project. All later shots inherit it.
look.diff(a, b)
Compare two looks field by field — useful for A/B.
look.override(shot, patch)
Deviate on one shot without detaching the project look.
RequestPOST /v1/look/from_reference
{
  "source": "https://tiktok.com/@ref/video/123",
  "extract": ["pacing", "captions", "palette"]
}
Response200 OK
{
  "style_id": "look_a1",
  "shot_length": { "mean": 1.8, "p90": 3.4 },
  "cut_on": ["beat", "phrase-end"],
  "captions": { "cadence": "word" }
}
From the CLI
$ picx look from-reference https://tiktok.com/@ref/video/123

✓ look_a1 · mean 1.8s · front-loaded · cut on phrase-end

$ picx look set look_a1

For users

Stop describing the vibe in words. Give it the video you wish yours looked like, then edit the numbers it comes back with.

For developers

The spec is versioned and diffable. Store the style_id on your side, not the expanded object — fields are additive across versions and old IDs keep resolving.

Gotchas

  • Analysis is a paid pass and takes 20–60s for a 60s reference. Cache the style_id, not the URL.
  • A look governs pacing and grade, not content. It will not make your footage look like someone else's footage.