@gitruck/cli 1.0.2 → 1.0.5

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/README.md CHANGED
@@ -27,18 +27,22 @@
27
27
  |---|---|---|
28
28
  | 🎬 | `gtrk oralcut <毛片>` | 智能口播剪辑闭环:一次出 gtrk + 剪映 + PR 三方工程,自动打开 |
29
29
  | ✂️ | `gtrk long2short <毛片>` | 长剪短闭环:长视频语义选段+跳剪(可选 720p 代理智能分屏)→ 逐 clip 出 gtrk + 剪映 + PR 三方工程(毛片不上传)。**只要成片、不再二次编辑请走精剪** `gtrk tool video_long2short_pro` |
30
- | 📝 | `gtrk transcript <本地视频>` | 视频转文字稿:原视频不上传,只传本地抽取音频,生成一个含总结、时码记录和纯文本的 Markdown |
30
+ | 📝 | `gtrk transcript <本地视频\|配音音频>` | 视频/音频转文字稿:原文件不上传,只传本地抽取(音频输入则转码)的 16k 音频衍生物,生成一个含总结、时码记录和纯文本的 Markdown;`--json` 时另产句级时码 `transcript.json`(`gtrk project init` 兜底路输入) |
31
31
  | 🎵 | `gtrk music-visualizer <音频>` | 音乐可视化:一首歌 → 频谱可视化成片(`--template` 必填 + 可选背景/封面 + 模板/配色样式),配套 driver skill `gtrk-music-visualizer` |
32
32
  | ✂️ | `gtrk split [拆分稿]` | 视觉拆分派单器:成片 × transcript 投影 → beat 分镜校验落地(`struct_meta.split` + `dispatch.json`),驱动四车道派单;`--column <id>` 按栏目词表校验 |
33
33
  | ⚙️ | `gtrk init` | 引导式一次性配置(API Key + 剪映草稿目录),之后免管 |
34
34
  | 🩺 | `gtrk doctor` | 体检:配置 / 云端连通 / 剪映目录 / 运行时一键自检 |
35
35
  | 📦 | `gtrk deps` | 运行时资产:`status` 查 ffmpeg/字体的来源与授权,`install` 从同合云镜像装(**须显式触发,绝不静默自动下载**) |
36
- | 🤖 | `gtrk skills install` | 通过通用 `skills` 适配器和 gtrk 补充层,把 10 个 CLI 自带 skill 装进本机检测到的主流 Agent;`--all` 可覆盖全部已登记宿主 |
36
+ | 🤖 | `gtrk skills install` | 通过通用 `skills` 适配器和 gtrk 补充层,把 12 个 CLI 自带 skill 装进本机检测到的主流 Agent;`--all` 可覆盖全部已登记宿主 |
37
37
  | ⬆️ | `gtrk upgrade` | 升级 CLI 到最新版 + 刷新 skill(配置保留);`--check` 只查不装 |
38
- | 🎞️ | `gtrk render` | 本地渲染 gtrk 工程(EDL)→ 成片 mp4(需 ffmpeg |
39
- | 🔎 | `gtrk matrix` | B-roll 检索+**候选铺轨**:消费 FILM_BROLL 派单 → 产候选清单 + 下载 preview 代理铺 N 条候选轨(`--lay N` 默认 1,opencut 打开即可用轨道小眼睛对比;`--lay 0` 只出清单);`matrix search "<词>"` 单条 ad-hoc |
38
+ | 🎞️ | `gtrk render` | 本地渲染 gtrk 工程(EDL)→ 成片 mp4(需 ffmpeg);输出帧按时间线**累计对齐**(逐段取整误差不累加,画面不会对配音渐进失步);渲完自动质检并落 `.qc.json`(`--no-qc` 跳过) |
39
+ | 🔬 | `gtrk qc <成片>` | 成片质检:单趟扫全片查闪帧/黑帧/冻结/爆音/静音/音画不同步,带时码定位;`--gtrk <工程>` 开工程感知识别**段内跳切**,`--fail-on error\|warn\|never` 供管线门控 |
40
+ | 🔎 | `gtrk matrix` | B-roll 检索+**候选铺轨**:消费 FILM_BROLL 派单 → 产候选清单 + 下载 preview 代理铺 N 条候选轨(`--lay N` 默认 1,opencut 打开即可用轨道小眼睛对比;`--lay 0` 只出清单);`matrix search "<词>"` 单条 ad-hoc;**本地素材模式**:`matrix index --dirs <素材夹>` 免切片建索引 → `--local --dirs` 检索铺轨(**素材本体不上云**)→ `matrix lay` 消费(可编辑的)plan;`matrix describe` 按需理解候选 |
40
41
  | 🎨 | `gtrk mg` | MG 动态图颗粒铺轨:消费 MG 派单 → 把 html-particle 颗粒(透明叠加 / 满屏底层,由你栏目的 MG 生产 skill 所产)铺进 `.gtrk` 的 beat_track;`mg lint <颗粒.html>` 铁律静态子集校验、`mg status --project <dir>` 编排看板(缺 HTML / 已产未铺 / 已铺);aux 叠层颗粒同段多铺(一 beat 派生主 + `-aux<n>`)。旧名 `gtrk rrv` 保留为弃用别名 |
42
+ | 🎙️ | `gtrk project init` | 音频驱动工程起盘:从一条配音建 `.gtrk` 工程——主路 `--tts-task <task_id>` 引用已完成的 TTS 配音任务(直取产物音频+句级时码,零 ASR);兜底 `--audio`+`--transcript` 自备配音成对给。落好即可 `gtrk split --project` 接成片流水线 |
43
+ | 🎼 | `gtrk audio lay` | 音频轨零件:往 `.gtrk` 工程追加一条音频轨(BGM/配乐上轨,同源幂等替换不堆轨);`--beat-align` 云端节拍分析把入点吸附最近 downbeat(计费一次,无 Key/失败自动降级不失败) |
41
44
  | 🧰 | `gtrk tool <name>` | 单点工具族:图转运镜、图片/视频抠像、图片去黑边/比例转换/净化/转方图/LivePhoto、智能拼图封面/拼长图(多图输入)、视频去黑边/比例转换/防抖/蒸汽波滤镜/机械·智能分镜/运镜高光/智能字幕、人声伴奏分离/说话人分轨/变调变速、钢琴转MIDI/修复、音视频降噪、静音移除、MAD 等;`gtrk tool list` 查全部输入/产物/实时价格/状态。单发单收、共享 runner,接新工具只加一个 descriptor |
45
+ | 💬 | `gtrk feedback` | 把用得不顺手的地方反馈给我们:`gtrk feedback "<一句话>" --command <命令名>`。**告知式提交**——助手代提时必须先把要发的内容原样念给你、得到同意后才加 `--disclosed` 重跑;管道/非交互环境下没有这句声明会直接拒发。发送前内容会先做一遍脱敏(本机路径、凭据、邮箱、手机号等按形态替换),你看到的就是将要发出的那一份 |
42
46
  | 🚧 | `struct` | (规划中)已有 gtrk 转三方工程 |
43
47
 
44
48
  ---
@@ -90,6 +94,46 @@ gtrk transcript "D:/素材/采访视频.mp4"
90
94
 
91
95
  各车道**按次序铺、每步留检查点**:先把 B-roll 底轨三源铺齐(影视素材 / 本地素材 / AI 情景片段)→ 你调好 → 抽帧核一遍画面构图 → 最后才把 MG(含 ov)叠上去。你对话推进每一步,agent 替你跑对应命令。
92
96
 
97
+ **三种入链,一个汇合点。** 素材长什么样决定你走哪条;拿到「工程 + 文稿」之后,三条链完全一样:
98
+
99
+ ```
100
+ ① 口播链 你对着镜头讲的一条口播 gtrk oralcut
101
+ 短视频口播 / 人文社科杂谈 照稿剪掉重来·口误·长停顿
102
+
103
+ ② 配音链 你写的一段稿子 → AI 配音 gtrk project init
104
+ 电影解说 / 美食解说 先把配音调舒服,再建工程
105
+
106
+ ③ 长剪短 一条几十分钟的长素材 gtrk long2short
107
+ 播客·圆桌·脱口秀·访谈·直播回放 挑出值得单发的,逐条出工程
108
+
109
+ ══════════ 工程 + 文稿 ══════════ ← 汇合点:往下三条链一样
110
+
111
+ ┌───────────────────────┴───────────────────────┐
112
+ │ │
113
+ 配画面(可选,次序不能跳) 只想快点出片
114
+ │ │
115
+ gtrk split 把文稿分段派活 │
116
+ ↓ │
117
+ gtrk matrix 按文稿铺 B-roll │
118
+ ↓ │
119
+ AI 再现(可选) 外部平台出片 → 手动回铺 │
120
+ ↓ │
121
+ 客户端挑选 抽帧核构图 ← 底轨定稿前别往下走 │
122
+ ↓ │
123
+ gtrk mg MG 主颗粒 + OV 叠层,最后才叠 │
124
+ ↓ │
125
+ gtrk audio lay 全片加 BGM(可选) │
126
+ │ │
127
+ └───────────────────────┬───────────────────────┘
128
+
129
+ 客户端:上字幕 → 出片
130
+ (或导出剪映草稿 / PR 工程)
131
+ ```
132
+
133
+ **记两件事就够**:① **底下的先铺、盖在上面的最后叠**——B-roll 与 AI 再现同属底轨画面(并列的两条腿),动态图(MG 主颗粒 + OV 透明叠层)是唯一的叠加层,底轨没定稿就叠等于白做;② 出片永远在客户端或你自己的剪辑软件里完成,CLI 只负责把料铺进工程。
134
+
135
+ > 三条链各自的完整走法(含每步产物、常见问题)见使用教程的子页:**口播链**(短视频口播 / 人文社科杂谈)· **配音链**(电影解说 / 美食解说)· **长剪短**(播客 / 圆桌 / 脱口秀 / 访谈 / 直播回放)。
136
+
93
137
  | 步 | 你对 agent 说 | agent 替你做 | 你可以介入 |
94
138
  |:--:|---|---|---|
95
139
  | ① | 「帮我把这条口播**剪一版**」 | `/gtrk-oralcut` → `gtrk oralcut` → 三方工程 + transcript | — |
@@ -115,6 +159,7 @@ gtrk transcript "D:/素材/采访视频.mp4"
115
159
  | 报告丢了 / 换台机器再拉产物 | 「用 taskId 取回上次的」→ `gtrk oralcut-result <taskId>`(跳过重跑云端) |
116
160
  | 想在几个 B-roll 候选里挑 | 「B-roll 多铺几条候选」→ `gtrk matrix --lay N`,opencut 里用轨道小眼睛切换对比 |
117
161
  | B-roll 填充太差 / 有空槽 | 调 `--score-floor` / `--top-k` 重跑,或「单独搜个词」→ `matrix search "<词>"` 补 |
162
+ | 想用自己的素材铺 B-roll | 「用我本地的素材铺」→ `gtrk matrix index --dirs <素材夹>` 建索引后 `gtrk matrix --local --dirs … --project …`(**素材本体不上云**,详见命令参考 matrix 节) |
118
163
  | 画面 / 颗粒要逐帧精修 | opencut 打开工程手调(agent 铺好的是**可编辑工程**,不是死片) |
119
164
  | 连不上 / 配置出问题 | 「体检一下」→ `gtrk doctor`(配置 / 云端 / 剪映目录 / 版本一键自检) |
120
165
  | 有新版 | 「升级」→ `gtrk upgrade`(升 CLI + 刷 skill,配置保留) |
@@ -172,7 +217,7 @@ irm https://api.ai-mcn.tv:9000/broadcast/exe/install.ps1 | iex
172
217
  | ![在 Agent 中调用 gtrk 示例 1](assets/agent-example-1.png) | ![在 Agent 中调用 gtrk 示例 2](assets/agent-example-2.png) |
173
218
  | ![在 Agent 中调用 gtrk 示例 3](assets/agent-example-3.png) | ![在 Agent 中调用 gtrk 示例 4](assets/agent-example-4.png) |
174
219
 
175
- `gtrk install` 会把 11 个 CLI 自带 skill(`gtrk-oralcut`·`gtrk-long2short`·`gtrk-splitter`·`gtrk-matrix`·`gtrk-mg`·`gtrk-ai-drama`·`gtrk-style-maker`·`gtrk-transcript`·`gtrk-tools`·`gtrk-music-visualizer`·`gtrk-cover`)装进本机检测到的 Agent。实现方式与 lark-cli 一致:gtrk 把本地 skill 源交给通用 `skills` CLI,由它维护 Agent 探测、目录映射及更新规则;gtrk 不再硬编码各家路径。
220
+ `gtrk install` 会把 12 个 CLI 自带 skill(`gtrk-oralcut`·`gtrk-long2short`·`gtrk-splitter`·`gtrk-matrix`·`gtrk-mg`·`gtrk-ai-drama`·`gtrk-style-maker`·`gtrk-transcript`·`gtrk-tools`·`gtrk-music-visualizer`·`gtrk-cover`)装进本机检测到的 Agent。实现方式与 lark-cli 一致:gtrk 把本地 skill 源交给通用 `skills` CLI,由它维护 Agent 探测、目录映射及更新规则;gtrk 不再硬编码各家路径。
176
221
 
177
222
  默认使用 `~/.agents/skills` 作为统一正本,再链接到各 Agent 的兼容目录(Windows 使用 junction);链接不可用时适配器会回退复制。这样更新只有一份正本,不会让多份副本逐渐漂移。常用命令:
178
223
 
@@ -212,13 +257,14 @@ gtrk skills install --copy
212
257
  | ⑤ | `/gtrk-mg` | `gtrk mg` | **MG(含 ov)最后叠上**(叠在已定稿、构图已核的底轨之上) |
213
258
  | — | `/gtrk-style-maker` | (无命令,建栏目) | 一次性访谈式建你栏目的风格体系(skill 家族 + 栏目配置,见下节) |
214
259
  | — | (收口) | `gtrk render` | 本地渲染 gtrk 工程 → 成片 mp4 |
215
- | 📝 | `/gtrk-transcript` | `gtrk transcript` | 本地视频一个含 Agent 总结、时码记录和纯文本的 Markdown,**不在成片 SOP 序列内** |
260
+ | ✂️ | `/gtrk-long2short` | `gtrk long2short` | 长剪短·粗剪:长视频语义选段+跳剪 clip 出客户端/剪映/PR 三方工程(毛片不上传),**不在成片 SOP 序列内**、随时可独立用 |
261
+ | 📝 | `/gtrk-transcript` | `gtrk transcript` | 本地视频/配音音频 → 一个含 Agent 总结、时码记录和纯文本的 Markdown,**不在成片 SOP 序列内** |
216
262
  | 🧰 | `/gtrk-tools` | `gtrk tool <name>` | 单点工具族(图转运镜 / 图片·视频抠像…)——单发单收,**不在成片 SOP 序列内**、随时可独立用 |
217
263
  | 🎵 | `/gtrk-music-visualizer` | `gtrk music-visualizer` | 一首歌 → 频谱可视化成片(模板 + 可选背景/封面 + 配色样式),**不在成片 SOP 序列内**、独立引流用 |
218
264
  | 🖼️ | `/gtrk-cover` | (无命令,纯创作) | 封面工作台两阶段:设计诊断 + 三尺寸中英双版文生图 Prompt → 用户外部平台抽图 → H5 排字工作台(拖拽/滚轮微调、一键导出多尺寸 PNG)。栏目封面审美经栏目配置 `style.skills`(`produces:"cover"`)注入;**不在成片 SOP 序列内**(投放配套的「第 0 阶段」) |
219
265
 
220
266
  > **skill 与命令的区别**:`/gtrk-mg` 是**脑**——懂它在 SOP 第 ⑤ 步(B-roll 三源全齐、构图核过才铺 MG)、带用户确认、按栏目配置解析该产哪种颗粒;`gtrk mg` 是**手**——纯确定性 lint + 铺轨。你对话触发 skill,skill 替你跑命令。
221
- > 上面 10 个 `/gtrk-X` 都是 **CLI 自带框架 skill**(`gtrk skills install` 装)——`/gtrk-transcript` 独立驱动视频转文字稿,`/gtrk-tools` 只负责单点工具族,`/gtrk-cover` 管封面,三者都不属成片 SOP 序列;`/gtrk-ai-drama`·`/gtrk-style-maker`·`/gtrk-cover` 是纯创作 skill(无命令)。栏目专属的**视觉风格/生产内容**另由你栏目的生产 skill(`/gtrk-style-maker` 产、经栏目配置 `style.skills` 绑定)供,不写死在这些框架 skill 里。
267
+ > 上面 11 个 `/gtrk-X` 都是 **CLI 自带框架 skill**(`gtrk skills install` 装)——`/gtrk-long2short` 独立驱动长剪短,`/gtrk-transcript` 独立驱动视频/音频转文字稿,`/gtrk-tools` 只负责单点工具族,`/gtrk-cover` 管封面,四者都不属成片 SOP 序列;`/gtrk-ai-drama`·`/gtrk-style-maker`·`/gtrk-cover` 是纯创作 skill(无命令)。栏目专属的**视觉风格/生产内容**另由你栏目的生产 skill(`/gtrk-style-maker` 产、经栏目配置 `style.skills` 绑定)供,不写死在这些框架 skill 里。
222
268
 
223
269
  **各车道的具体视觉/内容怎么产**——MG 动态图长什么样、AI 再现什么调性——不写死在 CLI 里,而由**你自己栏目的生产 skill** 提供(用 `/gtrk-style-maker` 访谈式产出、留本地)。它们经**栏目配置 `style.skills[].produces`**(值 = 车道名)绑定,`gtrk mg` / `gtrk matrix` 等**通用驱动器**据此消费。**驱动方向 = CLI 驱动栏目 skill**:栏目 skill 只供风格/内容、不含任何「跑哪条命令」的编排职责;框架只认车道与管线接口,画面风格永远归你的栏目。不建栏目就用内置默认,端到端照常跑。
224
270
 
@@ -278,9 +324,9 @@ gtrk init --api-key <KEY> --jianying-draft-dir auto -y
278
324
 
279
325
  ## 命令参考
280
326
 
281
- ### `gtrk transcript <本地视频>`
327
+ ### `gtrk transcript <本地视频|配音音频>`
282
328
 
283
- 把本地视频转为一个多层级的 Markdown 文字稿。只接受本地视频路径:CLI 在本机抽取 16 kHz 单声道音频,只上传音频衍生物,原视频不会上传,也不支持 URL 或平台视频下载。
329
+ 把本地视频或配音音频转为一个多层级的 Markdown 文字稿。只接受本地文件路径:视频在本机抽取、音频在本机转码为 16 kHz 单声道音频,只上传音频衍生物,原文件不会上传,也不支持 URL 或平台视频下载。
284
330
 
285
331
  ```bash
286
332
  gtrk transcript "D:/素材/采访视频.mp4"
@@ -293,7 +339,9 @@ gtrk transcript "D:/素材/采访视频.mp4" --lang zh-CN --out "D:/文字稿/
293
339
  2. `## 文字记录`:以 `[00:01:23]` 开头的可读段落;
294
340
  3. `## 纯文本`:完整识别正文,便于整段复制。
295
341
 
296
- 实时计费在运行前从官网价格表按 `asr` 查询,CLI 与文档不保存价格数字。`--json` 的 stdout 只输出 `{ok,taskId,fileId,output,summaryPending}`,其中 `output` 指向这一个 Markdown;`summaryPending:true` 表示 `/gtrk-transcript` 驱动 Agent 还需生成语义总结、原地替换待总结标记,完成后仍只交付同一个文件。
342
+ 实时计费在运行前从官网价格表按 `asr` 查询,CLI 与文档不保存价格数字。`--json` 的 stdout 只输出 `{ok,taskId,fileId,output,transcriptJson,summaryPending}`,其中 `output` 指向这一个 Markdown;`summaryPending:true` 表示 `/gtrk-transcript` 驱动 Agent 还需生成语义总结、原地替换待总结标记,完成后仍只交付同一个文件。
343
+
344
+ > `--json` 时另在源文件旁产一份句级时码 `<名>-transcript.json`(`utterances[]{id,text,st,ed}` + `material_id` + `text_hash` + `duration`,与 `gtrk split` 的 transcript 结构逐字段对齐),可直接被 `gtrk project init --transcript` 兜底路消费。**TTS 合成的配音勿走本零件重跑 ASR**——`gtrk project init --tts-task` 直取服务端句级时码,零 ASR 零额外计费。
297
345
 
298
346
  ### `gtrk oralcut <毛片>`
299
347
 
@@ -370,6 +418,23 @@ gtrk transcript "D:/素材/采访视频.mp4" --lang zh-CN --out "D:/文字稿/
370
418
  >
371
419
  > **纯黑底垫轨**:默认在全部候选轨之下、口播主轨之上垫一条纯黑底轨(`struct_meta.broll.black_track` 记其 `track_index`),按已落成的 beat 包络整条铺满,使 B-roll 期间(含候选轨留空处)不漏出底下的口播画面。**代价是「黑底空洞」**:候选轨没填满的地方就是纯黑压口播,铺轨会把它算出来——`--json` 恒出 `lay.blackBedHoleSec` 与逐段的 `lay.blackBedHoles`,单段 ≥ 3s 或单 beat 占比 ≥ 15% 时另出一条非致命告警(不改退出码、不阻断铺轨),可据此调 `--score-floor`、改用 `--no-black-bed`、或到客户端手动补片。字节落 `assets/builtin/solid-000000-<W>x<H>.png`,与客户端内置纯色素材同 id 命名空间、幂等复用。删候选轨时别误删它;换片请拖到候选轨颗粒上、**别拖到黑底条上**——客户端 0.2.10 起(2026-07-31 发版强更)**拖到黑底条上会被直接拒绝并提示**。若客户端仍是 0.2.10 之前旧版(强更未拉到),旧行为是静默新建一条 video 轨插入、落点在下半区时预览完全看不见(按一次 `Ctrl+Z` 可整条撤销)——先重启客户端吃到强更。不想要黑底加 `--no-black-bed` 重跑即剥净。
372
420
 
421
+ **本地素材模式(`matrix index` / `--local`)**:素材不必入云端素材库,用你本地的素材文件夹(视频+图片混合)直接检索铺轨:
422
+
423
+ ```bash
424
+ gtrk matrix index --dirs <素材夹1,素材夹2> # ① 免切片建索引:内容指纹增量、断点续传,素材改名/移动不重算
425
+ gtrk matrix --local --dirs <素材夹1,素材夹2> --project <目录> # ② 本地检索铺轨(--lay 0 = 只出 plan 不铺轨)
426
+ gtrk matrix lay --project <目录> [--plan <path>] # ③ 消费(可编辑后的)plan 铺轨,零检索开销
427
+ ```
428
+
429
+ - **素材本体永不上云**:只把 512px 抽帧图送同合云自建 embed 端点向量化、即传即弃;产物以绝对路径直引本地原文件(免下载免代理)。索引按实际抽帧张数会话计量(跑前预扣、跑完多退少不补),文本检索零积分。
430
+ - **图片一视同仁**:图片可检索可铺轨;被选中时经云端 `image_move` 转 5 秒运镜视频入轨——**图片本体会上云**(2 积分/张,铺轨前汇总确认;同图同参恒复用不重复扣费)。零图片上云 → `--no-image-broll`。
431
+ - **同素材不二用**:单轮铺轨一个素材单元全局只用一次(本地视频按场景、图片按文件),候选枯竭宁空不重复;`--dedup-scope material` 收严到文件级。
432
+ - **含本地素材的工程不能云渲**:提交会被拒(`local_broll_cloud_render_rejected`)——走客户端本地出片或 `gtrk render`。
433
+ - **可选零件**:`matrix describe --plan <path> [--top-k N]` / `--materials <a,b>` 按需理解候选(VLM 描述/标签/质量分/水印·字幕·黑边·模糊信号,1 积分/张、产物注入 plan 并本地缓存、缓存命中零计费、>20 张确认护栏);`--source-window <start,end>` 源时间窗过滤(仅 `--local`,影视解说式「第 N 段解说配影片第 N 段邻域画面」);`matrix lay --mark-weight <0..1>` 把 describe 的质量分融进候选排序(融合分 = sim×(1-w)+(mark/100)×w,只重排序不改准入,无缓存候选按中性处理)。
434
+ - **索引参数与量纲**:`--scene-threshold` 调场景切分粒度、`--stability-threshold` 固定机位判稳收敛抽帧、`--rebuild` 强制重建(理解缓存不清);索引跨机不可移植(键=绝对路径,换机重跑 index 即可)。本地 score 量纲与云端不同(完美命中可低至 ~0.25),`--score-floor` 别按云端直觉调高。
435
+
436
+ 编排配方(纯匹配 / 先理解后铺 / 时间窗 / 素材先行编剧 / 三层层叠)与 plan 编辑口径见随包 skill `/gtrk-matrix`。
437
+
373
438
  ### `gtrk mg` — MG 动态图颗粒(铺轨 / lint / status)
374
439
 
375
440
  消费 `gtrk split` 落地的 `dispatch.mg` 派单,把**你栏目的 MG 生产 skill** 产的 html-particle 颗粒铺进 `.gtrk` 工程的 `beat_track`。三种模式按首个 positional 分派:**无参 = 铺轨**、`mg lint <file>` = 单文件校验、`mg status` = 编排看板。旧名 `gtrk rrv` 保留为弃用别名(会打提示,建议改用 `gtrk mg`)。
@@ -402,6 +467,19 @@ gtrk transcript "D:/素材/采访视频.mp4" --lang zh-CN --out "D:/文字稿/
402
467
  > **aux 叠层颗粒**:`gtrk split` 若在某 beat 的 `aux_layers` 派了 `overlay` 颗粒,会派生 `<beat>-aux<n>` 合成条目进 `dispatch.mg`——`gtrk mg` 一并铺,实现「同段既有底轨主视觉、又叠透明概念图解」。
403
468
  > **双读兼容**:`dispatch.mg`(读旧 `rrv_mg`)、源目录 `mg/`(读旧 `rrv/`)、素材前缀 `mg-`(读旧 `rrv-`)——去品牌化前的既有工程零迁移。
404
469
 
470
+ ### `gtrk project init` / `gtrk audio lay` — 音频驱动工程零件(配音先行)
471
+
472
+ 不从口播毛片、而从**一条配音**起盘的工程入口:先有配音(TTS 合成或自己录的),`project init` 建好 `.gtrk` 工程,之后 `gtrk split --project` 投影拆分照常接成片流水线;`audio lay` 则给任意工程补音频轨(BGM/配乐)。
473
+
474
+ | 命令 | 作用 |
475
+ |---|---|
476
+ | `gtrk project init --tts-task <task_id>` | **主路**:引用一个已完成的 `audio_tts_clone` 配音任务——服务端直取产物音频与句级时码(零 ASR、零额外计费),音频下载落工程 `audio/` |
477
+ | `gtrk project init --audio <配音> --transcript <transcript.json>` | **兜底路**:自备配音音频 + 句级时码稿成对给(时码稿由 `gtrk transcript <配音音频> --json` 产出;TTS 合成的配音请走主路,别重跑 ASR) |
478
+ | `gtrk audio lay --project <目录> --file <bgm.mp3>` | 往工程追加一条音频轨;**同源幂等替换**(同一来源重跑替换不堆轨、零引用保护剥旧);`--volume <0..1>`(默认 0.3 垫底音量)、`--offset <ms>` 定入点 |
479
+ | `gtrk audio lay … --beat-align` | 云端节拍分析(`audio_music_analyze`,计费一次)把入点吸附最近 downbeat;无 Key / 分析失败 / 出界一律自动降级为不对齐,命令不失败 |
480
+
481
+ `project init` 另有 `--canvas <WxH>`(默认 1080x1920)、`-o/--out`、`--reupload`、`--no-open`、`--json`,语义与 `oralcut` 一致;两命令 `--json` 恒出单行结果 JSON(人读日志走 stderr)。
482
+
405
483
  ### `gtrk tool <name> [输入...]` — 单点工具族
406
484
 
407
485
  单发单收的独立能力,与成片管线的车道命令(`oralcut`/`split`/`matrix`/`mg`)分家。**顶层命令 + 首个 positional 词分派**(不用父子命令):`gtrk tool <name> [输入...]` 跑工具(多文件图片工具可传多个路径,顺序即拼装顺序),`gtrk tool list` 查全部。一个工具 = 一个薄 descriptor(输入类别 / payload 拼装 / 产物映射 / 计费 / 可用门),共享 runner 跑「校验 → 上传(指纹缓存、≥256MiB 自动分片)→ 提交 → 轮询 → 流式下载落地 → `task.json`/`result.json` 面包屑」——接新工具只加一个 descriptor、不写编排。
@@ -426,8 +504,9 @@ gtrk transcript "D:/素材/采访视频.mp4" --lang zh-CN --out "D:/文字稿/
426
504
  | `video_motion_cut` | 单条本地视频 | 运镜/高光片段结构 `result-output.json`(结构化数据,非下载文件) | 运行前实时查询 | 已上线 |
427
505
  | `video_speaker_detect` | 单条本地视频;可选 `--language`/`--max-faces-per-frame`/`--detect-body`/`--track-sample-fps`(重 GPU) | 可见说话人结构 `result-output.json`(时基以服务端输出为准) | 运行前实时查询 | 已上线 |
428
506
  | `video_face_track` | 单条本地视频;可选 `--sample-fps`/`--max-faces`/`--min-face-ratio`/`--enable-body-match`/`--similarity-threshold`;`time_ranges` 走 `--params-json`(重 GPU) | 人物 ID/时间段/轨迹结构 `result-output.json`(时基以服务端输出为准) | 运行前实时查询 | 已上线 |
429
- | `audio_tts_clone` | **无文件**:`--text`/`--text-file` 二选一(≤2000 字)+ `--speaker` 必填;可选语言/格式/语速/切分法 | 配音音频 wav/mp3(按文本字数折算分钟计费) | 运行前实时查询 | 已上线 |
507
+ | `audio_tts_clone` | **无文件**:`--text`/`--text-file` 二选一(≤5000 字)+ `--speaker` 必填;可选语言/格式/语速/切分法/字幕 | 配音音频 wav/mp3(+ 可选字幕);按文本字符数计费,计量单位与单价以 `gtrk tool list` 实时显示为准 | 运行前实时查询 | 已上线 |
430
508
  | `video_ai_subtitle` | 单条视频或音频;`--language <码>` 必填;可选 `--translate-language`、`--need-render`、`--need-pure`、`--subtitle-type`、`--subtitle-color`。默认只传本地抽出的音频(毛片不上传) | `.ass` 字幕 + 可选烧录/去字幕 `.mp4` + `result-output.json`(摘要 + 字级时间轴) | 运行前实时查询 | 已上线 |
509
+ | `subtitle_translate` | 单个**字幕文件** `.ass` / `.srt`;`--language <码>` 与 `--translate-language <码>` **双必填**;可选 `--output-format`、`--line-mode`、`--bilingual`、`--subtitle-type`、`--subtitle-color`、`--canvas <WxH>`。不含语音识别 | 译文字幕 `.ass` 或 `.srt` + `result-output.json`(条数统计 + 降级标记) | 运行前实时查询 | 已上线 |
431
510
  | `video_long2short_pro` | 单条长视频(整片上传);`--language <码>` 必填;可选 `--output-language`、`--main-topic`、`--output-size`、`--no-jump-cut`、`--duration-pref`、`--max-clip-sec`、`--split-screen`、`--split-orientation`、`--speed-factor`、`--no-camera-move`、`--no-subtitle`、`--subtitle-translate-language` | 逐条成片 `clip{i}.mp4` + 人读报告 `clips.md`(含润色降级明细) + `result-output.json` | 运行前实时查询 | 已上线 |
432
511
  | `audio_separation` | 单条音频;可选 `--mode fast\|turbo` | 人声与伴奏音频(按实际返回可为一项或两项) | 运行前实时查询 | 已上线 |
433
512
  | `audio_speaker_split` | 单条音频;可选 `--only-struct` | 各说话人 `.wav` 分轨 + `spoken_list` 时间线(`result-output.json`) | 运行前实时查询 | 已上线 |
@@ -437,7 +516,7 @@ gtrk transcript "D:/素材/采访视频.mp4" --lang zh-CN --out "D:/文字稿/
437
516
  | `piano_audio_to_midi` | 单条音频 | MIDI 文件 `.mid` | 运行前实时查询 | 已上线 |
438
517
  | `piano_audio_enhance` | 单条音频 | 高质量 WAV + 配套 MIDI(双产物) | 运行前实时查询 | 已上线 |
439
518
  | `image_to_square` | 单张图片;可选 `--max-line <px>`(≤20000) | 方形图片 | 运行前实时查询 | 已上线 |
440
- | `image_to_live` | 单张图片 | 微动 LivePhoto 视频 `.mp4`(产物是视频) | 运行前实时查询 | 未开放(上游生成能力暂未开放,恢复后重新上架) |
519
+ | `image_to_live` | 单张图片 | 4 秒短视频 `.mp4`(无声,产物是视频) | 运行前实时查询 | 已上线 |
441
520
  | `image_classic_template` | **多张图片** + `--main-title` 必填;可选副标题/模式/比例/质量/数量/版式 | 封面/拼图成品(text/pic/render 三组、可多张) | 运行前实时查询 | 已上线 |
442
521
  | `image_vertical_stitch` | **多张图片**(顺序=自上而下拼接顺序) | 一张垂直拼接长图 | 运行前实时查询 | 已上线 |
443
522
  | `video_split_screen` | **2~16 段视频**(多 positional);精确档 `--clips-json`(条目 `{input:0 起序号, begin_time_ms, end_time_ms, crop}`,毫秒时基);九个可选布局/画幅/音频参数 | 一条分屏成片(成片时长对齐最短段) | 运行前实时查询 | 已上线 |
@@ -465,6 +544,7 @@ gtrk transcript "D:/素材/采访视频.mp4" --lang zh-CN --out "D:/文字稿/
465
544
  - `gtrk tool video_ai_segment ./clip.mp4 [--segment-mode shot_type] [--json]` — 智能语义分镜;产 `result-output.json`(`categories[].shots[]` 含景别/标签/描述/秒级时码)。
466
545
  - `gtrk tool video_motion_cut ./clip.mp4 [--json]` — 运镜/高光片段;产 `result-output.json`(`cut_points[]` 含帧号、秒级时码与运动特征)。
467
546
  - `gtrk tool video_ai_subtitle ./clip.mp4 --language zh [--translate-language en] [--need-render] [--subtitle-color 湖蓝]` — 智能字幕:`--language` 必填,产 `.ass` 字幕 + `result-output.json`(LLM 摘要 + 字级时间轴)。**默认只上传本地抽出的音频**(毛片不出本地,几何随请求回传);`--need-render` 改由**本地 ffmpeg 烧录**(缺 `思源黑体 CN Bold` 直接报错,不用替代字体顶);`--need-pure` 需要画面,加了会整片上传。`subtitle_type`/`subtitle_color` 枚举与 `content` 详见云端 API 文档,`--params-json '{"content":{...}}'` 可透传。
547
+ - `gtrk tool subtitle_translate ./movie.ass --language zh-CN --translate-language en-US [--bilingual] [--canvas 1080x1920]` — 智能字幕**翻译**:把已有字幕换个语种,**两个语种参数都必填**。**与 `video_ai_subtitle` 的分界是输入形态**:从音视频里认出字幕走 `video_ai_subtitle`,把已有 `.ass`/`.srt` 换语种走本条(不重跑 ASR,也不覆盖已有校对)。`--line-mode keep` 让时码与输入逐条一致(可直接替换原字幕轨),缺省 `resegment` 译文更通顺但会改行数与时码;`.srt` 里没有画布信息,**竖屏务必传 `--canvas`**,否则按横屏折行可能出血。样式类参数仅 `ass` 输出有效,`srt` 输出叠样式会被服务端在扣费前拒。
468
548
  - `gtrk tool video_long2short_pro ./talk.mp4 --language zh-CN [--split-screen] [--speed-factor 1.1]` — 长剪短·**精剪**:一键出成片,逐条 `clip{i}.mp4` + 人读报告 `clips.md`(含润色降级明细)。**与 `gtrk long2short`(粗剪)分工**:粗剪出可编辑工程(gtrk/剪映/PR)、毛片不上传、给人再剪;精剪只出成片、整片上传、计费约为粗剪两倍。判断句:剪完还要不要再动?要动走粗剪,不动走精剪。
469
549
  - 上面三个是**分析型工具**:产物是结构化数据 `result-output.json`(非下载媒体),`result.json` 的 `resultFile` 指向它、`files` 为空且 `ok=true` 属正常。
470
550
  - `gtrk tool audio_separation ./song.mp3 [--mode turbo]` — 人声伴奏分离;`--param need_vocals=false` 等低频字段仍可透传。
@@ -475,7 +555,7 @@ gtrk transcript "D:/素材/采访视频.mp4" --lang zh-CN --out "D:/文字稿/
475
555
  - `gtrk tool piano_audio_to_midi ./piano.mp3` — 钢琴音频扒谱为 `.mid`。
476
556
  - `gtrk tool piano_audio_enhance ./piano.mp3` — 钢琴录音修复增强,产高质量 WAV 主产物 + 配套 MIDI 副产物。
477
557
  - `gtrk tool image_to_square ./long.jpg [--max-line 8000]` — 长图转方图;`--max-line` 默认 4000、上限 20000。
478
- - `gtrk tool image_to_live ./photo.jpg` — 静态图生成微动 LivePhoto,产物是 `.mp4` 视频。(暂未开放:上游生成能力恢复后重新上架。)
558
+ - `gtrk tool image_to_live ./photo.jpg` — 让静态照片动起来,产出约 4 秒的 `.mp4` 短视频(无声)。
479
559
  - `gtrk tool image_classic_template a.jpg b.jpg c.jpg --main-title "新品速览"` — 标题+多图出封面/拼图;`--output-pic-count`/`--output-text-count` 由服务端钳制 ≤20。
480
560
  - `gtrk tool image_vertical_stitch top.png mid.png bottom.png` — 多图按传入顺序竖拼成一张长图。
481
561
  - `gtrk tool video_split_screen a.mp4 b.mp4 --output-ratio 16:9` — 简单档:整段视频自动布局分屏(reaction/对比同框)。
@@ -534,7 +614,7 @@ gtrk transcript "D:/素材/采访视频.mp4" --lang zh-CN --out "D:/文字稿/
534
614
  ```
535
615
  gtrk-cli/
536
616
  ├── src/index.ts # commander 入口
537
- ├── src/commands/ # 子命令:install / init / oralcut / transcript / split / doctor / upgrade / skills
617
+ ├── src/commands/ # 子命令:install / init / oralcut / long2short / transcript / split / matrix / mg / project / audio / tool / render / doctor / upgrade / skills / …
538
618
  ├── src/lib/ # cloud / column-config / splitdoc / projection / user-config / jianying / …
539
619
  ├── skills/ # 打包的框架 skills:oralcut / splitter / matrix / mg / ai-drama / style-maker / transcript / tools / music-visualizer / cover
540
620
  ├── contracts/ # 框架契约库正本(gsap-emit v1 + handoff→契约映射表)