Communitygithub.com

legenda-impacto

適用於 Premiere Pro 9x16 直式影片的「衝擊」字幕—可編輯圖形 (.mogrt)、逐字隨機動畫、小行+大行(白色或紅色)交替與直式字幕,使用壓縮大寫字體,始終保持在安全邊界內。當使用者要求為影片添加「衝擊字幕」、「字幕模型」或「預設字幕」時使用。僅適用於 Premiere 的轉錄文字,可用於任何影片。

legenda-impacto 是什麼?

Legenda Impacto 是一款專為 Premiere Pro 設計的專業字幕工具,專門用於製作 Reels、Shorts 和 TikTok 等直式影片的高衝擊力字幕。它透過 ExtendScript 和 Python 腳本協作,將 Premiere 的轉錄 JSON 轉換為由小行(白色)和大行(白色或紅色 #F2381C)交替組成的動態字幕區塊,並使用 Impact 字體以及逐字動畫的 .mogrt 模板。這些字幕區塊會根據字數、標點符號和暫停時間自動分割,紅色僅在有數字、金錢或強烈詞彙時出現,且始終保持在 Premiere 的 title safe 邊界內(寬度限制為 1080 像素的 78%)。此工具支援 macOS 和 Windows 平台,需要 Premiere Pro 2027/27.0 或更新版本、Python 3.9+ 以及逐字 .mogrt 模板檔案(需自行準備)。使用者只需提供 Premiere 專案中的轉錄 JSON,Legenda Impacto 就會生成一系列可執行的 ExtendScript 批次腳本,直接編輯原始序列,無需建立副本,從而顯著節省時間並確保字幕風格一致。

相容平台~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)。這些是 Essential Graphics 模板,包含「Anim Speed」/「Out Animation」控制項和一個文字欄位。

參數(真實來源: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 秒進行分割;絕不以孤立單詞(如 o、de、que…)結尾。
  • 區塊類型:big_below(上方小行 + 下方大行,預設)、big_above(上方大行強調單字)、single_big、single_small 和 直式(1 行,若太長則為 2 行,預設大小,白色)。每個區塊有 40% 機率變為直式,同一類型最多連續出現 2 次。
  • 當出現數字/金錢/強烈詞彙(strong 列表)時,大行顏色變為紅色 #F2381C,最多連續出現 2 次紅色;若已連續 4 個區塊未出現紅色,則強制出現 1 次。
  • 動畫:逐字 .mogrt,每個區塊從 assets/ 中現有的模板隨機選取,不重複前一個區塊的模板;同一區塊的兩行使用相同的模板。動畫結尾為硬切(關閉 Out Animation)。動畫速度 150(若區塊持續時間 < 1 秒則為 200)。
  • 安全邊界(固定規則):文字絕不超出 Premiere 的 title safe(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 欄位,包含 return 的 IIFE,僅使用 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 規則.json
修正文字修改 blocks.json 並重新生成批次

替代方案:透明影片(僅在 Premiere 不接受 .mogrt 時使用)

執行 render_captions.py blocks.json out.mov --duration <秒數> --fps 30 可生成帶有 Alpha 通道的 ProRes 4444 影片(5 個影格的「彈出」入場效果,原生紅色,不可編輯)。將其作為匯入的媒體放置到時間軸上。渲染 45 秒的影片大約需要 5 分鐘。

已知限制

  • 動畫會按照模板的時間長度播放,而非每個口語單字的精確時間點。
  • 自動消音(如「他*媽的」)無法自動處理(請在 blocks.json 中編輯)。
  • 句子切割可能顯得不自然;請在執行前檢查區塊列表。
  • 無法透過腳本更改 .mogrt 的顏色(因此才需要為紅色文字使用色彩效果)。

Individual skills in this repo

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

相關技能