ClipTalk:用自然语言剪视频,VLM + 24 个 Skill 驱动的 Agentic 视频编辑系统
ClipTalk: Edit Video by Talking — VLM + 24 Skills Driving an Agentic Video Pipeline
ClipTalk 是 GML-MMGroup 开源的 Agentic 视频编辑系统,主张”说话就能剪”:用户用自然语言描述想要什么片段,Agent 负责理解素材、定位内容、规划剪辑、执行输出。2026-07 开源,当前 126 stars。
仓库:github.com/GML-MMGroup/ClipTalk | License:自定义非商业 Attribution License v1.1 | Stars:126
注意:许可证非 OSI 批准的开源协议,不允许商业用途,包括企业、高校用于营收目的。
系统架构
三层:
Browser (Vite) → Node 22 Agent Service (Pi Runtime) → Python FastAPI (媒体内核)
└── SQLite + JSON 备份
└── FFmpeg
└── 本地模型池
Pi(0.84.4)是 Agent 编排层,负责 Tool Calling。项目明确要求:不支持只返回 JSON 文本的模型,必须通过真实 Tool Calling 探针。
VLM / LLM 由用户在 Settings 页配置,支持 Volcano Ark(字节)、OpenAI 兼容接口、Anthropic 接口代理。不内置模型权重,必须自己接 API。
本地运行的模型(不需要外部 API):
| 组件 | 模型 | 用途 |
|---|---|---|
| 语音识别 | SenseVoice Small (iic) | ASR + VAD + 说话人分离 |
| 备用 ASR | Faster-Whisper 1.1.0 | 可选 |
| 屏幕文字 | PaddleOCR 3.7.0 | 屏幕内容 OCR |
| 视觉搜索 | SigLIP2 (google) | 视觉嵌入检索 |
| 文本嵌入 | multilingual-e5-base | 语义搜索 |
| 人脸检测 | YuNet (ONNX) | 检测人脸位置 |
| 人脸识别 | SFace (ONNX) | 匹配目标人物 |
| 全身检测 | YOLOX (ONNX) | 全身 person 检测 |
| 人物重识别 | YoutuReID (ONNX) | 跨帧同一人物 |
| 声纹验证 | CAM++ (iic) | 识别说话人声纹 |
| 音频语义 | CLAP (laion) | 音频语言嵌入 |
| 目标定位 | Grounding DINO tiny | 开放词汇目标检测 |
| 活跃发言人 | TalkNet ASD | 音视频同步,谁在说话(独立 venv) |
可选升级:WeMM-Embedding-2B(腾讯),统一文字/图片/视频检索,需独立 Python 环境。
四种核心编辑能力
1. 精华提取(Highlight) 从长视频中识别”最佳时刻”,生成高亮剪辑/回顾/预告片。
2. 人脸匹配编辑 上传参考人脸图片,YuNet + SFace 找出目标人物出现的所有片段。
3. 话题语义编辑 用自然语言描述主题(如”把他们讲产品 X 的部分剪出来”),VLM + embedding 定位相关段落。
4. 声纹编辑 上传说话人的音频样本,CAM++ 识别其声纹并提取所有该人说话的片段。
还支持对话式细化——“再短一点”、“从讲价格那段开始”。
6 步审批门禁
ClipTalk 不是”说了就直接剪”:Agent 的每次执行都经过严格管控:
- 任务绑定到持久化 Agent 工作区
- Pi 选择并激活对应的 Skill(24 个 SKILL.md 格式 Skill)
- 规划阶段只能调
submit_plan,不能直接分析或渲染 - FastAPI 验证 DAG:工具名、依赖关系、副作用类别、Skill 版本、工作区修订号
- 审批绑定计划哈希和允许工具集,之后 Executor 才开始执行
- 身份识别、删除操作、最终导出仍为结构化用户操作——Agent 只输出预览,确认后才导出
24 个 Skill
SKILL.md 格式,每个 Skill 声明 name、version、allowed-tools、workflow-profile。部分示例:
cliptalk-highlight-director— 精华剪辑导演cliptalk-interview-editor— 采访视频剪辑cliptalk-speaker-editor— 说话人剪辑cliptalk-person-editor— 人物跟踪剪辑cliptalk-multi-topic-assembler— 多主题拼接cliptalk-caption-layout-director— 字幕布局导演cliptalk-social-reframe-exporter— 竖版社交媒体导出cliptalk-smart-reframe— 智能重新裁剪cliptalk-delivery-qc— 输出质量检查cliptalk-source-provenance-guard— 素材来源保护
关键数字
| 指标 | 值 |
|---|---|
| 单文件上传上限 | 8 GB |
| 存储上限(默认) | 50 GiB |
| 最大工作进程 | 1(单 FastAPI worker) |
| V2 算法延迟(示例) | 34s vs 基线 20s(多 14s) |
| 视频采样密度 | 0.25s 一帧,边界处密化到 0.083s |
| 每候选最多采样点 | 480 个 / 最多 48 次 VLM 调用 |
| 后端测试覆盖 | 1086 通过 |
| 前端测试覆盖 | 178 测试,177 通过(1 个 known bug 已定向回归) |
不足之处
1. 不支持 macOS / ARM:仅 Linux x86-64 或 Windows WSL2。官方文档明确声明其他平台不受原生安装支持。
2. V2 算法比基线慢:更密集的证据验证(0.083s 采样 + 最多 48 次 VLM 调用)换来更高准确率,但延迟从 20s 升至 34s。如果 VLM 预算耗尽,候选片段停在”待审核”状态——不是召回保证。
3. TalkNet 需要独立 Python 环境:依赖冲突,必须手动配置路径。不配置就只能用 shadow 模式(只记日志,不修改输出)。
4. 插件不沙盒隔离:Plugin 在 Node Agent 进程内运行,拥有宿主进程权限。批准即信任。
5. 文档与环境变量不一致:environment.example 把 HIGHLIGHT_ACTIVE_SPEAKER_MODE 默认设为 primary,但 active-speaker.md 说应保持 shadow 直到真实视频验证通过,两者矛盾。
6. 无 arXiv 论文、无在线 Demo、无 HuggingFace 页面:只有代码和 GIF 演示。
7. 非商业许可:自定义 NC Attribution License v1.1,不可用于任何营收目的。
安装(CPU,Linux / WSL2)
git clone https://github.com/GML-MMGroup/ClipTalk.git && cd ClipTalk
python3 -m venv .venv && source .venv/bin/activate
python3 -m pip install -r requirements-cpu.txt
python3 tools/prepare_recognition_models.py --data-root data # 下载 ONNX 模型
python3 tools/doctor.py --profile cpu
./start.sh # 浏览器开 http://localhost:5180
然后在 Settings 页配置 VLM(必填)。
Docker(CPU):
cp .env.example .env
docker compose up --build
GPU 版把 requirements-cpu.txt 换成 requirements-gpu.txt,Docker 加 docker-compose.gpu.yml overlay。
怎么看这件事
ClipTalk 的架构设计比较严谨——6 步审批、DAG 验证、计划哈希绑定,把 Agent 的副作用控制得很明确。24 个 SKILL.md Skill 和本地化的人脸/声纹/活跃发言人检测组合,覆盖了播客剪辑、采访视频、竖版社交素材等实际场景。
短板也很实际:V2 更准但更慢,TalkNet 安装门槛高,macOS 完全不支持,许可证不允许商用。126 stars + 2026-07 创建,属于早期项目,尚未有公开基准数字证明其视频理解质量。
对于有 Linux 机器、需要本地化视频 Agent、用于研究或个人使用的场景,值得试用。
代码与模型仅供学习研究,许可证明确禁止商业使用。
ClipTalk: Edit Video by Talking
ClipTalk (GML-MMGroup) is an agentic video editing system: describe what you want in natural language, and the agent handles scene understanding, content location, edit planning, and output delivery. Open-sourced 2026-07, 126 stars.
Repo: github.com/GML-MMGroup/ClipTalk | License: Custom Non-Commercial Attribution License v1.1 | Stars: 126
Important: Non-commercial license only — no use for revenue-generating purposes.
Architecture
Three-tier: Python FastAPI (media kernel) + Node 22 Agent Service (Pi 0.84.4 runtime) + browser.
VLM/LLM: user-configured, not bundled. Supports Volcano Ark (ByteDance), OpenAI-compatible, Anthropic-compatible proxy. Pi requires real Tool Calling — models that only return JSON text are rejected.
Local models (no external API):
- SenseVoice Small — ASR + VAD + speaker diarization
- YuNet + SFace (ONNX) — face detection + recognition
- YOLOX + YoutuReID (ONNX) — full-body person tracking
- CAM++ — voice-print speaker verification
- TalkNet ASD — active speaker detection (isolated venv)
- SigLIP2 + multilingual-e5-base — visual/text embedding search
- Grounding DINO tiny — open-vocabulary object grounding
- PaddleOCR — on-screen text
- CLAP — audio-language embedding
All cutting/encoding via FFmpeg.
Four Core Editing Modes
- Highlight extraction — identify best moments from long footage
- Face-matched editing — upload reference face → extract all segments where that person appears
- Topic-based editing — natural language query → VLM + embedding → extract relevant segments
- Voice-print editing — upload voice sample → CAM++ → extract all segments where that speaker speaks
Conversational follow-ups supported: “make it shorter”, “start from the pricing part”.
6-Step Approval Gate
- Task binds to durable agent workspace
- Pi selects a SKILL.md skill (24 available)
- Planning phase: agent may only call
submit_plan— no analysis or rendering - FastAPI validates DAG: tool names, dependencies, side-effect classes, skill versions
- Approval binds plan hash + allowed toolset; Executor dispatches only then
- Identity, deletion, and final export remain user-confirmed actions — agent stops at review preview
Key Numbers
| Metric | Value |
|---|---|
| Max upload per file | 8 GB |
| Default storage limit | 50 GiB |
| Max workers | 1 |
| V2 algorithm latency | 34s vs baseline 20s |
| V2 sampling density | 0.25s/frame, densified to 0.083s at boundaries |
| Max sample points per candidate | 480 / up to 48 VLM calls |
Limitations
- No macOS / ARM — Linux x86-64 or Windows WSL2 only. Explicitly documented.
- V2 is slower than baseline — 34s vs 20s. If VLM budget exhausted, candidates stay in “pending review”.
- TalkNet requires isolated Python env — dependency conflicts. Without it, active-speaker detection runs in
shadowmode (logging only, no output modification). - Plugins run unsandboxed — full host-process privileges once approved.
- Env var doc inconsistency —
environment.examplesetsprimarymode by default;active-speaker.mdsays keep it atshadowuntil real-video validation passes. - No arXiv paper, no hosted demo, no HuggingFace page — GIF demos only.
- Non-commercial license — cannot be used for revenue-generating purposes.
Installation (CPU, Linux/WSL2)
git clone https://github.com/GML-MMGroup/ClipTalk.git && cd ClipTalk
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements-cpu.txt
python3 tools/prepare_recognition_models.py --data-root data
python3 tools/doctor.py --profile cpu
./start.sh # opens at http://localhost:5180
Configure VLM in Settings (required). Docker: cp .env.example .env && docker compose up --build.
Bottom Line
ClipTalk’s architecture is thoughtfully constrained — the 6-step gate, DAG validation, and plan-hash binding keep agent side effects auditable. The local model stack (face/voice/active-speaker recognition) covers realistic editing scenarios without cloud dependencies. The gaps are equally real: V2 is slower, TalkNet installation is non-trivial, macOS is unsupported, and no public benchmarks exist yet. A serious early-stage project worth watching for Linux-based video production workflows.
Code and models for research and learning only. Commercial use is prohibited under the custom license.
关于本站 · 免责声明
🍄 Mushroom Research Blog 是非营利、免费公开的个人科技观察博客与公众号 XStack18,不接受商业合作、不代表任何企业或机构立场,也不谋求商业利益。我们以个人视角客观中立地记录和分析 AI、Web3 等领域的最新模型发布与技术动态——不止转述新闻标题或二手信息,而是给出有独立思考的深入分析,希望帮更多人获得有价值的一手科技认知。
⚠️ 文中介绍的开源代码与模型,仅供学习交流与技术借鉴。它们大多仍处于早期阶段,有待进一步研究和验证,请勿直接用于工作或生产环境;如需采用,请先自行充分测试,并核实其许可证与安全性。
Open-source code and models featured here are shared for learning and reference only. Most are early-stage and still need further study and verification — please don't use them directly in your work or in production. Test them thoroughly and check their licenses and security first.
- 本站文章均为作者基于公开信息的个人研究与观点整理,不代表文中提及的任何公司、产品、模型的官方立场,未与其构成商业关联或合作关系。
- 科技行业信息更新极快,我们尽力保证内容准确、及时,但不对完整性、实时性做绝对保证,具体请以相关企业/项目官方公告为准。
- 文中引用的第三方商标、产品名称、图片、数据等版权归原权利人所有,我们会尽量注明来源;如你认为存在版权疑问或侵权,请通过下方邮箱联系我们,收到通知后会尽快核实处理(更正、加注来源或删除)。
- 文章内容仅为技术科普与个人观点,不构成投资、法律或其他专业建议,据此进行任何决策的后果需自行判断和承担。
📮 侵权 / 勘误 / 合作咨询:[email protected]
💬 评论与讨论
使用 GitHub 账号登录后发表评论