@pixerate/editor 0.160.0 → 0.162.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/index.cjs +36 -35
- package/dist/agent/index.js +7 -6
- package/dist/animation/index.cjs +5 -4
- package/dist/animation/index.js +4 -3
- package/dist/animation-editor/index.cjs +62 -61
- package/dist/animation-editor/index.js +6 -5
- package/dist/canvas/index.cjs +33 -32
- package/dist/canvas/index.js +6 -5
- package/dist/chart/index.cjs +88 -87
- package/dist/chart/index.js +7 -6
- package/dist/{chunk-QMI5HZWA.cjs → chunk-236TKNUR.cjs} +3 -3
- package/dist/{chunk-6UPGM3JB.js → chunk-2TKHLX6H.js} +1 -1
- package/dist/{chunk-3YDQLQH2.cjs → chunk-32MMQYCQ.cjs} +81 -81
- package/dist/{chunk-MHEXLG3M.cjs → chunk-3GJH2MGH.cjs} +37 -37
- package/dist/{chunk-AKDWAWSY.cjs → chunk-3IHNXRUV.cjs} +45 -45
- package/dist/{chunk-VKF3PWKR.cjs → chunk-3OSXHLIT.cjs} +259 -28
- package/dist/{chunk-TVO6W2Q6.cjs → chunk-4NGVHHJB.cjs} +17 -17
- package/dist/chunk-4VU4CP7R.js +769 -0
- package/dist/chunk-6DM3PUQD.cjs +767 -0
- package/dist/{chunk-DBIVICAO.js → chunk-7CKPUUN4.js} +1 -1
- package/dist/{chunk-57JLBGJ5.cjs → chunk-7YBDRJXT.cjs} +8 -8
- package/dist/{chunk-KY3FYKP3.js → chunk-BQWGN5WH.js} +1 -1
- package/dist/{chunk-LEUZ4FRC.cjs → chunk-CIPIESX4.cjs} +3 -3
- package/dist/chunk-CJE5MOIS.js +347 -0
- package/dist/{chunk-5QBRAIVK.js → chunk-CX6JLDFC.js} +3 -3
- package/dist/{chunk-R3QY7PPL.js → chunk-DTSTNRPH.js} +1 -1
- package/dist/{chunk-6LUYFHHN.cjs → chunk-EQ46F75O.cjs} +51 -51
- package/dist/{chunk-UKCJ43YL.cjs → chunk-ES3UEVUT.cjs} +130 -898
- package/dist/{chunk-UM3RPYC5.js → chunk-EVPZ5IKN.js} +1 -1
- package/dist/{chunk-XNQ5EFB4.cjs → chunk-EY22AY6R.cjs} +16 -16
- package/dist/chunk-FKUKJ3XA.cjs +347 -0
- package/dist/{chunk-YABNLNY7.js → chunk-GLMP22FT.js} +3 -3
- package/dist/{chunk-SUF6WRXR.cjs → chunk-GTELFJRE.cjs} +2 -2
- package/dist/{chunk-72BGL3I2.js → chunk-GWV4T5NZ.js} +1 -1
- package/dist/{chunk-AY65VQSU.js → chunk-H3OEM3Q2.js} +1 -1
- package/dist/{chunk-4YWAEV4W.cjs → chunk-HDGBM7EA.cjs} +26 -26
- package/dist/{chunk-H5XX4KHB.js → chunk-HLOKB7WW.js} +5 -3
- package/dist/{chunk-WNAAWLZ5.js → chunk-KGTF55R3.js} +2 -2
- package/dist/{chunk-WPPJH6X4.cjs → chunk-LL3H5XUH.cjs} +6 -4
- package/dist/{chunk-4T44CJ5K.cjs → chunk-NA4UVVJ4.cjs} +15 -15
- package/dist/{chunk-Q6PA362P.js → chunk-NO5QQDHZ.js} +2 -2
- package/dist/{chunk-AA34BA7G.js → chunk-QYZGBVNC.js} +30 -798
- package/dist/chunk-S6X2QRVU.cjs +769 -0
- package/dist/{chunk-SSCL7QQ4.js → chunk-XDCFJEU7.js} +2 -2
- package/dist/{chunk-IQ6KKXOU.js → chunk-YN4AYYBJ.js} +243 -12
- package/dist/chunk-ZGOHKS3X.js +767 -0
- package/dist/color/index.cjs +6 -2
- package/dist/color/index.d.cts +1 -0
- package/dist/color/index.d.ts +1 -0
- package/dist/color/index.js +28 -24
- package/dist/color/suggest.d.cts +12 -0
- package/dist/color/suggest.d.ts +12 -0
- package/dist/effects/index.cjs +44 -771
- package/dist/effects/index.js +34 -761
- package/dist/effects/ui.d.cts +20 -3
- package/dist/effects/ui.d.ts +20 -3
- package/dist/export/index.cjs +6 -5
- package/dist/export/index.js +5 -4
- package/dist/extensions/index.cjs +9 -8
- package/dist/extensions/index.js +8 -7
- package/dist/gradient/index.cjs +28 -26
- package/dist/gradient/index.js +7 -5
- package/dist/image-editor/index.cjs +638 -637
- package/dist/image-editor/index.js +5 -4
- package/dist/index.cjs +15 -14
- package/dist/index.js +9 -8
- package/dist/paint-editor/index.cjs +17 -16
- package/dist/paint-editor/index.js +6 -5
- package/dist/typography/accessibility.d.cts +44 -0
- package/dist/typography/accessibility.d.ts +44 -0
- package/dist/typography/catalog.d.cts +98 -0
- package/dist/typography/catalog.d.ts +98 -0
- package/dist/typography/index.cjs +1099 -0
- package/dist/typography/index.d.cts +16 -0
- package/dist/typography/index.d.ts +16 -0
- package/dist/typography/index.js +1099 -0
- package/dist/typography/metrics.d.cts +31 -0
- package/dist/typography/metrics.d.ts +31 -0
- package/dist/typography/picker.d.cts +132 -0
- package/dist/typography/picker.d.ts +132 -0
- package/dist/typography/registry.d.cts +66 -0
- package/dist/typography/registry.d.ts +66 -0
- package/dist/typography/scale.d.cts +62 -0
- package/dist/typography/scale.d.ts +62 -0
- package/dist/typography/segment.d.cts +26 -0
- package/dist/typography/segment.d.ts +26 -0
- package/dist/typography/stack.d.cts +26 -0
- package/dist/typography/stack.d.ts +26 -0
- package/dist/typography/tools.d.cts +34 -0
- package/dist/typography/tools.d.ts +34 -0
- package/dist/typography/types.d.cts +96 -0
- package/dist/typography/types.d.ts +96 -0
- package/dist/typography/weight.d.cts +13 -0
- package/dist/typography/weight.d.ts +13 -0
- package/dist/vector/index.cjs +950 -949
- package/dist/vector/index.js +5 -4
- package/dist/video-editor/audio.d.cts +9 -0
- package/dist/video-editor/audio.d.ts +9 -0
- package/dist/video-editor/check.d.cts +1 -1
- package/dist/video-editor/check.d.ts +1 -1
- package/dist/video-editor/controller.d.cts +47 -0
- package/dist/video-editor/controller.d.ts +47 -0
- package/dist/video-editor/dialogue-tools.d.cts +19 -0
- package/dist/video-editor/dialogue-tools.d.ts +19 -0
- package/dist/video-editor/effect-authoring.d.cts +54 -0
- package/dist/video-editor/effect-authoring.d.ts +54 -0
- package/dist/video-editor/evaluate.d.cts +11 -0
- package/dist/video-editor/evaluate.d.ts +11 -0
- package/dist/video-editor/export.d.cts +7 -1
- package/dist/video-editor/export.d.ts +7 -1
- package/dist/video-editor/index.cjs +1857 -531
- package/dist/video-editor/index.d.cts +7 -0
- package/dist/video-editor/index.d.ts +7 -0
- package/dist/video-editor/index.js +1516 -190
- package/dist/video-editor/lut.d.cts +12 -2
- package/dist/video-editor/lut.d.ts +12 -2
- package/dist/video-editor/mask.d.cts +48 -0
- package/dist/video-editor/mask.d.ts +48 -0
- package/dist/video-editor/mix.d.cts +107 -0
- package/dist/video-editor/mix.d.ts +107 -0
- package/dist/video-editor/music-tools.d.cts +19 -0
- package/dist/video-editor/music-tools.d.ts +19 -0
- package/dist/video-editor/parse.d.cts +3 -1
- package/dist/video-editor/parse.d.ts +3 -1
- package/dist/video-editor/plan.d.cts +75 -0
- package/dist/video-editor/plan.d.ts +75 -0
- package/dist/video-editor/render.d.cts +1 -1
- package/dist/video-editor/render.d.ts +1 -1
- package/dist/video-editor/timeline.d.cts +2 -0
- package/dist/video-editor/timeline.d.ts +2 -0
- package/dist/video-editor/tools.d.cts +90 -0
- package/dist/video-editor/tools.d.ts +90 -0
- package/dist/video-editor/transcript-controller.d.cts +106 -0
- package/dist/video-editor/transcript-controller.d.ts +106 -0
- package/dist/video-editor/transcript.d.cts +40 -0
- package/dist/video-editor/transcript.d.ts +40 -0
- package/dist/video-editor/types.d.cts +62 -2
- package/dist/video-editor/types.d.ts +62 -2
- package/dist/video-editor/ui.d.cts +21 -1
- package/dist/video-editor/ui.d.ts +21 -1
- package/package.json +11 -1
- package/skills/README.md +3 -0
- package/skills/pixerate-bgm-alignment/SKILL.md +82 -0
- package/skills/pixerate-talking-head-edit/SKILL.md +80 -0
- package/skills/pixerate-typography/SKILL.md +91 -0
- package/skills/pixerate-video-editor/SKILL.md +40 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pixerate-video-editor
|
|
3
|
-
description: How to edit video projects in the Pixerate non-linear video editor through its agent tools - adding video, audio and image assets, building a rough cut on video and audio tracks, inserting, overwriting, moving, trimming, splitting and ripple-deleting clips, slip, slide and roll edits, lift and extract of a time range, razor cuts across tracks, sync-locked tracks, keyframed opacity, volume and transform, closing gaps, titles and colour clips, fades, volume and speed, crossfade, dip and wipe transitions with handles, J and L cuts, markers, checking the project, provider effects (clip effects, effect clips, effect transitions), rendering frames and contact sheets, and exporting an ffmpeg command or a CMX 3600 EDL. Use when video tools such as get_video_project, add_video_clip or edit_video are available, or when asked to cut, trim, assemble, sequence or export footage on a timeline.
|
|
3
|
+
description: How to edit video projects in the Pixerate non-linear video editor through its agent tools - adding video, audio and image assets, building a rough cut on video and audio tracks, inserting, overwriting, moving, trimming, splitting and ripple-deleting clips, slip, slide and roll edits, lift and extract of a time range, razor cuts across tracks, sync-locked tracks, keyframed opacity, volume and transform, closing gaps, titles and colour clips, fades, volume and speed, crossfade, dip and wipe transitions with handles, J and L cuts, markers, checking the project, adjustment clips over tracks, clip masks, skin-tone protected LUTs, edit plans proposed for review before they apply, provider effects (clip effects, effect clips, effect transitions), rendering frames and contact sheets, and exporting an ffmpeg command or a CMX 3600 EDL. Use when video tools such as get_video_project, add_video_clip or edit_video are available, or when asked to cut, trim, assemble, sequence or export footage on a timeline.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Pixerate video editor
|
|
@@ -60,7 +60,13 @@ For errors, namespaced tool names and undo conventions, see `pixerate-agent-tool
|
|
|
60
60
|
`export_video_edl` (one track) for finishing elsewhere. Read the returned notes. For a
|
|
61
61
|
delivery loudness, have the host run `export_video_loudness_measure` first and pass what it
|
|
62
62
|
prints as `loudness.measured`; one pass (`loudness` without `measured`) is fine for a draft.
|
|
63
|
-
10. **
|
|
63
|
+
10. **Plan first when the user should see it.** For anything big or judgement-heavy (a rough cut,
|
|
64
|
+
a cleanup, cutting to music), propose it with `plan_video_edits` (or a `plan_*` tool from
|
|
65
|
+
the dialogue and music skills) instead of applying it: the project does not change, the
|
|
66
|
+
editor shows the plan with its length change and the stretches it cuts, and you apply it
|
|
67
|
+
with `apply_video_edit_plan` once the user agrees (or `discard_video_edit_plan`).
|
|
68
|
+
`list_video_edit_plans` shows what is waiting and whether the project changed since.
|
|
69
|
+
11. **Effects** (only when the host registered an effects provider; `search_effects` says
|
|
64
70
|
`available: false` otherwise): `search_effects` with a `use`, then `describe_effect` for its
|
|
65
71
|
controls, then `apply_effect` (filters and overlays on a clip), `set_video_effect_transition`
|
|
66
72
|
or `add_video_effect_clip` (generators and titles). Tune with `update_effect` and
|
|
@@ -135,6 +141,21 @@ For errors, namespaced tool names and undo conventions, see `pixerate-agent-tool
|
|
|
135
141
|
full strength). A LUT runs after the grade's settings, so correct exposure and white balance
|
|
136
142
|
first; LUTs built for log footage expect a flat picture and look crushed on normal video. Check with `render_video_frame` at a
|
|
137
143
|
few times side by side. Skin tones are the reference: avoid strong `hue` or `tint` on people.
|
|
144
|
+
- **Adjustment clips for looks across shots.** Rather than grading every clip of a scene the
|
|
145
|
+
same, `add_video_adjustment_clip` on a track above them with the look (`grade`, a `preset` at
|
|
146
|
+
an `amount`, or effects with `apply_effect` on the adjustment clip): it changes everything
|
|
147
|
+
underneath while it plays, so trims and new shots pick the look up. Scope `all` includes
|
|
148
|
+
titles and tracks above it; scope `track` limits it to one track. Fade it in and out
|
|
149
|
+
(`fadeIn` / `fadeOut`) to ease a look on, and give it a mask to limit it to part of the frame.
|
|
150
|
+
- **Masks for spot changes.** `set_video_clip_mask` cuts a clip to a shape (`ellipse` for a
|
|
151
|
+
face or a vignette, `rectangle` with `corner_radius` for picture-in-picture, `linear` for a
|
|
152
|
+
split screen or a graduated sky, `polygon` for anything else) with a `feather` of 20-80 px so
|
|
153
|
+
the edge does not show. On an adjustment clip the mask limits the adjustment, so a feathered
|
|
154
|
+
ellipse over a face brightens just the face.
|
|
155
|
+
- **Protect skin under heavy looks.** Creative LUTs push faces orange or green. Give the LUT
|
|
156
|
+
`preserve_skin_tones` (0.5-0.8) in `set_video_lut`, or `set_video_skin_protection` afterwards,
|
|
157
|
+
so skin keeps its colour while the rest takes the look. Skin is found by colour, so warm
|
|
158
|
+
beige props are protected too; check with `render_video_frame`.
|
|
138
159
|
- **Measure, don't eyeball.** Where the host shows a preview, `get_video_scopes` reads the real
|
|
139
160
|
picture: keep `clipped.highlights` under about 1% and `clipped.shadows` under about 2% unless
|
|
140
161
|
the look calls for it, and aim for a mean luma of roughly 0.35-0.55 for ordinary scenes. A
|
|
@@ -219,6 +240,10 @@ For errors, namespaced tool names and undo conventions, see `pixerate-agent-tool
|
|
|
219
240
|
| `delete_video_clips` | Remove `clips`; `ripple: true` pulls later clips up to close the gaps (a ripple delete). |
|
|
220
241
|
| `update_video_clip` | Change properties via `set`: opacity, transform (`x`, `y` px from centre, `scale`, `rotation`), `fit` (contain default for media, cover, fill, none), `animateIn` / `animateOut` (`{ effect: fade, rise, drop, slide-left, slide-right, zoom or pop, duration ms default 500 }`), `grade` (`exposure` stops -3-3, `contrast`, `saturation`, `temperature`, `tint` -1-1, `hue` degrees; replaces the whole grade), `blend` (normal, multiply, screen, overlay, darken, lighten, color-dodge, color-burn, hard-light, soft-light, difference, exclusion, add), `fadeIn` / `fadeOut`, name; media `volume` (0-4), `muted`, `fadeInCurve` / `fadeOutCurve` (the sound's fade shape: linear, equal-power, s-curve, exponential, logarithmic), `speed` (0.05-20, keeps the source range so the length changes), `asset`; title text and style; colour. `remove` resets to defaults. Not for timing. |
|
|
221
242
|
| `set_video_lut` | Give `clips` (on video tracks) a 3D LUT: `src` a `.cube` file the host can load and ffmpeg can read, `strength` 0-1 (default 1). Reads the file first and fails without changing anything if it cannot be loaded or is not a 3D `.cube`. Keeps the clips' other grade settings; the LUT runs after them. One undo step; returns the LUT's `title` and `size` and each clip's grade. Copies with `copy_video_grade`. |
|
|
243
|
+
| `set_video_skin_protection` | Hold the LUT back on skin tones for `clips` that already have one: `amount` 0-1 (0 turns protection off). Fails for clips without a LUT (add one with `set_video_lut`). One undo step; returns each clip's LUT setting. The preview and frame renders apply it; ffmpeg's `lut3d` cannot, so the export notes it. |
|
|
244
|
+
| `add_video_adjustment_clip` | Add an adjustment clip on a video `track` (`start`, `duration` default 3000 ms): no picture of its own, but its `grade` (or a `preset` at `amount`), effects (`apply_effect` on it) and mask change the pictures in its `scope` while it plays: `underneath` (tracks below it, default), `all` (the whole frame) or `track` with `target_track`. Returns the clip; a hint says when it has nothing to apply yet. Edit it like any clip (`update_video_clip` `grade`, `scope`, `targetTrack`; trims; fades). |
|
|
245
|
+
| `set_video_clip_mask` | Cut a clip's picture to a `shape` (`rectangle`, `ellipse`, `linear`, `polygon` with `points`): `x`, `y` centre and `width`, `height` as fractions of the clip's placed picture (default 0.5 each), `rotation` degrees, `feather` px, `corner_radius` 0-1 (rectangles), `inverted` to keep the outside. Replaces any mask; one undo step; returns the clip. On an adjustment clip it limits the adjustment. ffmpeg exports then need rendered frames. |
|
|
246
|
+
| `remove_video_clip_mask` | Take a clip's mask off (one undo step). Fails if it has none. |
|
|
222
247
|
| `remove_video_lut` | Take the LUT off `clips`' grades, keeping their other settings (one undo step). Fails if none has one. |
|
|
223
248
|
| `apply_video_grade_preset` | Give `clips` (on video tracks) a named look at an `amount` 0-1 (default 1), replacing their grade settings (a LUT stays): warm, cool, punchy, faded, black-and-white, bleach-bypass, day-for-night. One undo step; returns each clip's grade to fine-tune with `update_video_clip`. |
|
|
224
249
|
| `copy_video_grade` | Match shots: give the `to` clips the grade of the `from` clip (one undo step; a source with no grade clears theirs). Returns the grade copied. |
|
|
@@ -231,6 +256,10 @@ For errors, namespaced tool names and undo conventions, see `pixerate-agent-tool
|
|
|
231
256
|
| `close_video_gaps` | Slide clips on a `track` earlier so no gaps remain, from time `from` (default the start). Returns the clips that moved. |
|
|
232
257
|
| `add_video_marker` | Add a marker at `time` with `label`, `color` and optional `id`, for beats, sections or review notes. Returns its id. |
|
|
233
258
|
| `remove_video_marker` | Remove a `marker` by id. |
|
|
259
|
+
| `plan_video_edits` | Propose `ops` (as for `edit_video`) with a `title` (also the undo label), an optional `description` and the `ranges` it cuts, without applying them. Fails, keeping nothing, if they do not apply. Returns the plan: id, summary (`durationBefore`, `durationAfter`, `durationDelta`, `clipsAdded`, `clipsRemoved`, `clipsChanged`, `newIssues`), ranges and a one-line `text`. The editor shows it for review. Follow with `apply_video_edit_plan` or `discard_video_edit_plan`. |
|
|
260
|
+
| `list_video_edit_plans` | The plans waiting for review, oldest first, each with its summary, ranges and `stale` (the project changed since it was made; it is re-checked when applied). |
|
|
261
|
+
| `apply_video_edit_plan` | Apply an open `plan` as one undo step labelled with its title and close it. A stale plan is checked again and refused, changing nothing, if its edits no longer apply. Returns the outcomes, length, issues and `stale`. |
|
|
262
|
+
| `discard_video_edit_plan` | Close an open `plan` without applying it. Returns the plans still open. |
|
|
234
263
|
| `edit_video` | Apply up to 200 ops in order as one all-or-nothing undo step: `set_settings`, `add_asset { asset }`, `update_asset`, `remove_asset`, `add_track { track: { kind, id }, at }`, `update_track`, `remove_track`, `move_track`, `add_clip { track, clip, mode }`, `move_clip { clip, start, track, mode }`, `trim_clip`, `split_clip`, `delete_clips`, `update_clip`, `set_transition`, `slip_clip`, `roll_edit`, `slide_clip`, `lift_range`, `extract_range`, `split_at`, `set_keyframes { clip, property, keys }` (null keys remove), `set_time_remap { clip, keys (clip ms to source ms after the in point; null removes), duration, ripple }`, `close_gaps`, `add_marker { marker: { time, label } }`, `update_marker`, `remove_marker`; other fields match the single tools. `dry_run: true` validates only. The default for a rough cut. |
|
|
235
264
|
| `undo_video` | Undo your last edit (one tool call or one `edit_video` batch). |
|
|
236
265
|
| `redo_video` | Redo the edit you just undid. |
|
|
@@ -268,6 +297,15 @@ The host may add the shared document tools (see `pixerate-agent-tools`). A video
|
|
|
268
297
|
|
|
269
298
|
## Pitfalls
|
|
270
299
|
|
|
300
|
+
- **An adjustment clip changes only tracks below it** (scope `underneath`). Put it on a new top
|
|
301
|
+
track (`add_video_track` with `at: 0`), or use scope `all`. Adjustment clips have no sound and
|
|
302
|
+
are left out of EDLs; ffmpeg exports draw a plain grade or full-strength LUT at full opacity
|
|
303
|
+
over what is underneath or the whole frame, and refuse anything else (fades, part opacity,
|
|
304
|
+
scope `track`, masks) unless the host renders frames with `renderVideoFrameExact`.
|
|
305
|
+
- **Plans go stale.** A plan is worked out against the project as it was. Applying it after
|
|
306
|
+
other edits re-checks it; if it no longer applies, discard it and plan again rather than
|
|
307
|
+
forcing the old ops through `edit_video`.
|
|
308
|
+
|
|
271
309
|
- With agent playback on, the cursor drags a moved or trimmed clip to its new time, clicks a track where a clip goes in, and clicks the ruler where a split, seek or marker lands. Give real `start` / `at` times in ms; results are unchanged.
|
|
272
310
|
- **Effects need rendered frames to export.** ffmpeg cannot draw provider effects, so
|
|
273
311
|
`export_video_ffmpeg` refuses a project with enabled effects unless the host renders the
|