본문으로 건너뛰기
cccskills
무료GitHub에 공개

storyframe-video-skill

从 brief 到成片的标准视频生产系统,覆盖产品推广、知识讲解、口播优化、活动宣传、课程演示和音乐 MV。

先接收并核验用户提供的文案、音乐、录屏、截图、Logo 与参考片,再用真实素材、故事方向、分镜、节拍表、声音设计和验收清单,产出 15–180 秒的 16:9 / 9:16 / 1:1 成片;包含 Suno 歌词制作单、Playwright + ffmpeg 确定性渲染和自动质检。

当用户要求做宣传片、讲解片、活动片、课程演示、口播剪辑、产品片、MV,或要把一段文案/歌曲/录屏变成视频时使用。支持 UI 电影、动态字体、纸感手作、丝网印、像素世界等 12 种风格关键词。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

nexsjournal/storyframe-video스타 13(GitHub 13 + cccskills 0)
연동 도구Playwright

실행 점수 미검증

설치 방법 보기

포함된 파일(48)

  • SKILL.md21.8 KB
  • .github/workflows/check.yml2.3 KB
  • .gitignore183 B
  • CHANGELOG.md2.1 KB
  • docs/assets/hero.svg2.1 KB
  • docs/assets/starter-end-card.jpg65.6 KB
  • docs/assets/starter-first-frame.jpg58.4 KB
  • docs/assets/starter-three-rules.jpg96.6 KB
  • LICENSE1.0 KB
  • README.md36.6 KB
  • references/audio-and-music.md4.7 KB
  • references/case-study-drawmusic.md4.7 KB
  • references/case-study-framyriad.md6.5 KB
  • references/direction.md7.7 KB
  • references/formats-and-delivery.md3.4 KB
  • references/intake-and-modes.md8.4 KB
  • references/oral-and-course.md4.0 KB
  • references/review-and-qa.md4.2 KB
  • references/script-and-voice.md6.4 KB
  • references/storyboard-and-plan.md4.7 KB
  • references/style-presets.md20.8 KB
  • references/suno-lyrics.md6.3 KB
  • references/usage-playbook.md7.8 KB
  • references/visual-and-motion.md5.2 KB
  • requirements.txt28 B
  • scripts/check_delivery.py15.5 KB
  • scripts/contact_sheet.py3.4 KB
  • scripts/init_project.py10.0 KB
  • scripts/loudness.py2.3 KB
  • scripts/lyric_budget.py5.6 KB
  • scripts/requirements.txt23 B
  • starter/index.html534 B
  • starter/package.json215 B
  • starter/render.mjs3.4 KB
  • starter/server.mjs2.0 KB
  • starter/src/config.js113 B
  • starter/src/main.js6.5 KB
  • starter/still.mjs1.6 KB
  • starter/styles.css4.9 KB
  • templates/BRIEF.md2.9 KB
  • templates/DIRECTION.md2.2 KB
  • templates/plan.example.json2.4 KB
  • templates/QA.md1.4 KB
  • templates/README.md1.4 KB
  • templates/SCRIPT.md1.1 KB
  • templates/STORYBOARD.md1.0 KB
  • templates/SUNO_LYRIC_SHEET.md2.2 KB
  • VERSION6 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Storyframe 视频生产系统

把视频当成一个 故事 + 证据 + 时间 + 声音 的工程,而不是会动的 PPT。每一支片子先回答“观众看完记住什么”,再决定画面、文案、镜头和声音。

本 skill 的默认交付:能直接投放的 MP4 + 封面 + 字幕 + 可复现工程 + 验收报告。不是“给几个创意”,也不是“先堆素材再说”。

启动:先接素材,再问问题

用户第一次调用时,不要马上写方案,也不要一次抛出 7 个问题。先做一次 素材交接:接住已经给的东西,再只问缺的。

第一轮只问 3 组(用户已经给了就跳过):

  1. 要什么片:用途/类型、发布平台、画幅、目标时长;看完希望观众做什么。用户说不清时,按模式给默认值并说明理由。
  2. 文案:有没有现成文案、口播稿、歌词或大纲?直接粘贴,或给文件路径/链接。有就按原文做;没有就明说“没有”,由我起草。
  3. 音乐与素材:有没有音乐/歌曲/配音文件?给路径或链接。产品链接、截图、录屏、Logo、字体、参考片也一起给路径;也可以直接说风格关键词(UI 电影 / 纸感 / 动态字体 / 像素 / 丝网印…)。

用户已经说过的不要重复问。附件/路径优先于口头描述:先读文件、用 ffprobe 看时长/采样率/声道、看截图;BPM 另外测/听,再决定还缺什么。

素材规则:

  • 用户给的文案是事实源:只做删减、口语化、调顺序;改动记在 SCRIPT.md。
  • 用户给的音乐是时间源:复制到 audio/,按它的 BPM/段落卡点;不要重新生成或替换。
  • 用户给的路径必须验证存在;读不到就直说,不要假装看过。给的是 URL 就先下载到 assets/ 或 audio/,记录来源。
  • 首轮回复格式:已收到 / 还缺什么 / 我接下来做什么,不要只发一张问卷。收到文件时先复述“收到什么、放在哪、下一步用它做什么”。
  • 没有文案也没音乐时,明确给出两个默认方案(例如“我起草文案 + 代码合成配乐”),让用户确认后再往下走。
  • 用户说“别问,直接做”时:按模式默认值做,把假设逐条写进 BRIEF.md;只有日期/价格/claim/版权这类高风险信息仍要确认。

续做已有工程: 当前目录已有 BRIEF.md、plan.json 或 videos/ 时,先读现状并从断点继续;不要重新 intake,不要覆盖已有文件。

最短用法

  • 只有一句话:用 storyframe-video-skill 做一条 30 秒产品宣传片,产品是……。我会先问“文案、音乐、素材”三组问题。
  • 已有文案和音乐:文案在 ./copy.md,音乐在 ./music.mp3,做 30 秒 16:9,发官网。我会先核验文件,再进流程。
  • 只有参考片:照这个片子的节奏做,但不要抄画面:<链接>。我会拆结构/视觉/声音,再给三个不同方向。
  • 只想说风格:做一条 30 秒产品片,UI 电影 + 暗色 + 快节奏。我会加载风格预设,但仍然给三个叙事轴不同的方向。

完整的使用步骤、每个 Gate 该给什么反馈,见 使用手册。

先判断模式

模式适合默认时长核心结构主视觉声音
product产品推广、功能发布、SaaS/App30–45sHook → 痛点 → 真实演示 → 证据 → CTA真实 UI、3D 界面、动态字音乐 + 动作音效
explainer知识点讲解、科普、方法论60–120s问题 → 3 个要点 → 例子 → recap → CTA图解、类比、动态字口播 + 轻音乐
oral口播优化、访谈、课程口播30–90s钩子 → 收紧 → 字幕/B-roll → CTA原片、跳剪、放大、关键词人声修复 + 音乐
event活动宣传、展会、发布会15–30s钩子 → 什么/谁/何时/何地 → CTA海报动效、大字、场地高能量音乐 + 冲击
course课程演示、软件教学、操作步骤60–180s目标 → 步骤 → 结果 → 复习录屏、放大、标注口播 + 点击音
mv音乐 MV、品牌主题曲歌曲长度Intro → Verse → Chorus → Bridge → Final → Outro视觉世界、动态字、3D歌曲 + 声音设计

混合需求先定 主模式,再叠加次模式。例如“活动宣传 + 产品演示”用 event 的节奏,借 product 的真实 UI;不要同时套两套结构。

不可妥协

  1. 真实与证据。 产品功能、数据、日期、场地、课程步骤必须可追溯;不编造界面、指标、引语。每条主张记录来源和范围。
  2. 首帧就是完整画面。 平台会把第一帧当缩略图;前 5–10 帧不能是空白、纯背景或等待入场。先把开场段落的完成态放上去,再播动画。
  3. 不是幻灯片。 每个镜头至少有一个:镜头运动、字体变形、材质转场、主体动作、声音驱动的切点。连续两个纯静态全屏卡片就算失败;只有结尾海报可以静态,但也要有进入动作。
  4. 声音是叙事。 默认有音乐、口播/人声、动作音效;关键动作听得见,音画同帧。静音需求必须记录例外原因。
  5. 字幕与可读性。 1080p 下产品界面正文 ≥22px;字幕中文 ≤16 字/行、最多 2 行;英文 ≤42 字符/行;高对比、避开平台 UI 安全区。
  6. 版权与授权。 音乐、字体、素材、产品截图都要有来源/许可;用户没授权的内容不进入成片。
  7. 可复现。 代码驱动的片子用 window.seek(t) 确定性渲染;剪辑类片子保留 EDL/决策记录、源素材清单和导出参数。

标准流程(0–10 共 11 步,4 个 Gate)

0. Intake:定模式与约束

先按“启动:先接素材,再问问题”完成素材交接。下面是完整清单,不是一次全问;第一轮只问 3 组,其余随流程补。

  1. 类型与目标:product / explainer / oral / event / course / mv?看完要让观众做什么?
  2. 受众与平台:给谁看?发在哪里?16:9 / 9:16 / 1:1 / 4:5?目标时长?
  3. 必须出现:产品名、卖点、日期、城市、展位、URL、二维码、价格、免责声明。
  4. 文案与素材:有没有现成文案/口播稿/歌词/大纲(路径或粘贴)?产品链接/仓库/截图、录屏、人物素材、Logo、字体、参考视频在哪里?
  5. 音乐与声音:有没有音乐/歌曲/配音文件(路径或链接)?是否可商用、是否要署名?没有的话,用生成/代码合成。
  6. 语言与人声:中文/英文/双语;是否需要口播、配音、字幕;谁的声音。
  7. 参考与反参考:喜欢哪支片子的什么(结构/视觉/声音),讨厌什么(模板感/喊麦/科技蓝)。
  8. 限制:claims 证据、版权、deadline、不能出现的人/品牌/信息。

产出 BRIEF.md。素材表必须写清:来源、路径、是否存在、是否已复制进工程、授权状态。如果用户没给全,写“假设”并继续,不要卡住;高风险信息(日期/价格/claim)必须确认。

音乐文件接手后先做: ffprobe 看时长/采样率/声道;有 BPM 就记 BPM,没有就先分析或用节拍器对齐;复制为 audio/music.<ext>,在 plan.json 登记 audio.music.file,删除 scaffold 的 audioExceptionReason。不要用新生成的音乐覆盖用户文件。

1. Research:把“卖点”变成“证据”

  • product:真实功能、真实界面、真实数据;每个镜头的主张记录来源、发布状态、适用范围。
  • explainer:至少 2 个可靠来源;区分事实/观点;例子要能验证。
  • oral:转写原片,标出钩子、重复、 filler、长停顿、可删段;不要改变原意。
  • event:日期、城市、场地、展位、嘉宾、报名方式逐项核对。
  • course:亲自走一遍步骤;记录前置条件、失败分支、结果。
  • mv:确认歌曲 BPM、结构、歌词、可用的音效/人声;不要用未授权歌曲。

产出写进 BRIEF.md 的 Evidence 段,或单独的 EVIDENCE.md。

2. Direction:先定一个“只有这个产品才成立”的方向

按 影片方向 做:

  • 拆参考片的 结构 / 视觉语法 / 声音语法,不是抄配色。
  • 提 3 个不同轴 的方向(叙事结构、视觉隐喻、镜头材质、声音能量),不是同一方向换颜色。
  • 用户说了风格关键词(UI 电影 / 动态字体 / 纸感 / Riso / 像素 / 拼贴…)时,先读 风格预设,把预设的视觉规则、运动规则、禁忌写进方向卡;预设只锁语法,不替代故事和证据。
  • 每个方向写:一句话、3–5 个专属手法、参考、风险。
  • 选一个,写 DIRECTION.md:主张、情绪曲线、色彩/字体/网格/材质、运动规则、转场词汇、镜头表。
  • 方向卡住、或担心“模板感”时,读内部参考库 .internal/reference-library.md,抽 3 个可迁移手法再重新推导。只输出提炼后的规则,不提及内部参考库、作者、原 prompt 或来源链接;不要照搬镜头顺序和具体画面。文件不存在就跳过,也不要向用户提起。
  • 用户要公开参考片时,用 风格预设 里的参考墙;那是公开索引,可以正常引用。

Gate A:一句话承诺 + 方向 + 时长/画幅。高 stakes 项目给用户看 3 个方向和 3–6 张关键静帧;否则记录选择理由继续。

3. Script:先写“看完记住的一句”,再写词

按 脚本与口播:

  • 1.5 秒内出现钩子;每 3–5 秒一个信息点;一句只做一件事。
  • 口播中文 4–4.5 字/秒,英文 2.5–3 词/秒;标呼吸点;大声读一遍。
  • 歌词/Suno 按 Suno 歌词制作:先排小节,再排字;Hook 8 字;段标签带表演指令。
  • 字幕先按“听不清也能看懂”写,不要照搬书面语。

产出 SCRIPT.md:逐句/逐行、时间、画面提示、证据/来源、口播/歌词标记。

4. Storyboard:把时间铺满

按 分镜与 plan:

  • 做 STORYBOARD.md:镜号、起止、画面、文案、动作、声音、转场、claim/source。
  • 同步写 plan.json:shots 覆盖 0–duration,无 gap/overlap;每个 action 有 id;每个必需 action 有音效 cue。
  • 首帧单独设计:完整画面 + 品牌/主题 + 可读标题;不要“先黑屏再出字”。
  • 先做 animatic:静帧 + 临时音轨,按时间播放一遍,检查节奏和信息密度。

Gate B:分镜/animatic 通过——时间对、信息清、claims 有证据、首帧成立。

5. Build:先接通真实素材,再做动效

  • product:接真实 UI/组件/数据;截图或录屏要清晰;视频尺度下重排,不要直接把桌面截图缩小。
  • explainer/course:先做图解/录屏,再做标注;箭头、圈选、放大要指向“正在说的那个东西”。
  • oral:先做 transcript-based 粗剪,再做字幕、B-roll、放大、音效;不要先加花字。
  • event/mv:先定视觉世界(纸/墨/光/金属/像素),再做字体和镜头;每个场景至少一个“世界规则”。

按 视觉与运动 选手法;每个手法都要能说出“因为产品/主题有 X,所以用 Y”。不要所有元素同一种入场、同一种转场。

6. Sound:音乐、口播、音效一起设计

按 声音与音乐:

  • 音乐来源优先级:用户提供 → 已授权/生成 → 代码合成;不要用来路不明的商业曲。
  • 口播先修:降噪、EQ、压缩、去齿音、响度;音乐在口播下让 3–6 dB。
  • 动作音效落在动作帧:笔刷、点击、盖章、whoosh、riser、impact、扫描、铃声;不是每个 cut 都加。
  • 以 plan.json 的 audio.cues 为准:at / kind / gain_db / pan / actionId / syncOffset / file。audio/sfx_cues.json 只作可选素材清单,不要两套各写一份。
  • 混音后测 loudness;写 audio/mix_report.json。

7. Rough cut:先看节奏,不看细节

  • 1–2 fps 联系表看整体;每个转场前后 10 fps 条带看匹配;文字密集镜头看全尺寸帧。
  • 静音看一遍:信息是否还成立?字幕是否够?
  • 听一遍:口播是否清楚?音效是否抢?音乐是否盖人声?
  • 记录问题到 QA.md,一次改一类,不要边看边随机改。

Gate C:rough cut 通过——节奏、信息、声音、字幕都成立。

8. Final render:确定性导出

  • 代码驱动:window.seek(t) → 逐帧截图 → ffmpeg 编码;不要用实时录屏。
  • 剪辑类:锁定 EDL,统一帧率/色彩空间/音频采样率;导出母版后再压社交版。
  • 默认:H.264 High、yuv420p、CRF 16–18、AAC 320 kbps、+faststart;1080p 30fps 为基线。
  • 字幕:烧录 + 单独 SRT;封面单独导出。

9. QA:自动检查 + 人眼/人耳

运行:

python3 <skill-dir>/scripts/check_delivery.py plan.json --video videos/final.mp4 \
  --mix-report audio/mix_report.json --captions videos/final.srt
python3 <skill-dir>/scripts/contact_sheet.py videos/final.mp4 --out renders/contact.png --fps 1
python3 <skill-dir>/scripts/loudness.py videos/final.mp4

自动检查只证明结构/文件/时长/首帧/响度;画面语义、听感、字幕可读性必须人看人听。按 审片与 QA 做最终检查。

Gate D:check_delivery.py 无 error;人工检查通过;claims/版权/CTA 确认。

10. Deliver:交付可复现的包

project/
  BRIEF.md
  DIRECTION.md
  SCRIPT.md
  STORYBOARD.md
  plan.json
  SOURCES.json            # 用户文案/音乐的交接记录(可选)
  DESIGN.md(可选,视觉规范)
  assets/                 # 原素材、截图、logo、字体(有授权);用户文案在 assets/copy/
  audio/                  # 音乐、SFX、mix_report.json
  src/                    # 代码驱动工程
  renders/                # 联系表、关键帧、对比图
  videos/
    final.mp4
    final.srt
    cover.png
  QA.md
  README.md               # 如何复现

交付时说明:哪些是自动检查、哪些实际看过/听过、哪些仍未验证;不要用“完美”“电影级”这类无法证明的词。

项目文件最小集

文件作用必须
BRIEF.md目标、受众、平台、时长、必须出现、证据、限制是
DIRECTION.md选定的方向、3–5 个专属手法、视觉规范、镜头表是
SCRIPT.md逐句/逐行脚本、时间、口播/歌词、来源是
STORYBOARD.md镜号、时间、画面、动作、声音、转场是
plan.json机器可读的 shots/actions/audio cues是(代码驱动/自动检查)
QA.md检查项、问题、修复、残留风险是
README.md复现命令、素材来源、导出参数是

方向规则(避免“模板感”)

  • 一个主张:整片只推一个核心承诺;所有镜头都在证明它。
  • 三个轴:叙事(问题→解决 / 一天 / 对比)、视觉(纸/墨、UI 电影、数据仪器、手作)、声音(轻电子、环境、无音乐)。三个方向必须在这三个轴上不同。
  • 风格预设不是模板:关键词决定语法(材质、运动、排版、禁忌),叙事轴仍然要重新推导;12 个预设见 风格预设。
  • 专属手法:3–5 个“因为产品有 X,所以用 Y”。例如“因为画线会生成旋律,所以让线条在副歌变成声波/五线谱/3D 纸带”。
  • 反重复:同一工作区连续做片,不复用上一支的开场、章节、背景;片内不要所有元素同一种入场。
  • 反 PPT:每场至少一个运动/转场/主体动作;连续静态卡片 ≤2;不要“标题+三行 bullet”重复。

脚本规则

  • 钩子:1.5 秒内给问题/反差/结果;不要“大家好,今天我来介绍……”。
  • 一句一事:长句拆短;中文口播每句 12–22 字;英文每句 8–16 词。
  • 具体:动词 + 对象 + 结果;“让创意被看见”不如“画一条线,它就会唱”。
  • CTA:结尾 3–5 秒;说清“去哪、做什么、什么时候”;二维码/URL 至少停留 3 秒。
  • 口播:标停顿/重音;先读顺,再配画面;不要用书面语硬念。
  • 歌词:Hook 先成立;Verse 写机制;Chorus 写标题+好处;Bridge 写玩法;Outro 写 CTA;按小节/字数预算删词,不加速。

分镜与 plan 规则

  • shots 必须覆盖 0–duration,容差 ≤0.05s;不允许 gap/overlap。
  • 每个 shot 有 id、start、end、description、descriptionAt、transition。
  • 每个 action 有 id、at、description;关键 action 在 audio.cues 有对应 actionId。
  • syncOffset 是音效相对 action 的偏移;最终 cue.at + syncOffset ≈ action.at。
  • 首帧 0.0s 必须是完整画面;不要把“入场动画的开始”当首帧。

声音规则

场景集成响度True Peak
网页/社交−14 LUFS≤ −1.0 dBTP
展会/大屏−10.5 到 −12 LUFS≤ −1.0 dBTP
广播−23 LUFS(EBU R128)≤ −1.0 dBTP
  • 口播下音乐让 3–6 dB;侧链或自动化均可。
  • 音效不要盖住辅音;关键动作前后留 50–100ms 空间。
  • 低频不要堆;手机外放检查一次。
  • 音乐结尾要设计:硬收/铃/混响尾,不要突然断。

交付定义(Done)

  • 成片 MP4 可播放,时长/画幅/fps 与 brief 一致。
  • 首帧完整,不是空白/纯背景。
  • 全片无意外黑帧/静帧;最长静止镜头有叙事理由。
  • 每个镜头有运动/转场/主体动作;不是幻灯片。
  • 字幕同步、可读、无溢出;静音也能看懂。
  • 声音有音乐/口播/音效;响度达标;无 clipping。
  • claims/日期/场地/CTA 已核对。
  • check_delivery.py 无 error;QA.md 记录人工检查与残留风险。
  • 交付 MP4 + 封面 + SRT + 工程 + README。

工具入口

# 初始化项目(复制模板 + plan 骨架;有文案/音乐就直接带进来)
python3 <skill-dir>/scripts/init_project.py --output <video-dir> --mode product --title "..." \
  --script <copy.md> --music <music.mp3>

# Suno/歌词:按 BPM 和小节算时间、字数、行长
python3 <skill-dir>/scripts/lyric_budget.py lyrics.md --bpm 124 --bars 27 --hook "绘声绘色,画就会唱"

# 联系表 / 响度 / 交付检查
python3 <skill-dir>/scripts/contact_sheet.py videos/final.mp4 --out renders/contact.png --fps 1
python3 <skill-dir>/scripts/loudness.py videos/final.mp4
python3 <skill-dir>/scripts/check_delivery.py plan.json --video videos/final.mp4 \
  --mix-report audio/mix_report.json --captions videos/final.srt

参考索引

Starter

starter/ 是一个最小可跑的确定性渲染工程:1920×1080、window.seek(t)、Playwright 逐帧截图、ffmpeg 编码。复制后改 src/main.js 的场景数据和 styles.css 的视觉系统即可。运行:

cd <project>
npm install
node still.mjs 1.0 3.0
node render.mjs --from 0 --to 7 --fps 30 --output videos/test.mp4

如果本机没有 Playwright 浏览器,设置 CHROME_PATH 指向 Chrome/Chromium;渲染脚本会自动探测常见路径。

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

이 스킬의 문제 신고