Communitygithub.com

Legenda Impacto

适用于Premiere Pro的9x16竖屏视频“冲击力”字幕模板 — 可编辑图形(.mogrt)、逐词随机动画、小行+大行(白色或红色)交替呈现,配以直排字幕,使用大写紧凑字体,始终保持在安全边距内。当用户要求为视频添加“冲击力字幕”、“字幕模板”或“默认字幕”时使用。仅基于Premiere的转录文本工作,适用于任何视频。

Legenda Impacto 是什么?

Legenda Impacto 是一个专为 Premiere Pro 设计的竖屏视频(9x16,1080x1920)字幕模板技能,适用于 Reels、Shorts 或 TikTok 等平台。它通过 Python 脚本和 ExtendScript 自动生成具有视觉冲击力的字幕动画,核心特点包括:逐词随机动画(基于 .mogrt 模板)、小行(白色,56px)与大行(140px,可能为红色)交替排版,以及常规直排字幕(76px),所有文本均强制大写并使用 Impact 字体,同时严格限制在 80% 的标题安全边距内。该技能通过分析 Premiere 导出的 JSON 转录文件,将语音切分为 1-6 个单词的语块,根据内置规则(如含有数字或强语气词时大行变红)自动决定每个语块的样式,并生成批量的 ExtendScript 代码以在 Premiere 序列中直接创建和配置 Essential Graphics 图层。用户需安装特定 .mogrt 模板文件,并确保 Premiere 可通过 MCP 或 CEP 桥接执行脚本。工作流包括:确认项目与序列、导出转录、生成语块计划、检查边距安全、分批执行脚本、为红色文本应用 RGB 颜色平衡效果,以及最终校验。该工具自动化了高重复性的字幕制作流程,显著提升效率,尤其适合需要统一品牌风格的大量竖屏视频生产。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/gbrand-lab/premiere-legendas-skills/tree/HEAD/skills/legenda-impacto

在你喜欢的 AI 中提问

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

文档

Legenda Impacto(冲击力字幕)

适用于 Reels/Shorts/TikTok 的高冲击力字幕模板。当用户要求使用此模板为视频添加字幕时,请按以下说明直接应用,无需再次询问参数。

前置条件

  • Premiere Pro(已在 2027/27.0 版本上测试;使用 ExtendScript)和 Python 3.9+,需安装依赖 pip install -r requirements.txt(Pillow)。
  • 一种在 Premiere 中执行 ExtendScript 的方式:Premiere 的 MCP(execute_extendscript)或 CEP 文件桥接——详见仓库根目录下的 docs/PREMIERE-BRIDGE.md。
  • 字体:Impact(Windows 和 macOS 自带)和可选的 Anton。如果找不到字体,请设置 CAPTION_FONT_DIR。
  • 逐词 .mogrt 包(*_WbW.mogrt)位于 assets/——仓库中不包含(参见 assets/LEIA-ME.md)。这些是包含“Anim Speed”/“Out Animation”控件和一个文本字段的 Essential Graphics 模板。

参数(以 style.json 和 scripts/plan_blocks.py 为准)

  • 格式 9x16(1080x1920)。文本大写,居中,y_center 0.54(略低于中部)。
  • 字体 Impact。小行 56 px(白色),大行 140 px,直排 76 px;可缩小以适应(最小 60%)。
  • 语块 1 至 6 个单词,按标点、停顿 > 0.45 秒或持续时间 > 3.3 秒分割;永远不以孤立单词(如“的”、“了”、“在”等)结尾。
  • 语块类型:big_below(上方小行 + 下方大行,默认)、big_above(强语气词大行在上方)、single_big、single_small 和 直排(1 行,若较长则 2 行,标准大小,白色)。每个语块有 40% 概率变为直排,同一类型最多连续 2 个。
  • 当含有数字/金钱/强语气词(strong 列表)时,大行使用红色 #F2381C,最多连续 2 个红色,若已过 4 个语块未出现红色则强制使用 1 个。
  • 动画:逐词 .mogrt,按语块从 assets/ 中现有模板随机选择,且不与上一个语块重复;同一语块的两行使用同一个模板。以硬切方式输出(关闭 Out Animation)。Anim Speed 为 150(若语块时长 < 1 秒则为 200)。
  • 安全边距(固定规则):文本不得超出 Premiere 的标题安全区(80% x 80% = 每边 10% 边距)。在 make_graphics_script.py 中实现(layout_text + clamp_y;style.json 中的 safe_margin_x/y 和 safe_tolerance):可用宽度 = 1 - 2*0.10 - 0.02 = 宽度的 78%(在 1080 中为 842 px)。无法容纳的行:1)缩小至 min_scale(60%);2)若仍无法容纳,则拆分为 2(最多 3)行,平衡切割并仅缩小所需尺寸;尺寸向下取整,因此最长行始终不超过边距。整个语块也位于高度的 10% 至 90% 之间。
  • 交付:直接在用户指定的序列中编辑(不创建副本),除非用户要求复制。

分步操作

  1. 检查项目:与用户确认当前打开的项目/序列,并将目标序列设为活动状态(ExtendScript 作用于活动序列)。
  2. 转录:用户从 Premiere 导出 JSON(文本 > 转录 > 菜单 ... > 导出;文件位于“文档”文件夹,名为“<序列名>.json”)。
  3. 计划:运行 PYTHONIOENCODING=utf-8 python -I <skill>/scripts/plan_blocks.py <转录文件.json> <文件夹>/blocks.json。显示摘要和 [待确认] 的单词(置信度 < 0.75)。在 blocks.json 中修正错误(small/big 字段)。
  4. 轨道:列出视频轨道。V1 = 视频。使用 V2(索引 1)放置小行,V3(索引 2)放置大行/直排,并在所有轨道之上新建一条轨道(索引 = 当前轨道数)放置红色文本。如果存在覆盖画面的旧字幕/标题片段,请关闭它们。
  5. 生成批次:运行 python -I <skill>/scripts/make_graphics_script.py blocks.json <文件夹>/lote.js --tracks 1,2,<红色轨道索引> [--seed N] → 生成 lote_01.js...(每批 8 个片段)和 lote_clips.json。
  6. 运行前检查边距:运行 python -I <skill>/scripts/check_margins.py <文件夹>/lote_clips.json — 结果必须为 超出边距: 0(最大宽度 <= 78%)。
  7. 在 Premiere 中逐批运行(ExtendScript,script 字段,IIFE 带 return,仅 JSON.parse/stringify),一次一个批次,确认 ok=8/8。如果桥接出现波动,请在每个批次前检查连接。切勿一次性发送所有批次(几十个片段同时发送会导致 Premiere 卡死)。
  8. 红色处理:列出红色轨道上的片段,并应用“色彩平衡 (RGB)”效果(英文名“RGB Color Balance”),设置红色 242、绿色 56、蓝色 28。每个片段仅应用一次——重复应用会使效果重复并导致红色变暗(如果再次运行,请删除并重新创建红色轨道上的片段)。
  9. 验证:回读片段的文本/字体/大小/位置,并重新运行 check_margins.py;如果帧导出功能可用,则导出 3-4 帧(一张红色、一张直排、一张两行),否则请用户开启边距参考线进行目视检查。保存项目。
  10. 交付:告知用户已完成的工作、存疑的单词,以及未在任何动态中检查过。

快速调整

需求修改位置
大小/字体/位置style.json(mogrt_size_small/big/plain、mogrt_font、y_center、gap)
边距style.json 中的 safe_margin_x/y、safe_tolerance
增加/减少直排字幕--plain-prob(默认 0.4)
改变随机性--seed
增加/减少红色、更大/更小的语块plan_blocks.py 中的 RULES 或 --config rules.json
修正文本编辑 blocks.json 并重新生成批次

备选方案:透明视频(仅当 Premiere 不接受 .mogrt 时)

运行 render_captions.py blocks.json out.mov --duration <秒> --fps 30 生成带 Alpha 通道的 ProRes 4444 文件(5 帧“弹出”入场,原生红色,不可编辑)。将其作为导入的媒体放入时间线。渲染 45 秒大约需要 5 分钟。

已知限制

  • 动画按照模板的时长播放,而非每句口语的精确时刻。
  • 脏话替换(如“f*ck”)不是自动的(需在 blocks.json 中编辑)。
  • 句子切割可能显得不自然;请在运行前审查语块列表。
  • .mogrt 的颜色无法通过脚本更改(因此对红色片段使用颜色效果)。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能