Communitygithub.com

assafkip/claude-video-editor

从静态图片构建视频,当没有现成素材可剪辑时——先合成旁白(ElevenLabs v3 + 音频标签),再从任何来源生成静态关键帧(AI 图像工具、截图、照片、HyperFrames 渲染的 HTML),并通过 animate-stills 配方(HyperFrames 镜头运动 + GSAP 氛围)进行确定性动画处理。适用于用户希望制作解说视频、纪录片风格视频,或任何基于生成/收集的视觉素材而非录制的视频。

claude-video-editor 是什么?

assafkip/claude-video-editor 是一款 AI 智能体技能,专门用于在没有现成录制素材时,从零开始构建视频。它采用“旁白优先”的工作流:先使用 ElevenLabs v3 生成带音频标签的旁白,并将其转写为带时间戳的字幕,从而锁定每个场景的时间窗口。然后,技能从任何来源(AI 图像工具、截图、照片、HyperFrames 渲染的 HTML)收集静态关键帧,并通过 HyperFrames 的 animate-stills 配方进行确定性动画处理——包含镜头运动(推近、平移、停留)和 GSAP 氛围效果(薄雾、雨、光晕、暗角)。最终输出风格统一的剪辑视频,支持刻录字幕、故事转折处的白闪(0.28 秒)以及暗角调色。该技能适用于 Claude Code、Cursor、Codex 等平台,依赖 ElevenLabs API 和 Node.js ≥ 22(HyperFrames CLI),但所有动画步骤均为本地确定性执行,不依赖外部生成式视频工具。

兼容平台✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/assafkip/claude-video-editor/tree/HEAD/skills/generate-footage

在你喜欢的 AI 中提问

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

文档

生成素材

插件的另一个入口点。video-use 用于编辑你已有的素材。此技能用于构建你还没有的素材的视频:旁白加静态关键帧,由 HyperFrames 合成并动画化,确定性渲染。

流水线(已在生产中验证;参见 docs/rca/ 了解为何运动步骤是确定性的):

脚本(带 v3 音频标签)
  → eleven_v3 旁白            (scripts/tts_v3.py)
  → 转写                       (npx hyperframes transcribe narration.mp3)
  → 将场景窗口锁定到句子边界   (词级时间戳)
  → 从任何来源获取静态帧       (每个场景一个关键帧——见下文)
  → animate-stills 合成         (recipes/04-animate-stills.md, build_scenes.py)
  → 检查 → 渲染 → 运动 + 音频 QA(scripts/motion_check.py, 联系表)

顺序至关重要:先旁白,后视觉

在构建任何合成或收集关键帧之前,先生成并转写旁白。口语的句子边界即是场景窗口。v3 朗读在节奏上是不确定的——120 秒的预估可能实际是 100 秒或 166 秒——因此先构建的视觉素材总是需要重新调整时间。

旁白——ElevenLabs v3 带音频标签

scripts/tts_v3.py —— 仅使用标准库,无需 pip 依赖。密钥来自 $ELEVENLABS_API_KEY 或插件的 skills/video-use/.env 文件。

python3 scripts/tts_v3.py --probe                      # 验证 eleven_v3 并列出语音
python3 scripts/tts_v3.py --voice <id> --stability 0.0 --script SCRIPT.md --out narration.mp3
  • 音频标签放在脚本文本中:[excited]、[whispers]、[softly]、[dramatic tone]、[warmly]。v3 会表现它们;v2 会忽略。
  • 稳定性:0.0 = 创意(最大表现力),0.5 = 自然,1.0 = 稳健。平淡的朗读通过降低稳定性并重新给脚本加标签来解决,而非放大音量。
  • 传递杠杆:对关键词用大写字母,用 ... 制造戏剧性停顿,形成对比(在重点台词前突然转为 [whispers])。
  • 在最终确定前,先用 2-3 种语音试听第一句。第一个语音永远不会是最终选择。
  • v3 可能轻微改写。务必转写并阅读结果;如果关键台词偏离,重新生成。

从任何来源获取静态帧

关键帧就是 PNG 格式。流水线不关心它来自哪里。每个场景一个静态帧,命名为 kf-NN.png,并列出在场景清单中(recipes/04-animate-stills.md 记录了 schema)。以下来源均有效:

  • AI 图像工具 —— 你已有的任何文生图工具(Gemini、GPT 图像、Midjourney、本地 SD 或托管的 actor——参见末尾的可选部分)。根据每个场景的提示生成,并附加一个固定的风格后缀。
  • 截图和照片 —— 产品 UI 截图、档案素材、扫描件、真实摄影作品。Ken Burns 效果就是为此发明的。
  • HyperFrames 渲染的 HTML —— 构建一个样式化的 HTML 帧并截图;引擎自己就能产生静态帧。

无论来源如何,都需遵守以下规则:

  • 锁定一个风格:在 DESIGN.md 中定义,并应用于每一帧。一旦加入运动和调色,跨帧的风格漂移会看起来像是不同的镜头。
  • 验证文件类型:某些工具会提供名称以 .png 结尾但实际为 JPEG 的文件;在合成前检查魔数(file kf-01.png)。
  • 对每一帧进行质量检查(查看图像)。有一帧风格不符就重新生成,不要保留。检查:文本伪影、水印、时代错误、特写人脸(漂移风险)、错误的调色板。
  • 对于公开发布的内容,生成的帧中不得包含具名 IP 或真实人物的肖像。

动画——确定性,仓库内执行

静态帧通过 animate-stills 配方(recipes/04-animate-stills.md)变成运动:这是一个清单驱动的 HyperFrames 合成,对每个静态帧应用镜头语言(推近、平移、停留)和 GSAP 氛围(薄雾、雨、光晕、暗角),场景窗口锁定在转录文本上。scripts/build_scenes.py 根据清单生成场景层;scripts/motion_check.py 通过渲染输出中的像素差异来证明真实运动。每次运行渲染结果完全相同,零成本,可离线工作。

需要 Node.js >= 22 来运行 HyperFrames CLI。

字幕与合成

  • 字幕刻录在画面上(适合 Reddit/X 上的静音自动播放),按短语级别,根据转录文本的单词时间对齐。
  • 故事转折处使用白色闪屏(0.28 秒);其他地方使用柔和交叉淡变;深色暗角调色能统一来自不同来源的静态帧,并让字幕更易读。
  • 验证渲染中的运动:在一个场景内对相隔 4 秒的两帧进行像素差异分析(scripts/motion_check.py —— 平均灰度差异 > 3 即为真实运动)。
  • 音频质量检查:ffmpeg -af volumedetect —— 纪录片风格语音的平均电平约为 -26 dB。

可选:托管的生成工具

这些不是依赖项。它们只是获取静态帧或片段的一种方式,并且可能随时失效而不另行通知——请做好相应计划。

  • Apify 文生图 actor(例如 akash9078/ai-image-generator,约 $0.01/张)曾很好地用于批量关键帧生成。注意静默失败(返回 ok:true 但 URL 为空)以及错误的文件类型标注。
  • 托管的图生视频 actor 曾是此流水线的运动步骤所在。在 2026-06-11,actor danitn11/wan22-lightning-image-to-video(总共 2 个用户)在上游生产环境中突然失效,每次运行都立即失败;完整分析见 docs/rca/rca-generate-footage-animation-2026-06-11.md。生成式图生视频现在位于一个独立的配套仓库中,带有可插拔的 BYO-key 后端;此插件的运动步骤是确定性的且本地的。

Individual skills in this repo

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

assafkip/claude-video-editor

GSAP animation reference for HyperFrames. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), position parameter, labels, nesting, playback), and performance (transforms, will-change, quickTo). Use when writing GSAP animations in HyperFrames compositions.

assafkip/claude-video-editor

HyperFrames CLI tool — hyperframes init, lint, preview, render, transcribe, tts, doctor, browser, info, upgrade, compositions, docs, benchmark. Use when scaffolding a project, linting or validating compositions, previewing in the studio, rendering to video, transcribing audio, generating TTS, or troubleshooting the HyperFrames environment.

assafkip/claude-video-editor

Install and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add, installing a block or component, wiring an installed item into index.html, or working with hyperframes.json. Covers the add command, install locations, block sub-composition wiring, component snippet merging, and registry discovery.

assafkip/claude-video-editor

Create video compositions, animations, title cards, overlays, captions, voiceovers, audio-reactive visuals, and scene transitions in HyperFrames HTML. Use when asked to build any HTML-based video content, add captions or subtitles synced to audio, generate text-to-speech narration, create audio-reactive animation (beat sync, glow, pulse driven by music), add animated text highlighting (marker sweeps, hand-drawn circles, burst lines, scribble, sketchout), or add transitions between scenes (crossfades, wipes, reveals, shader transitions). Covers composition authoring, timing, media, and the full video production workflow. For CLI commands (init, lint, preview, render, transcribe, tts) see the hyperframes-cli skill.

assafkip/claude-video-editor

Beginner-friendly end-to-end video creator for HyperFrames. Use when the user says "make a video", "create a video", "new video", "build a video", "video from scratch", "I want to make a video", "help me create a video", or when someone who's never used HyperFrames before arrives with a concept, script, or rough idea and wants a finished MP4. Interviews the user in one pass, then builds the full video with mandatory preview and visual-verification gates.

assafkip/claude-video-editor

Build and iterate short-form vertical (9:16) videos in Hyperframes — TikTok/Reels/Shorts style. Use when Nate says "short-form video", "vertical video", "TikTok/Reels/Shorts", "make a short", "talking-head + motion graphics", or when the target is a 1080x1920 composition with face video + synced scene overlays + karaoke captions. Encodes the full May Shorts 19 playbook: face-mode choreography, audio-synced scene timing, karaoke captions, and the 10-rule quality checklist.

assafkip/claude-video-editor

Edit any video by conversation — the orchestrator for the bundled video pipeline. Use when the user wants to edit, cut, caption, grade, or add motion graphics to footage; drops a folder of clips and says "edit this"; or asks to make a promo/teaser/tutorial/short. Routes to video-use (the cut engine) and HyperFrames (motion-graphics overlays), with a motion-craft library for taste.

assafkip/claude-video-editor

Production pipeline for mathematical and technical animations using Manim Community Edition. Creates 3Blue1Brown-style explainer videos, algorithm visualizations, equation derivations, architecture diagrams, and data stories. Use when users request: animated explanations, math animations, concept visualizations, algorithm walkthroughs, technical explainers, 3Blue1Brown style videos, or any programmatic animation with geometric/mathematical content.

assafkip/claude-video-editor

Capture a website and create a HyperFrames video from it. Use when: (1) a user provides a URL and wants a video, (2) someone says "capture this site", "turn this into a video", "make a promo from my site", (3) the user wants a social ad, product tour, or any video based on an existing website, (4) the user shares a link and asks for any kind of video content. Even if the user just pastes a URL — this is the skill to use.

相关技能