内容
# 无头、代理驱动的视频编辑器,用于 Windows
一个 **无头、代理驱动的视频编辑器,用于 Windows** — [Palmier Pro](https://github.com/palmier-io/palmier-pro) 的 Rust 端口的 MCP 代理层。它公开了与 macOS 原版相同的 45 工具 MCP 合同,但原生运行于 Windows,支持 **FFmpeg**(媒体解码/编码/过滤)、**ComfyUI**(生成模型)和 **whisper.cpp**(转录),而不是 AVFoundation / Metal / Core Image。
指向 Claude Code(或任何 MCP 客户端)并通过对话编辑视频:“创建项目,导入此剪辑,剪切静音部分,添加字幕,调整颜色,导出 MP4”或“生成一个 5 秒的海岸无人机镜头并将其放在时间轴上。”
> **本 README 是为 Claude Code 会话编写的。** 在驱动服务器之前请先阅读它。章节 [如何驱动它](#如何驱动它:一个Claude Code会话剧本) 和 [示例工作流](#示例工作流) 是操作手册。
---
## 这是什么 — 以及不是什么
**是:** 一个 Windows 二进制文件 `palmier-pro-win.exe`,在 `127.0.0.1:19789/mcp` 上运行模型上下文协议服务器。它操作磁盘上的真实 `.palmier` 项目包(与 macOS 应用读取/写入的格式相同)。它与 Palmier Pro 的 MCP 合同 **API 兼容** — 45 个工具名称及其输入模式匹配,因此任何在 macOS 上适用的代理提示在这里也适用。
**不是:** 一个 GUI 时间轴。没有预览窗口,没有实时 Metal 渲染,没有点击拖拽。所有操作都通过工具调用完成。颜色/效果是 **FFmpeg 过滤器近似值**,与 Palmier 的 11 个 Metal 着色器意图一致,但不是像素级相同的。闭源生成后端被替换为 **您自己的本地 ComfyUI**。
**范围诚实存根:** 某些工具依赖于尚未移植的功能,并返回 **可操作的错误** 而不是假结果:
- `sync_clips` — 音频互相关对齐(结构已完成,相关计算待完成)。
- `remove_silence` — 设备语音/VAD 检测(变通方法:`get_transcript` + `remove_words`,或 `ffmpeg silencedetect`)。
- `detect_beats` — 节拍/强拍跟踪(变通方法:外部 `aubio`/`librosa`,或 `ffmpeg ebur128`)。
当工具返回其中一个错误时,请按照消息中的变通方法进行操作 — 不要循环重试,不要伪造结果。
---
## 我用它做什么
这是一个用于 **视频编辑、AI 视频生成和专业 SaaS 演示/发布视频** 的生产工具。典型工作:
- **SaaS 演示视频** — 屏幕录制 + 旁白,剪辑至指定长度,烧录字幕,品牌颜色分级,导出为 H.264 网页使用。
- **发布/公告视频** — b-卷 + 生成的剪辑(通过 ComfyUI)合成带有文本叠加层,按节拍同步剪辑,画中画产品镜头。
- **AI 视频生成** — 通过 ComfyUI 从提示生成剪辑(`generate_video`/`generate_image`/`generate_audio`),然后组装、修剪、调整等级并导出,无需离开代理对话。
- **基于转录的编辑** — 转录,删除填充词/静音,紧凑节奏,重新导出。
- **多摄像头/多源** — 同步多个摄像头 + 外部音频,在时间轴上切换角度。
将每次编辑视为 **非破坏性和可撤销的** — 代理记录每个会话的撤销堆栈,因此错误的剪辑只需一步撤销即可。
---
## 快速入门
### 1. 构建
**始终通过包装脚本构建** (它加载 MSVC vcvars64 并禁用损坏的 schannel 吊销检查 — 普通 `cargo` 将失败):
```powershell
C:\Users\Victor\cargo-msvc.cmd build --release
```
输出:`target\release\palmier-pro-win.exe`(~13 MiB)。
> **在重新构建之前停止服务器** — 可执行文件在运行时被文件锁定,`cargo build` 将失败,提示“访问被拒绝(os error 5)”。首先杀死它:`taskkill /F /IM palmier-pro-win.exe`。
### 2. 运行
```powershell
.\target\release\palmier-pro-win.exe
```
启动日志行:
```
palmier-pro-win MCP 服务器监听 http://127.0.0.1:19789/mcp
```
它在前台运行(Ctrl-C 停止)。要从类 Unix shell 在后台运行:
```bash
(./target/release/palmier-pro-win.exe > server.log 2>&1 &)
```
### 3. 连接 Claude Code
```powershell
claude mcp add --transport http palmier-pro http://127.0.0.1:19789/mcp
```
验证:`claude mcp list` 应该显示 `palmier-pro`,包含 45 个工具。在 Claude Code 会话中,工具显示为 `mcp__palmier-pro__<tool_name>`,服务器的 `instructions` 文本作为上下文加载。
---
## 配置和后端
所有配置均通过环境变量(使用 `setx VAR "value"` 进行持久化,或在启动服务器的 shell 中内联)进行。
| 变量 | 用途 | 默认值 |
|---|---|---|
| `PALMIER_FFMPEG_BIN` | `ffmpeg.exe` 的路径。 | `ffmpeg`(必须在 PATH 上 — FFmpeg 8.x 已安装) |
| `PALMIER_FFPROBE_BIN` | `ffprobe.exe` 的路径。 | `ffprobe` |
| `PALMIER_WHISPER_BIN` | `whisper-cli.exe`(whisper.cpp)的路径。**未设置 → 转录工具返回可操作的错误。** | 未设置 |
| `PALMIER_WHISPER_MODEL` | whisper.cpp 的 ggml `.bin` 模型的路径。 | 未设置 |
**ComfyUI** 不通过环境变量配置 — 在 `http://127.0.0.1:8188` 上单独运行它(服务器期望的默认值)。服务器是 ComfyUI 的 `/prompt` + `/history` 端点的 HTTP 客户端。没有运行 ComfyUI,`generate_*` 工具会失败;`list_models` 仍返回目录。
**项目** 存储为 `.palmier` 包目录,位于 `C:\Users\Victor\Documents\Palmier Pro\` 下。包包含:
- `project.json` — `ProjectFile`(时间轴、轨道、剪辑、设置)
- `media.json` — `MediaManifest`(资产索引)
- `generation-log.json` — 生成历史
- `media/` — 导入/生成的资产文件
---
## 桌面应用程序(GUI 启动器 + 时间轴查看器)
要创建双击即可运行的应用程序“像真正的 Palmier 一样”,请在 `gui/` 中构建 **Tauri 2** 桌面应用程序。它运行与 **相同的** MCP 服务器进程,以及控制面板和只读时间轴查看器。编辑本身仍然通过 Claude Code 驱动的 MCP 工具完成 — GUI 是一个启动器 + 查看器,而不是编辑器。
**构建:**
```powershell
C:\Users\Victor\cargo-msvc.cmd build --release -p palmier-gui
```
输出:`target\release\palmier-gui.exe`。双击打开(需要 WebView2 运行时 — 已存在于 Windows 11)。
**您从窗口获得的内容:**
- **服务器** — 启动/停止进程内 MCP 服务器,实时状态指示器,一键“复制连接命令”按钮,将 `claude mcp add --transport http palmier-pro http://127.0.0.1:19789/mcp` 复制到剪贴板以粘贴到 Claude Code。
- **项目** — 浏览/创建/打开 `.palmier` 项目。“创建”选择名称、宽高比(16:9 / 9:16 / 1:1 / 4:3 / 2.4:1 / 9:14)和质量(720p / 1080p / 2K / 4K),并写入一个与 `manage_project action='create'` 生成的相同的真实包。
- **后端** — 设置 ffmpeg / ffprobe / whisper.cpp / whisper 模型 / ComfyUI URL 路径。保存到 `settings.json`,位于项目注册表旁边,并推送到服务器的环境中启动(重启服务器以应用)。这是 `setx PALMIER_*` 的 GUI 替代品。
- **时间轴查看器(只读)** — 以 SVG 渲染活动时间轴:带有时间码的标尺,每条轨道一个通道,剪辑块按类型着色(视频/音频/图像/文本/动画/序列),字幕标记,以及点击任意剪辑 → 检查器(帧、持续时间、媒体引用、不透明度、速度、体积、链接/字幕组、文本内容)。
**布局:
```
gui/
src-tauri/ # Rust 后端(Tauri 2):src/commands.rs(IPC),src/state.rs(服务器令牌)
tauri.conf.json # 窗口,withGlobalTauri,frontendDist
capabilities/ # core:default IPC 权限
icons/ # 从 app-icon.png 通过 `cargo tauri icon` 生成
frontend/ # 普通 HTML/CSS/JS(无打包器);使用 window.__TAURI__.core.invoke
index.html style.css main.js
```
根 `Cargo.toml` 是一个工作区:`members = ["gui/src-tauri"]` 加上 `palmier-pro-win` 库/二进制文件。GUI 包依赖于库,通过路径依赖重用 `palmier_pro_win::ops`(项目/时间轴/设置)和 `palmier_pro_win::mcp::serve`(进程内服务器启动 — 相同的 `serve()` 头文件二进制调用)。
重新生成图标集编辑 `gui/src-tauri/app-icon.png` 后:
```powershell
C:\Users\Victor\.cargo\bin\cargo-tauri.exe icon gui\src-tauri\app-icon.png -o gui\src-tauri\icons
```
要创建正确的 Windows **安装程序** (NSIS)除了原始可执行文件,请运行 `cargo tauri build` 而不是 — 较慢,但会在 `gui\src-tauri\target\release\bundle\nsis\` 下生成安装程序:
```powershell
cd gui\src-tauri ; C:\Users\Victor\cargo-msvc.cmd tauri build
```
---
## 45 工具界面
按 `src/tools/` 中的文件分组。每个工具都是异步的,接受 JSON `arguments` 对象,并返回 `ToolResult` 内容(`text`,有时为 `image`)。除非另有说明,否则所有突变都是一个可撤销的操作。
### 项目和时间轴
| 工具 | 功能 |
|---|---|
| `manage_project` | 会话期间 `list` / `open` / `create` / `close` 项目。**始终以 `action:"list"` 或 `create` 开始会话。** |
| `get_timeline` | 读取项目设置 + 轨道 + 剪辑。**每次会话开始时调用** (服务器指令要求这样做)。支持帧窗口 + `captionDetail`。 |
| `inspect_timeline` | 渲染合成帧(用户实际看到的内容) — 验证编辑是否生效。返回带有帧号的图像。 |
| `create_timeline` | 创建(或使用 `from` 复制)时间轴并切换到它。版本控制基元。 |
| `set_active_timeline` | 切换活动时间轴。重新读取 `get_timeline` — 旧时间轴的 ID 无效。 |
| `set_project_settings` | 更改 fps / 分辨率 / 宽高比。现有剪辑自动重新适配和重新缩放。 |
### 媒体库
| 工具 | 功能 |
|---|---|
| `get_media` | 库库存 — 资产、文件夹、时间轴。**其他工具中的每个 `mediaRef` 都来自这里。** |
| `inspect_media` | 查看一个资产:采样帧、转录、EXIF、尺寸。 |
| `search_media` | 跨库进行语义视觉和语音搜索。 |
| `import_media` | 从 `url` / `path` / `bytes` / `matte` 导入。URL + 路径导入在后台运行 — 轮询 `get_media` 直到 `generationStatus` 清除。 |
| `organize_media` | 创建文件夹、移动、重名、删除 — 一个可撤销的操作。 |
### 剪辑和轨道(编辑核心)
| 工具 | 功能 |
|---|---|
| `add_clips` | 将资产放在轨道上。覆盖重叠部分。自动为带有音频的视频创建链接音频。`mediaRef` 可能是 `timelineId`(嵌套序列)。 |
| `insert_clips` | 在不覆盖的情况下插入 — 像 `atFrame` 之后的所有内容都会连锁反应。 |
| `move_clips` | 将剪辑移动到新轨道和/或帧。链接伙伴跟随。 |
| `remove_clips` | 按 ID 删除;链接组跟随(链接删除)。 |
| `manage_tracks` | 重新排序 / 设置(静音/隐藏/同步锁定)/ 删除轨道。索引 0 = 顶部。 |
| `split_clips` | 在帧处剪切 — 仅限边界,无修剪/偏移。链接 A/V 一起分割。 |
| `ripple_delete_ranges` | 剪辑范围 + 关闭间隙为一个操作。快速填充/死空气移除的路径。 |
| `set_clip_properties` | 持续时间 / 修剪 / 速度 / 音量 / 不透明度 / 变换 / 混合模式。设置音量/不透明度清除该属性上的关键帧。 |
| `set_keyframes` | 动画一个属性(音量/不透明度/旋转/位置/缩放/裁剪)。帧相对于剪辑。 |
| `apply_layout` | 多剪辑布局(分屏、画中画、网格) — 计算变换 + 裁剪以使每个剪辑填充其插槽。 |
| `sync_clips` | 对齐剪辑到参考。**诚实存根** — 返回可操作的错误(音频互相关未移植)。 |
### 文本和字幕
| 工具 | 功能 |
|---|---|
| `add_texts` | 添加文本剪辑作为时间轴层。 |
| `update_text` | 编辑文本内容 / 排版 / 颜色 / 动画。接受 `captionGroupId`。 |
| `add_captions` | 转录时间轴的音频并自动创建样式化的字幕剪辑。 |
### 转录和音频
| 工具 | 功能 |
|---|---|
| `get_transcript` | **当前时间轴** 的口语转录 — 每剪辑走过,映射单词通过修剪/速度/位置。使用 `remove_words` 之前。 |
| `remove_words` | 按索引删除(Descript 风格)。解析 `get_transcript` 索引或 `matches`(填充令牌),删除周围的暂停,关闭间隙。 |
| `remove_silence` | **诚实存根** — 设备 VAD 未移植。按照错误消息中的变通方法。 |
| `detect_beats` | **诚实存根** — 节拍跟踪未移植。按照错误消息中的变通方法。 |
| `denoise_audio` | 真实的 ffmpeg `afftdn` 烘焙 — 降噪剪辑音频,写入新资产,交换剪辑的 `mediaRef`。 |
### 颜色和效果
| 工具 | 功能 |
|---|---|
| `apply_color` | 使用命名旋钮(曝光/对比度/饱和度/轮廓/曲线/色调曲线/LUT)进行颜色分级。合并到当前分级;`reset:true` 为中性。 |
| `apply_effect` | 应用外观/效果(`media_ops/filters.rs` 中的 20 个效果描述符)。 |
| `inspect_color` | 读取剪辑的色阶 + 参考直方图进行迭代分级。 |
### 导出
| 工具 | 功能 |
|---|---|
| `export_project` | 排队导出。`mode`: `video`(H.264/H.265/ProRes),`xml`(Premiere),`fcpxml`(Resolve/FCP),`palmier`(包)。返回 `jobId`。 |
| `manage_exports` | `list`(进度/警告/结果)或 `cancel` 按 `jobId`。 |
### 生成(ComfyUI)
| 工具 | 功能 |
|---|---|
| `list_models` | 可用的视频/图像/音频生成模型(ComfyUI 工作流目录)。 |
| `generate_video` | 通过 ComfyUI 进行 txt2vid → 资产进入库。 |
| `generate_image` | 通过 ComfyUI 进行 txt2img。 |
| `generate_audio` | 通过 ComfyUI 进行 text2audio(例如 StableAudio 自定义节点)。 |
| `upscale_media` | 通过 ComfyUI 升级资产。 |
### 多摄像头
| 工具 | 功能 |
|---|---|
| `manage_multicam` | `create`(同步源到一个组)/ `ungroup`。 |
| `change_cam` | 在帧范围内切换组的摄像头角度。 |
| `get_multicam` | 读取一个组:成员,程序切割为运行长度行,轨道索引。 |
### 元数据
| 工具 | 功能 |
|---|---|
| `undo` | 撤销辅助程序最近的时序编辑(仅限此会话)。 |
| `send_feedback` | 发送反馈(限流)。 |
### MCP 资源
- `palmier://models/video` — 视频生成模型的 JSON 目录。
- `palmier://models/image` — 图像生成模型的 JSON 目录。
---
## 如何驱动它:Claude Code 会话剧本
服务器的 `instructions` 字段(从 Palmier 的 `AgentInstructions.swift` 移植而来)被加载到您的上下文中,当 MCP 服务器连接时。**请遵循它。** 简要的操作规则:
1. **首先打开一个项目。** 使用 `action:"list"`(恢复)或 `action:"create"`(新建)的 `manage_project`。在打开项目之前,其他功能都不起作用。
2. **每个会话开始时调用 `get_timeline`**,以及结构变化之后(`set_active_timeline`,`create_timeline`,`undo`,大编辑)。之前的读取可能在更改后过期;`clip/track` ID 可能过时。
3. **引用任何资产之前调用 `get_media`**。每个 `mediaRef` 都来自它返回的 ID。
4. **编辑前先读取。** 使用 `inspect_timeline`(合成帧)或 `inspect_media`(原始资产)来验证编辑是否生效 — 不要假设。
5. **每个逻辑步骤一个可撤销的操作。** 变更(`add_clips`,`split_clips`,`remove_words`,`apply_color`,...)每个推进一个撤销条目。如果编辑过度,请撤销并重试。
6. **基于转录的剪辑:** `get_transcript` → 读取为散文 → `remove_words` 使用索引 → 重新读取 `get_transcript`(索引在每次剪辑后偏移)。仅当非单词对齐范围时才降级到 `ripple_delete_ranges`。
7. **通过单词列表验证剪辑,而不是摘要。** 剪辑后,转录反映实际听到的内容。
8. **导出是异步的。** `export_project` 返回一个 `jobId`;轮询 `manage_exports` `action:"list"`。不要仅凭时间推断作业是否卡住。
9. **诚实存根:** 当 `sync_clips` / `remove_silence` / `detect_beats` 返回可操作的错误时,请按照消息中的变通方法进行操作。不要循环,不要编造。
10. **生成需要 ComfyUI 在 `127.0.0.1:8188` 上运行**,并使用您要的模型工作流。生成的资产通过 `get_media` `ids:[mediaRef]` 进入库。
### 会话状态按会话存储
每个 MCP 会话都有自己的 `AppState`(打开的项目)和 `SessionState`(撤销堆栈,转录上下文)。`undo` 只会撤销**此会话的代理**所做的编辑 — 它永远不会触及用户的手动编辑。不要假设状态在会话之间持续。
---
## 示例工作流
### A. SaaS 演示视频(屏幕录制 + 旁白)
```
1. manage_project {action:"create", name:"Acme Demo", fps:30, aspectRatio:"16:9", quality:"1080p"}
2. import_media {source:{path:"C:\\recordings\\demo.mp4"}, name:"Screen recording"}
3. import_media {source:{path:"C:\\recordings\\voiceover.wav"}, name:"VO"}
→ poll get_media {ids:[...]} until both generationStatus clear
4. get_timeline → note trackIds, fps
5. add_clips {entries:[{mediaRef:"<video>", startFrame:0}]} → auto-creates video+audio tracks
6. add_clips {entries:[{mediaRef:"<vo>", trackIndex:<audio track>, startFrame:0}]}
7. get_transcript {clipId:"<vo clip>"} → read words
8. remove_words {matches:["um","uh","hmm"], cutAggressiveness:"balanced"}
9. add_captions {language:"en", color:"#FFFFFF", backgroundColor:"#000000", animation:"highlight"}
10. apply_color {clipIds:[<video>], exposure:0.1, contrast:1.05, saturation:1.1}
11. export_project {mode:"video", codec:"H.264", outputPath:"C:\\out\\acme-demo.mp4"}
12. manage_exports {action:"list"} → poll until status:"completed"
```
B. 使用生成的 B 卷启动视频
```
1. manage_project {action:"create", name:"启动 v1", fps:30, aspectRatio:"16:9", quality:"4K"}
2. list_models {type:"video"} → 选择一个模型 ID
3. generate_video {model:"comfyui-txt2vid", prompt:"日出时沿海高速公路上的缓慢无人机拍摄,电影效果", duration:5, aspectRatio:"16:9"}
→ 轮询 get_media 直到就绪
4. import_media {source:{path:"C:\\assets\\logo-sting.mp4"}}
5. add_clips {entries:[{mediaRef:"<generated>", startFrame:0}, {mediaRef:"<logo>", startFrame:]}
6. apply_layout {layout:"_right", slots:[:"main",:"<generated>"},{slot:"inset", mediaRef:"<"}], startFrame:150, endFrame:7. add {entries:[Frame:0, endFrame:90, content:"介绍\nAcme",:120, color:"#FFFFFF:"center"}]}
8. {mode:"video", codec:"H.265", outputPath:"C:\\out\\launch.mp4"}
```
### C. 基于转录的紧凑 + 重新导出
```
1. manage_project {action:" name:"播客第 "}
2. get_timeline
3. get_transcript {gransegments"} → 浏览要剪辑的章节
4_transcript {clipId:"<clip>", startFrame:<...Frame:<...>} → 单词索引
5. remove_words {12,18],[44,44]], cutAggressiveness:"tight"}
6. get_transcript →辑读取干净
7. {mode:"palmier 编写自包含的 .palmier 包
```
---
布局
```
palmier-pro-win/
Cargo.toml
src/
main.rs # 薄二进制:绑定 127.0.1:19789
lib.rs # 公共模块声明(库和二进制文件,以便测试可以)
state.rs # AppStateState,Config,
editor.rs # 内存编辑器:时间线,媒体清单,快照/应用/保存
mcp/
mod.rs # 指令(移植 AgentInstructions 文本)
server.rs # PalmierServer(ServerHandler):工具,资源,会话状态
tools.rs 45 个工具 输入模式(从 移植)
dispatch.rs # 执行(name,args)→ 45-arm args.rs # 宽容的double/bool/string 强制转换 + 未知
# ToolResult, is_error }
model/ #结构体,镜像 Swift 模型(驼,默认值)
project_file.rs timeline.rs clip_type.rs keyframe.rs
text.rs multicam.rs speakers.rs
project/
package.rs /写入 .p 目录
registry.rs # ~/Documentsier Pro/project.json
resolver # mediaRef → 文件路径
media probe.rs # ffprobe → Media
trans # ffmpeg 编H.264265/ProRes 过滤图 filters.rs # 个效果描述 颜色过滤器
generative/comfyui.rs #UI HTTP 客户端(txt2vid2img/...)
audio/whisper # whisper.cpp shell 解析 → WordSegment tools/ # 每个工具组(镜像 ToolExecutor+*.swift)
timeline.rs media.rs clips.rs texts.rs transcription color.rs export.rs multicam.rs meta.rs
tests/roundtrip.rs 6 个序列化往,针对 .ier 包
```
原始 macOS Swift 源代码(只读参考)位于 `C:\Users\palmier-pro`。每个 Rust 都镜像了相应的 `Sources/Palm/Agent/Tools/ToolExecutor+*.swift`。
---
## 构建注意事项
- **始终使用 `C:\Users\Victor\cargo-msvc.cmd`。** 它加载 MSVC `vcvars64`(link.exe 不在 PATH 上)并设置 `CARGO_HTTP_CHECK_REVOKE=false`(在没有它的情况下,网络上的 schannel TLS 吊销检查失败)。普通的 `cargo因 `CRYPT_E_NOATION_CHECK` + link.exe-not-found 而失败。
- **构建之前停止服务器。** `taskkill /F /IM palmier-pro-win.exe` — 运行的 exe 被文件锁定。
- **`#ursion_limit = "512 在 `src/lib.rs` 中设置 — `mcp/tools 中的大型 `json!` 工具模式超过了默认的 128 宏递归限制。不要删除它。
- **Rust 2024 中的 `gen` 是保留关键字** — 生成模块位于 `src/generative/`,声明为 `pub mod generative;`。
- **`rmcp::Tool::new`** 需要 `Into<Cow<'static, str>>` 作为名称/描述 — 传递所有权 `String`,而不是借用的 `&str`。
- Rust 版本 2024,目标 `x86_64-pc-windows-msvc`。MSVC 构建工具 2026(VS 18)。
---
## 验证
- `cargo test` → 6/6 往返测试通过(数据模型 + 包 I/O 字节保真度)。
- 实时 MCP 握手45 个工具 + 2 个资源;`manage_project create` 编写一个真正的 `.palmier` 包get_timeline` 读取- 运行测试套件C:\Users\Victorsvc.cmd test`## 移植说明,适用于
- **一致性检查:** 在 Mac 上运行相同的代理程序序列,并对 `claude mcp list` JSON 进行差异检查 — 45 个工具名称 + 参数形状必须匹配。
-着色器:11 个 Metal 着是 FFmpeg 过滤值。`ves` / `LUTTetra` 效果最不忠实;如果需要像素匹配,请重新审视。
- **短 ID 解析** (`ToolExecutor+ShortId.swift`) 尚未移植 — 工具使用完整 ID;前缀解析是第 2 阶段的改进项目。
- **`sync_cl `remove_silence` / `detect_beats`** 需要音频分析依赖(互相关,VAD,跟踪)。工具脚手参数验证已就位核心计算被存- **ComfyUI 工作流** 当前是默认的 txt2xt2img。实际目录应来自 ComfyUI(待办list_models`)计划文件 `Users\Victor\.\plans\starobbling-sunrise.md`,获取完整的 6 阶段设计。
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器