Communitygithub.com

learnaiwithhugo/video-editor-skills

将原始对镜说话片段剪辑为成品竖屏Instagram Reels,并严格遵循创作者通过 build-my-style 设定的个人风格(STYLE.md,包含锁定效果、缩放/阴影、精选音效)。自动选取每句台词最后一条完美素材,首先生成故事板(每节静态画面,关键节提供A/B/C选项,支持批准/修改及备注),可选渲染关键时刻的短视频变体供选择,然后使用HyperFrames构建完整编辑,自行审查渲染结果,并将用户的每条反馈转化为STYLE.md中的带日期规则,使下次编辑更出色。仅使用免费本地工具。

video-editor-skills 是什么?

该技能是一个AI驱动的一站式竖屏视频编辑工作流,专为内容创作者设计。当用户提供原始对镜说话片段时,它能自动识别并选取每句台词的最后一条完美素材,生成故事板供用户预览和审批(每个关键节提供A/B/C选项),在需要时渲染关键片段的短视频变体,最终使用HyperFrames构建完整的1080x1920 Instagram Reel。技能的核心创新在于“风格从反馈中学习”:所有用户对编辑结果的评价(如“不喜欢这个缩放”、“把Logo放大”)都会被AI解析并作为带日期的规则写入STYLE.md,确保下次编辑自动改进。它完全依赖免费本地工具(ffmpeg、Python、Playwright等),不将任何内容上传到外部服务器。技能支持所有主流AI Agent平台(Claude Code、Cursor、Codex等),适合反复需要剪辑同类内容(如编程教程、产品演示、个人Vlog)的创作者,目标是让每次编辑都比上一次更贴合个人风格。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/learnaiwithhugo/video-editor-skills/tree/HEAD/skills/edit-my-video

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

/edit-my-video

原始片段输入,输出成品1080x1920竖屏Reel,严格遵循用户的个人风格。用户通常非技术背景:请使用简短明了的语言,一次只说明一步,所有技术工作由你完成,绝不让用户接触代码。

绝不要使用AskUserQuestion弹窗(在聊天中提问)。绝不发布或上传任何内容到任何地方。所有写给用户或显示在屏幕上的内容中,绝不要使用破折号。

SK = 本技能所在文件夹。STYLE = 风格文件夹(默认:保存在SK/config.json中的文件夹,否则是/build-my-style创建的,否则为~/edit-style;如果没有任何一个包含STYLE.md,请询问位置或建议先运行/build-my-style)。WORK = 每个视频一个文件夹,<编辑文件夹>/<短片名>/(短片名 = 短横线命名法,例如github-repos)。所有路径用引号括起来,因为它们可能包含空格。

脚本运行方式:python3 "SK/scripts/<name>.py" ...;每个脚本在无参数运行时都会打印其使用说明。

首次编辑前阅读:references/creative-rules.md(最重要的文件:如何设计,以及严格的品味检查)和references/engine.md(负责渲染的HyperFrames模式)。步骤4前阅读references/storyboard.md。

最重要的规则

STYLE.md是护栏,而非菜单。它固定了外观(颜色、字体、动感、音量水平、安全区域、已拒绝的内容)。它不会限制你的创作。对每句台词,要思考什么画面最能解释这个想法,然后在允许的外观范围内全新设计。第一次测试编辑从风格页面复制了模板(像“它只能做三件事”的清单),创作者称其“极度受限”且“完全没有即兴创意”。请变换布局;绝不要连续两次使用相同布局;让视觉元素大一些。

步骤(用一行简短文字说明你正在进行的步骤:“步骤3/8:寻找最佳素材”)

1. 环境检查(几秒钟)

python3 "SK/scripts/setup.py" --check。将缺失项显示为简短清单:是什么、用途、一键修复方法。对于必须安装的内容(ffmpeg、Node、Python、Chrome),告诉用户将命令粘贴到终端应用(Command + Space,输入“终端”),然后说“完成”。仅在用户同意后运行--install(安装faster-whisper、playwright、HyperFrames、语音模型):“我可以安装免费编辑工具吗?大约5分钟,一次性完成。”然后运行python3 "SK/scripts/style.py" check "STYLE"(检查风格文件夹是否完整)和python3 "SK/scripts/style.py" serve "STYLE"(启动风格页面服务器,如果尚未运行;记下URL)。首次运行额外操作:询问编辑结果应保存在哪里(建议风格文件夹旁边的edits/文件夹),并保存:setup.py --save --style "STYLE" --edits "<folder>"。

2. 素材接收(一条消息)

仅询问你尚未掌握的内容:

  • 原始片段文件夹(通常包含大量重复素材;你将使用每句台词的最后一条完整干净素材)
  • 视频主题,以及脚本或备注(如果有)
  • 行动号召的关键词
  • 目标时长(建议25至40秒)
  • 音乐:仅在用户指定曲目时使用。否则不使用(创作者自己选择音乐)。 然后mkdir WORK并运行python3 "SK/scripts/style.py" resolve "STYLE" --out "WORK/style.json"。 完整阅读STYLE.md:特别是Feedback from edits、Rejected和Kept,最新优先。这些是创作者在以往编辑中的亲自修正,优先于其他所有规则。

3. 素材选取、剪辑、文本(每5分钟素材约1分钟)

  1. takes.py "WORK" "<clip>" ... --prompt "<他们要说出的名字>"列出每次尝试,标记重拍。 阅读WORK/takes/*.txt。选取每句台词的最后一条完整干净素材(跳过卡顿;通过移动in来裁剪不好的开头)。编写WORK/edl.json(格式见cut.py的使用说明)。
  2. cut.py "WORK" --prompt "<名字>":将帧精确的片段输出到WORK/hf/assets/v/,语音标准化至-16 LUFS,边缘紧密,并生成带有Reel时间的words.json / words.txt。查看progress/01-cut-takes-in-order.jpg。
  3. 将words.txt与用户原意比对。Whisper可能误听名字:使用captions.py fix "WORK" "49=ArtCraft"在words.json中修正(仅限修正实际所说内容)。 用每节一行和最终时长向用户说明剪辑结果。

4. 首先创建故事板(用户在任何内容渲染前批准)

遵循references/storyboard.md:编写WORK/storyboard.json(每节一个想法:文字、时间、布局、视觉元素、动画、字幕、声音),基于真实素材为每个节构建一幅静态画面,并将计划的视觉元素合成进去(真实截图、真实应用图标、JPG),在3或4个关键节(钩子、核心想法、收尾、CTA)提供2到3个备选方案(A/B/C)。然后运行storyboard.py page "WORK" --style "STYLE"并打开http://localhost:<port>/storyboards/<slug>/(open <url>)。提示:“你的故事板已打开。在有选择的地方选择A、B或C,批准或修改每个节,任意位置添加备注,点击提交,然后告诉我‘完成’。”等待用户说“完成”。 然后运行storyboard.py review "WORK" --style "STYLE"将用户的选择和备注合并到storyboard.json中。仅重建用户修改过的节并再次展示,直到所有内容获得批准。

5. 变体(可选,主动提供一次:“想在看完整版之前,先看看钩子部分的2到3个动效版本吗?”)

针对2到3个关键时刻:将编辑构建到足以覆盖它们(步骤6),将hf/index.html复制为hf/index-<节>-B.html并重新设计该节,然后运行render.py slice "WORK" <节>-A <start> <end>和render.py slice "WORK" <节>-B <start> <end> --index "WORK/hf/index-<节>-B.html"(每段2到4秒,渲染约6秒)。将这些变体的"video": "variations/<name>.mp4"放入storyboard.json的备选方案中,然后运行storyboard.py page "WORK" --style "STYLE" --variations,打开.../storyboards/<slug>/variations.html,等待用户说“完成”,然后运行storyboard.py review ... --variations,将获胜方案保留在index.html中。

6. 构建编辑(创意部分)

  1. render.py new "WORK" --title "<视频> v1":创建带有风格颜色、字体、字幕阴影和动效工具包(engine/kit.js)的固定HyperFrames项目到WORK/hf/。
  2. 收集真实素材:shoot.py web <url> <png> --mobile(页面完全加载后)、shoot.py icon "<App>" <png>(真实的macOS应用图标),否则从工具官方网站获取官方Logo。
  3. 按照已批准的故事板逐节编写WORK/hf/index.html(模式和工具包API见references/engine.md),将每个视觉元素的时间对齐到words.txt中对应的词句。每节都全新设计;为每个视觉场景添加data-visual="<what it is>"和data-layout="face|split|full"属性。
  4. 字幕:captions.py make "WORK" --skip <a-b>(跳过屏幕上文本已包含该词句的时刻),然后手动编辑WORK/caps.json:将字幕分组为自然阅读长度(2到3个词),设置top使其不遮挡嘴部,按节设置cls,对重点词使用html。运行captions.py inject "WORK"。
  5. 音效:编写WORK/cues.json(每个剪辑、面板、图标、台词、重点词在锁定音量级别获得音效提示;无重复音效),仅在用户指定曲目时添加音乐,然后运行mix.py "WORK"(将混音标准化至-16 LUFS)。
  6. 运行render.py check "WORK"(修复所有错误),运行render.py snap "WORK" <times> --name <beat>并查看你修改的帧。在每一步将编号图片放入WORK/progress/(脚本通常会自动完成大部分工作)。

7. 先自行渲染和审查,再展示给用户

运行render.py render "WORK" --out "WORK/<视频名称> - v1.mp4",然后运行qa.py "WORK" "<那个mp4>"。 修复所有FAIL项。然后实际查看它列出的每张图片(每秒2帧的联系表和带有安全区域标注的全尺寸特写):文字拥挤、视觉元素过小或过高导致留白、字幕遮挡嘴部、重复布局、任何突兀的内容、任何黑色区域、数字/名称与文字不匹配。自动检查会遗漏肉眼能发现的问题(本技能的第一次测试通过了检查,但存在一个模糊的重点词和半空卡片)。进行一次修复,重新渲染,重新运行qa.py,然后运行open "<mp4>"。 用几行文字告诉用户:文件位置、时长、逐节发生的事件,以及你猜测的内容。

8. 反馈循环(每次用户给出意见时)

修复问题,重新渲染(重新渲染约需20秒),重新运行qa.py,打开文件。同时将意见写入用户的风格文件,以便下次编辑自动改进: python3 "SK/scripts/feedback.py" "STYLE" --video <短片名> --rule "<从现在起这样做>"(或--rejected "<再也不这样>",--kept "<喜欢这个>")。使用用户的措辞,每条意见单独标记;用户喜欢的内容和讨厌的内容同样重要。该命令会先备份STYLE.md并记录日志。用一行文字说明你添加的内容。如果意见涉及锁定值(光泽效果、缩放曲线、字幕阴影),告知用户它位于其风格页面的实验室中,并提供打开链接,而不是静默覆盖锁定值。

时间估算(M系列Mac,从约8分钟素材制作15秒成品Reel)

素材选取:每5分钟素材约1分钟 · 剪辑+文字:约15秒 · 故事板静态画面:约2分钟 · 变体片段:每个约6秒 · 渲染:约20秒 · QA:约30秒

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

learnaiwithhugo/video-editor-skills

Style Studio. Walks a creator (usually non-technical) through building their OWN video editing style on an interactive page in their browser - their colours and font, reference reels they love broken down frame by frame, then rounds of real animated options (captions, accent and intro text, zooms, diagrams, logos, split screen, tool talk, sound effects) they mark Keep / Maybe / Drop, plus Shine, Zoom and Shadow labs with Lock buttons. Ends with a STYLE.md guide and locked settings that /edit-my-video uses. Use whenever someone says "/build-my-style", "build my style", "make my editing style", "style studio", "I want my own edit style", "copy the editing style of these reels", "make my brand style for videos", sends reels they want their edits to look like, or comes back to carry on their style (rounds, labs, sounds). Also the STYLE keyword giveaway.

learnaiwithhugo/video-editor-skills

Edit a raw talking-head clip into a finished Instagram reel in Kallaway's editing style (black dotted stage with one live diagram per idea, rounded face card with the head popping out over its edge, one-word white captions, red as the only accent, hard cuts on word onsets, a real sound effect on every animation, optional quiet ducked background music). Free local tools only (ffmpeg, Whisper, HyperFrames). Use when someone says "/kallaway-edit", "edit this like Kallaway", "make this reel in the Kallaway style", or drops raw clips and asks for a Kallaway-style edit.

learnaiwithhugo/video-editor-skills

Create a new editing-style skill from 2-3 reference reels of one creator or style (e.g. "make me a skill that edits like @creator"). Downloads the reels, measures them frame by frame, has one agent break down each reel, merges the breakdowns into a style guide plus a measurable style spec, clones the proven editing engine into a new /<style>-edit skill, then locks the style with a match score, pixel font matching, a golden recreation test, one critic round and the user's ear check. Free local tools only. Use when someone says "/new-edit-style", "make an edit style skill", "copy this creator's editing style", "I want to edit like X", or drops several reels from one creator and asks for their style.

相关技能