Communitygithub.com

JayGPTPro/關鍵字開場

一部成品影片,為每個關鍵字產生一個版本。僅將前幾秒的畫面替換為符合搜尋關鍵字的場景,在畫面上顯示關鍵字,且不碰原始音軌,因此每個版本長度相同,聽起來絕不像拼接而成。

關鍵字開場 是什麼?

這項技能專為需要將產品影片改造成多個關鍵字專用版本的賣家設計。它讀取賣家提供的完整成品影片及其素材資料(ASIN、關鍵字清單),並運用 AI 影片生成模型(如 Seedance 2.5)為每個關鍵字創作約 2–6 秒的開場畫面。這些新場景會精準地置換影片開頭片段,同時保留原始音軌與其餘部分,確保所有版本長度一致,避免拼接感。技能支援多平台:描述中特別提及 Amazon Sponsored Brands 影片廣告,但也適用於任何需要關鍵字導向影片廣告的場景。整個流程包含影片分析、開場腳本撰寫、畫面生成(透過 Genrupt MCP 或手動上傳)、版本建置與品質檢查,最後產出一個可直接上傳的資料夾。若無 Genrupt 串接,賣家也可手動放置開場片段,技能仍能正常運作。值得注意的是,這項技能僅處理開場置換,不涉及製作完整的產品影片。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/JayGPTPro/keyword-openers/tree/HEAD

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

關鍵字開場 是做什麼的?

搜尋「熱狗烤棒」和搜尋「蔬菜烤棒」的消費者,今天看到的卻是同一支影片,而且開場是棉花糖。這項技能讓每位消費者看到他們所輸入的關鍵字對應的開場。

會改變的部分: 前 2 到 6 秒的畫面,以及帶有該關鍵字的標題。 絕不改變的部分: 音軌、影片長度,以及第一個剪輯點之後的所有內容。

Sponsored Brands 影片起始時沒有聲音,因此消費者實際接收到的只有第一個畫面及上面的文字。這也正是開場值得對應關鍵字的原因。

賣家需提供

  1. 一部完成的產品影片(mp4 或 mov)。16:9 或 9:16。
  2. 關鍵字,3 到 10 個。如果賣家沒有清單,主動提議挑選:閱讀商品頁,提出會改變「用途」、「食物」、「人物」或「地點」的關鍵字(這些會改變畫面)。跳過只重新排列相同詞彙的關鍵字;它們會得到相同的場景。
  3. ASIN,讓開場畫面能顯示真實產品。

請賣家在一則訊息中提供以上三項。如果缺少某項,再詢問一次,然後繼續。

步驟 1:讀取影片

python3 scripts/openers.py inspect "<video>" "<workdir>" --keywords "kw one; kw two; kw three"

<workdir> 是在影片旁建立的新資料夾,命名為 keyword-openers。此指令會寫入 inspect.json、plan.json 及兩張連絡單。在 Windows 系統上,此處及步驟 4 中的指令為 python,而非 python3。

檢視 opening-sheet.jpg。 標記為 REPLACED 的區塊就是將被移除的內容。如果該處有標誌、價格、聲明或燒錄文字,請先告知賣家,然後提供來自 cuts_first_20s 的較早剪輯點(在 plan.json 中設定 "window")。

也請查看 look-sheet.jpg。 你即將編寫的場景必須看起來像是為這部影片拍攝的:相同的時間、光線、人物類型與鏡頭感。

如果 inspect.json 中的 notes 不為空,請照實向賣家讀取。當筆記要求重新匯出(幀率高於 30、可變幀率、96 kHz 音訊)時,主動表示可以用 ffmpeg 製作修正後的副本,並對該副本執行 inspect。當 aspect 不是 16:9 時,請在花費任何配額前說明 Sponsored Brands 影片僅接受 16:9,且僅在賣家希望將這些版本用於其他版位時才繼續。

步驟 2:為每個關鍵字編寫一個開場場景

嚴格遵循 references/prompt-recipe.md。每個關鍵字一個提示,每個提示為一個 opener_seconds_to_generate 秒的單一鏡頭。以一行簡短描述向賣家展示場景(例如「熱狗烤棒:一位父親和兒子的畫面,兩人手持兩根熱狗在同一營火上烤」),然後繼續,除非他們提出異議。除非被要求,否則不要貼出完整提示。

步驟 3:報價,然後產生

產品參考圖片:使用 ASIN(若商品頁的 marketplace domain 非 amazon.com 則一併提供)呼叫 scrape_video_reference_images_from_asin,等待圖片網址。使用前四張。

若關鍵字涉及可動特徵(可伸縮、可折疊、可打開的蓋子),則需要動作參考,否則模型會自行發明機構:這裡第一個可伸縮開場製作時,伸縮動作就像憑空魔法般增長。首先在賣家自己的影片中尋找該特徵,並用 ffmpeg 剪出那幾秒。僅當影片中未顯示該特徵時,才向賣家索取一段使用該特徵的短片(3 至 8 秒,至少 300 像素高;手機拍攝的片段也可以)。使用 create_reference_asset_upload 功能上傳(透過 search_capabilities 找到該功能,將檔案 PUT 到其傳回的 URL),並將 assetUrl 傳遞給 seedanceReferenceVideoUrls。在提示中說明要從片段中擷取什麼(動作),以及要忽略什麼(其桌子、光線、其他物體)。參考影片會增加費用,因此請將其納入價格計算。

在執行任何操作前先報價。使用 video_generation 預設(模型 seedance_2_5_reference、720p、開場長度、videoCount = 關鍵字數量)呼叫 get_credit_balance_and_costs。720p 是任何影片的預設解析度:開場僅在小區域播放幾秒,與 1080p 的差異在該處不明顯。僅當賣家的影片為 1080p 或更大,且他們要求最清晰的開場時,才同時報價 1080p。切勿憑記憶報價。然後說一句話並等待肯定回覆:

「5 個開場,每個 5 秒,Seedance 2.5 720p:[價格呼叫傳回的數字] 配額。要執行嗎?」

如果賣家想要更便宜,報價 seedance_2_mini_reference 並提供該選項。480p 的草稿足以判斷場景,但對於 1080p 影片上的廣告來說太模糊。

然後為每個關鍵字發送一次 generate_video 呼叫,所有呼叫同時送出:

  • modelType: "fal_seedance",seedanceModel,seedanceMode: "reference_to_video"
  • seedanceReferenceImageUrls:產品圖片
  • seedanceDuration:opener_seconds_to_generate
  • seedanceAspectRatio:inspect.json 中的 aspect
  • seedanceResolution:根據報價
  • asin:ASIN(專案會基於此建立或重複使用)
  • promptEnhancement: "skip"(配方已撰寫最終提示)
  • sceneTitle:關鍵字

使用 wait_for_operation / get_video_generation_result 等待。將每個完成的片段下載到 plan.json 中其對應列所指名的路徑:

curl -L -s -o "<workdir>/openers/<slug>.mp4" "<video url>"

產生失敗或被拒絕:一行回報後繼續處理其餘部分。未經詢問不要重試超過一次;重試會再次花費相同配額。重新產生的場景會以其自己的 "label" 和檔案名稱另存為新版本,絕不覆蓋已付費的片段。

沒有 Genrupt? 技能仍然可用。賣家將任何片段(拍攝的、素材庫的、其他工具產生的)放置於 plan.json 中的路徑,然後直接跳到步驟 4。

步驟 4:建置每個版本

python3 scripts/openers.py build "<workdir>/plan.json"

不花費配額。每個版本在 720p 下約需 4 秒,1080p 下約 10 秒,4K 下約 25 秒,每個完成時會印出一行。執行指令時請設定 10 分鐘逾時:通常的 2 分鐘限制會讓長列表被截斷。對每個關鍵字,它會置換開場畫面、繪製標題,並檢查寫入的檔案:長度與原始相同,音軌逐位元相同,其餘畫面未經觸碰,開場確實是新的,標題位於畫面內。

若要在修正後重建單一關鍵字並保留其他關鍵字不變,請加上 --only "hot dog roasting sticks"(多個:"kw one; kw two")。

然後檢視每個 out/check/<slug>-seam.jpg。你正在檢查腳本無法判斷的三件事:

  1. 新場景中的產品是賣家的產品(形狀、顏色、數量)。
  2. 標題清晰可讀,且不位於人臉或關鍵字所指稱的物品上。比較「標題佔用」與其旁的「標題下方」圖塊:同一時刻但無文字。auto 僅根據亮度和細節猜測;它無法識別人臉,而且在火光下,平靜的區域往往是臉部所在的地方。
  3. 從「最後一個新影格」到「第一個原始影格」的跳躍感覺像是一次正常的剪輯。

標題位置不佳可以免費修正,請在賣家看到前修正:為該變體指定 place(top、bottom、top-left、top-right、bottom-left、bottom-right),當全尺寸下無空位時,指定 title_scale(0.5 到 1)。再次建置並再次檢查。產品不符合的場景需使用修正後的提示重新產生(先詢問,這會花費配額)。

步驟 5:交接

為賣家開啟 out/index.html。依序告知他們:

  1. 有多少版本已就緒,以及要上傳的檔案位於 out/upload/:每個關鍵字一個檔案,以關鍵字命名。
  2. 你在接縫檢查單上看到的任何他們應注意的內容。
  3. 如何使用這些版本:references/amazon-upload.md(每個關鍵字一個廣告群組,各自搭配專屬版本)。該頁面也包含相同的步驟。

若某個關鍵字有多個版本,在選定之前 out/upload/ 中不會有檔案。詢問賣家要選哪個版本,在該變體上設定 "pick": true,然後再次建置。

plan.json

{
  "video": "/path/to/video.mp4",
  "window": 3.875,
  "style": "pop",
  "font": "bold",
  "accent": "CD763C",
  "title": true,
  "opener_audio": "off",
  "variants": [
    {"keyword": "hot dog roasting sticks", "opener": "openers/hot-dog-roasting-sticks.mp4"}
  ]
}
  • window:要替換的畫面秒數。inspect 會選擇影片自身剪輯點中最接近 4 秒的值。僅可更改為 cuts_first_20s 中的其他值。
  • style:關鍵字在畫面上的呈現方式。
    • pop(預設):大寫字母。使此關鍵字與其他關鍵字不同的詞語會落在一個擦拭入場的螢光條上;其餘詞語則逐詞彈入。專為搜尋結果中的小型無聲圖塊設計。
    • sticker:關鍵字放在一個帶有標記的傾斜白色搜尋貼紙上,蓋印般出現。
    • kinetic、line、search:安靜的下三分之一標題,適合想要低調的品牌。
  • punch:搭配 pop 和 sticker 時,畫面會在標題落下的節拍上裁切至 1.08 倍更緊湊的構圖。false 關閉此效果;punch_zoom 可設定其他尺寸。
  • place(僅限 pop 和 sticker):auto(預設)會猜測畫面中較平靜的區域(上方或下方),並在一方明顯較平靜時選擇其一側。top、bottom、top-left、top-right、bottom-left 或 bottom-right 可強制指定。三種低調樣式始終位於底部。
  • title_scale(僅限 pop 和 sticker):0.5 到 1。適用於全尺寸下無空位的畫面。可套用於所有版本(在檔案頂部設定)或單一變體。
  • font:bold、round、serif、clean。與影片中已有的字體風格相符。
  • accent:取自影片自身的顏色。若已知品牌色可覆蓋。
  • title:設為 false 則畫面上不顯示文字。
  • opener_audio:"off" 會逐位元保留音軌。若為數字(例如 -18),則會將新場景自身的音訊以該分貝值混合在下方。
  • take:開場片段通常比視窗長度稍長。end(預設)保留其最後幾秒(場景已穩定)。start 保留其最初幾秒,適用於動作立即開始的場景(如棍子伸出、蓋子打開)。
  • 同一個關鍵字的多個版本:重複該變體,使用相同的 keyword、不同的 opener 和一個 "label"("A"、"B")。每個版本會建置成自己的檔案和卡片,讓賣家透過查看來選擇。當關鍵字重要時,主動提供第二個版本;說明其費用。"pick": true 套用於所選版本時,會將其複製到 out/upload/<keyword>.mp4。
  • 一個變體可以攜帶 "title_text"(當畫面上的文字應與關鍵字不同時)、"take"、"emphasis"(要標記的詞語;預設為關鍵字間不共用的詞語,例如「熱狗烤棒」中的「熱狗」)、"place"、"title_scale"、"pick",以及其自身的 "window"。

發生問題時

build 會先檢查 plan.json 並以文字說明要修正的內容。如果關鍵字使用內建字型無法繪製的字元(如希伯來文、中文、阿拉伯文),會失敗並顯示該訊息:請為該變體設定拉丁字母的 "title_text",或將 "title" 設為 false。表情符號會從標題中移除。超過 5 個詞的關鍵字會被縮小繪製;請提供較短的 "title_text"。若影片在 2 到 6 秒之間沒有剪輯點,則會使用短暫的溶接代替剪輯。

規則

  • 絕不延長影片長度,也絕不觸碰其音軌。若有請求需要以上任一項,那便是不同的任務;請說明。
  • 絕不在場景中發明產品特徵。場景應展示關鍵字的使用方式,且產品保持原樣。
  • 當影片中有人物時,新場景中的人物應與影片中的人物相符。
  • 每個關鍵字僅產生一次付費版本,除非賣家核准再次產生。

相關技能