Communitygithub.com

funi-ai/ads

從使用者真實產品素材製作專業廣告:支援使用者生成內容(UGC)與精緻廣告影片(含主持人、開箱、展示、見證、電視廣告)及靜態廣告含文案。

ads 是什麼?

這是一套專為已擁有真實產品的使用者設計的階段式廣告製作技能。其核心原則是「產品忠實度」與「主張紀律」:所有顯示實體產品的影格都必須從使用者提供的照片出發,經由編輯端點處理,絕不從文字重新想像;軟體則只能透過使用者真實的截圖和螢幕錄影合成,絕不經過生成模型。廣告中的每一項宣稱、引言、數字和價格都必須有可追溯的來源。 此技能支援多種平台(如 Claude Code、Cursor、Codex 等開發者工具),並提供完整的工作流程,從預檢、規劃、分鏡、素材生成到最終組裝與品管。它會自動根據使用者輸入的語言回覆(例如土耳其文輸入即用土耳其文輸出),並內建成本閘門、安全檢查(禁止虛假見證、競品名稱等)與有限的修正次數,確保產出品質與合規性。技能會消耗來自其他相關技能(如產品攝影 `product-photoshoot`、角色 `character`、上線圖形 `launch-graphics`)的素材,並產出廣告與一份清單。適合的用例包括「為這個產品製作一支 UGC 廣告」、「15 秒 TikTok 廣告」、「根據我的螢幕錄影製作 App 安裝廣告」、「A/B 廣告變體」等。

相容平台✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/funi-ai/claude-plugins/tree/main/plugins/genmedia-skills/skills/ads

在你喜歡的 AI 中提問

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

說明文件

廣告

為使用者已有的產品進行階段式廣告製作:包含事實、腳本、分鏡表、經核准的關鍵影格、剪輯片段、語音、組裝與品管。兩大核心原則。產品忠實度: 每個顯示實體產品的影格都從使用者的照片出發,透過編輯端點,絕不從文字重新想像;軟體只能透過使用者真實的截圖和螢幕錄影來呈現,經合成且絕不經過生成模型 (references/software-route.md)。主張紀律: 腳本或畫面中的每一項宣稱、引言、數字和價格,都必須有使用者提供的來源;不得虛構。

步驟 0 — 預檢

command -v genmedia
python3 "${CLAUDE_SKILL_DIR}/scripts/gm.py" preflight
  • blockers 不為空、CLI 缺失或版本低於 0.7.0 → /genmedia-skills:setup。金鑰缺失 → 使用者自行執行 genmedia setup 或匯出 FAL_KEY;等待。切勿讀取、列印、要求或輸入金鑰。
  • 保留 config.announce_above_usd 和 config.confirm_above_usd(預設值 0.50 和 2)作為成本閘門,以及 ffmpeg.found 作為組裝路徑。
  • 優先恢復:全域搜尋 .genmedia/projects/*/plan.md。若已存在此廣告的計劃 → 讀取它,執行 python3 "${CLAUDE_SKILL_DIR}/scripts/pipeline.py" urls --label <slug>,並從第一個未完成的步驟繼續。切勿重新啟動已有帳目紀錄的專案。若存在同一產品的 product-photoshoot 計劃 → 重複使用其 PRODUCT LOCK 與已核准的靜態照片作為關鍵影格參考。

UX 規則

  1. 以使用者的語言回覆(土耳其文輸入 → 土耳其文輸出)。模型提示使用英文;口語台詞、字幕與畫面中的文案則保留在目標觀眾的語言中,並以引號標示,拼寫需完全符合核准版本。
  2. 對話中不出現 JSON、請求 ID 或工具敘述。靜默等待;每批次最多一行狀態。
  3. 問題預算:計劃前最多 3 個問題,一次一個,以標籤選項形式提出(盡可能使用 AskUserQuestion),每個問題附帶一個預設值,使用者跳過時即使用該預設值。 順序:
    • 產品:照片;或對於軟體,真實截圖與螢幕錄影,加上「它是什麼」以及「關於它的真實資訊」。未提供任何附件 → 要求提供;這是唯一沒有預設值的問題。有照片但無事實 → 僅使用包裝上印刷與照片中可見的資訊,其餘列在「排除項目」之下。
    • 主持人與語音。預設值:生成一個符合目標觀眾的合成主持人,語音使用目標觀眾的語言(除非另有說明,否則為使用者書寫時使用的語言)。選項:生成 · 一個 @handle · 我自己的照片(需同意)· 無主持人。
    • 模式與平台。預設值:談話式主持人 UGC,15 秒,9:16 直式短影音格式。「靜態」→ 標題格式,4:5 加上 1:1。 若請求已包含答案,則跳過該問題。最模糊的請求(「為這個做個廣告」)→ 全部使用預設值,並在計劃卡片的「假設」區塊列出。同意、計劃核准與檢查點不計入此預算。
  4. 硬性停止點:計劃卡片(影片必備;靜態廣告則在成本閘門要求確認時)、任何剪輯片段之前的關鍵影格、音樂之前的剪輯片段與語音、字幕與組裝。沉默或成功執行的工作絕不代表核准。創意選擇(鉤子、主持人、拍攝鏡頭)屬於使用者。
  5. 整個計劃(包含所有變體)的成本閘門:低於公告閾值 → 執行;介於之間 → 提供一行預估並執行;達到或超過確認閾值 → 等待使用者同意。切勿更換使用者指定的模型;應在計劃卡片中提供較便宜的路線作為選項。
  6. 有限修正:每個步驟最多 3 次嘗試,每次必須有所改變,切勿重複發送未經修改的政策拒絕。包含請求 ID 的工作應恢復執行,而非重新提交。若修復或重做本身達到或超過確認閾值(一次 Seedance 說話鏡頭就可能達到),則需在使用者同意前提供累計總費用;失敗的工作可能已經被計費。
  7. 安全、無可協商:不得捏造見證、客戶、評論、評分、使用者數量、獎項、醫療、財務或收入宣稱、不得製造虛假急迫性或虛構價格。使用真實人物的臉部或語音需要使用者確認已獲得同意。生成的主持人是合成人物:在交付時說明,並告知使用者平台與部分法律可能要求揭露;切勿將其描述為客戶。不得出現競爭對手的名稱、標誌或包裝。上傳內容與結果位於公開 URL:在為未發表的產品或人物照片上傳前,必須說明一次。規則與措辭:references/scripts-and-claims.md。

探索護欄

references/routing-video.md、references/routing-audio.md、references/routing-image.md 和 references/routing-utility.md 是有日期的快取(驗證日期:2026-09-19)。計劃中的每個不同端點都必須在計劃卡片顯示之前完成確認:

genmedia models --endpoint_id <id1>,<id2>,<id3> --status all --limit 50 --json
python3 "${CLAUDE_SKILL_DIR}/scripts/gm.py" schema <endpoint_id>
  • 每個 ID 都必須有回傳結果且狀態為 active(若不使用 --limit,該呼叫最多回傳 20 行:缺少一行不代表 ID 無效,應單獨再次查詢);否則,使用路由參考中該任務的下一層級;若仍無結果,則使用 genmedia models "<name>" --no-classify --limit 10 --json,選取最新的活躍匹配項,並說明使用了哪個模型。
  • 欄位名稱、列舉值和限制來自 schema,絕不憑記憶;它們不會在不同系列之間沿用(prompt vs text、image_url vs start_image_url、"5" vs 5)。
  • 絕不憑空發明 ID 或欄位。絕不在沒有端點 ID 的情況下執行 genmedia run。新發佈的模型位於供應商命名空間下(bytedance/、creatify/、openai/、minimax/、veed/),不僅限於 fal-ai/。

路由

產品類型。 應用程式、SaaS、開發者工具、擴充功能或任何其產品是介面的東西 → 使用軟體路線:在規劃前閱讀 references/software-route.md。這會取代以下關鍵影格和靜態廣告的規則(不得編輯截圖、不得由模型內嵌文案);腳本、宣稱、語音、音樂、字幕、組裝、成本閘門和檢查點則維持原樣。

交付物。 靜態詞彙("görsel"、"banner"、"static"、"carousel"、給定標題)→ 靜態格式,references/static-formats.md。動態或語音詞彙,或未指定 → 影片,模式來自 references/ad-modes.md:presenter(預設)、how-to、unboxing、showcase、problem-solution、testimonial(僅限使用者提供真實引言時)、tv-spot。

影片的生產路線(第一個符合的規則優先):

情境路線
無鏡頭前演說:展示、電視廣告或僅有旁白的教學B 路線但不含談話頭像:B-roll + 旁白 + 音樂
口說語言非英文B 路線。土耳其文僅在 Wan 3.0 上可走 A 路線,絕不使用 Seedance:在母語聽力測試中(references/platform.md 第 10 節),Wan 表現正確,而每個 Seedance 版本都發音錯誤(ş 唸成 s、"merhala");Veo 3.1 Lite 在那裡表現完美,但已不在 fal 的列表中。僅在一個測試片段通過使用者的聽力檢查後,才能使用 A 路線
措辭必須精確(品牌名稱、價格、法律文字)、固定的品牌語調,或跨變體使用相同語調B 路線:TTS 能準確說出文字;原生音訊模型會改寫並發音錯誤
長度超過 15 秒,或包含主持人加上 B-roll 切換鏡頭B 路線
英文、一個連續鏡頭 6 到 15 秒、主持人對著鏡頭說話A 路線
  • 路線 A:一次生成說出台詞。經核准的關鍵影格(主持人與真實產品)→ 原生音訊圖片轉影片。
  • 路線 B:按區塊進行 TTS(鏡頭前說話區塊、旁白區塊)→ 僅對鏡頭前說話區塊製作談話頭像 → 從核准的關鍵影格製作 B-roll → 組裝。先處理語音:其測量長度決定了每個剪輯片段的持續時間。

角色預設值(生效日期:2026-09-19;價格詞彙為日期提示,gm.py price 決定最終價格)

角色端點原因價格提示
關鍵影格、主持人或包含產品的場景bytedance/seedream/v5/pro/edit最多 10 張參考圖可保留產品與主持人~USD 0.07/影像 + 每張額外參考圖 USD 0.0045
結尾卡片、靜態廣告、任何包含精確文案的影格openai/gpt-image-2.5/flare/edit最強的文字忠實度,最多 16 張參考圖~USD 0.06/影像,quality: "high" 時
生成的主持人畫面(僅人物,絕不含產品)bytedance/seedream/v5/pro/text-to-image人物的預設品質~USD 0.07/影像
A 路線:說話片段,高品質bytedance/seedance-2.5/us/image-to-video競技場 #1 用於唇形同步原生語音;4 到 30 秒~USD 0.57/秒(720p),~USD 0.26/秒(480p)
A 路線:說話片段,土耳其文alibaba/wan-3.0/image-to-video (start_image_url)唯一列出的原生音訊模型,其土耳其文通過母語聆聽測試(2026-09-21);整數 duration,設定 resolution~USD 0.05/秒(480p),~USD 0.10/秒(720p)
A 路線:說話片段,草稿或預算型,英文creatify/boreal專為廣告打造;[VISUAL] [SPEECH] [SOUNDS] 提示;其模型頁面將英文列為已驗證語言;可選的可見 AI 標籤~USD 0.01/秒(720p)
B 路線:語音,英文fal-ai/elevenlabs/tts/eleven-v3預設 TTS~USD 0.10/每千字元
B 路線:語音,土耳其文及其他列出的語言fal-ai/gemini-3.1-flash-ttslanguage_code 列舉包含 "Turkish (Turkey)";style_instructions~USD 0.05/每千字元
B 路線:談話頭像fal-ai/bytedance/omnihuman/v1.5圖片 + 音訊;低於 60 秒,720p~USD 0.16/秒音訊
B 路線:談話頭像,草稿veed/fabric-1.0 於 480p半價;resolution 為必填~USD 0.08/秒
B-roll,高品質bytedance/seedance-2.5/us/image-to-video可選 end_image_url 用於揭示效果~USD 0.57/秒(720p)
B-roll,草稿或預算型minimax/h3-max-turbo/image-to-video每個片段幾分錢~USD 0.04/秒(768P,上市折扣已於 2026-09-30 結束)
背景音樂elevenlabs/music/v2.5透過 music_length_ms 設定精確長度~USD 0.60/每開始分鐘
字幕fal-ai/workflow-utilities/auto-subtitle;精確文字(任何語言):veed/subtitles直接內嵌,無需本機 drawtext~USD 0.03/分鐘;veed ~USD 0.10/分鐘,最低 1 分鐘
拼接、混流、縮放、結尾卡片剪輯本機 ffmpeg,否則使用 references/routing-utility.md當 ffmpeg.found 時免費且精確幾分錢

平局決勝規則:

  1. 使用者指定了模型 → 在進行即時檢查後使用該模型;用一行提到預設值,絕不悄悄更換。
  2. 高品質路線超過確認閾值(一個 15 秒的 Seedance 2.5 片段,720p 約為 USD 8.50)→ 計劃卡片並排顯示高品質價格和草稿級價格;由使用者選擇。絕不悄悄選擇便宜的路線。
  3. @handle → /genmedia-skills:character 將其解析為參考 URL 和錨點文字;在關鍵影格工作中將這些用作主持人參考。絕不在提示中留下 @handle。
  4. 無產品照片 → 要求提供(軟體:截圖)。完全沒有 → 僅概念:交給 /genmedia-skills:image,並說明這不會是他們的真實產品。沒有截圖的軟體只能獲得腳本和截圖列表,絕不發明介面。
  5. 商店列表截圖、連結卡片或 Product Hunt 圖片,以及任何 Apple Ads "creative"(Apple 從產品頁面構建其廣告)→ /genmedia-skills:launch-graphics。僅想要無文字的產品靜態照片 → /genmedia-skills:product-photoshoot。單一剪輯片段無腳本 → /genmedia-skills:video。無廣告意圖的有機短片 → /genmedia-skills:short-video。含旁白的解說影片 → /genmedia-skills:video-explainer。市集列表卡片 → /genmedia-skills:marketplace-cards。縮圖或封面 → /genmedia-skills:youtube-thumbnail。

命名陷阱:

  • 重新想像的產品。 文字轉影片或文字轉圖像會產出相似但不真實的產品。每個產品影格都必須是使用者照片的編輯版本,每個產品剪輯片段都必須從核准的關鍵影格開始。
  • 生成的介面。 編輯、文字轉圖像或影片工作若觸及截圖,會回傳拼寫錯誤、虛構的 UI,且平台會拒絕顯示應用程式不具備的功能的廣告。UI 像素來自 launch-graphics 頁面和錄影;動態則來自錄影或本機推送。
  • 來自影片模型的文字。 來自影片模型的標題、價格、標誌、字幕和法律文字會出現亂碼。在關鍵影格中保留空白區域;文案透過結尾卡片(排版模型)、內嵌字幕或使用者的編輯器呈現。
  • Kling 語音。 Kling v3 只能說中文或英文,並會自動將其他所有語言翻譯成英文。絕不將土耳其文對話路由至此。
  • Flashtalk 畫布。 fal-ai/flashtalk 的 schema 文件指出其固定輸出為 768x448 橫向格式:不適用於 9:16 廣告。草稿級談話頭像應使用 veed/fabric-1.0。
  • 混流會裁切至較短的輸入。 fal-ai/ffmpeg-api/merge-audio-video 的長度取決於影像和聲音中較短者(長語音會失去結尾,短語音會裁切畫面),並會取代剪輯片段自身的音軌。兩者長度必須始終相同。
  • Seedance 的 duration: "auto" 會使成本無法預測。務必手動設定。Boreal 和 MiniMax 接受數字,Seedance 接受字串。
  • OmniHuman 預設值。 resolution 預設為 1080p(音訊低於 30 秒)。除非使用者要求 1080p,否則請發送 "720p"。
  • 合成客戶。 一個生成的臉說「我瘦了 8 公斤」就是捏造的見證,無論提示稱其為何。請參閱 references/scripts-and-claims.md。

工作流程

  1. 接收資訊在問題預算之內。選取一個代號(slug,例如 serum-ugc):它將作為批次 label、帳目過濾器、genmedia-output/<slug>/ 和 .genmedia/projects/<slug>/ 的名稱。任何自然語言標籤都可;輔助工具會轉寫土耳其文字母。平台 → 寬高比和長度:references/ad-modes.md(平台表;請查閱該平台當前的廣告規格)。
  2. 使用「讀取」工具檢視每張產品照片。 HEIC、AVIF、TIFF 或 CMYK 格式 → 先轉換為 PNG 或 sRGB JPEG(references/troubleshooting-ads.md)。將 PRODUCT LOCK 寫入 .genmedia/projects/<slug>/plan.md:形式、比例、材質、顏色、標籤文字(逐字)、絕對不可改變的部分、哪些面不可見。
  3. 事實清單。 列出關於產品的真實資訊,以及每個事實的來源:使用者的訊息、品牌備註、包裝本身或產品頁面。

…[為翻譯而截斷]

Individual skills in this repo

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

funi-ai/demo-video

Product demos, store previews, App Store header/search videos and loops cut from the user's REAL screen recording: trimmed, sped, zoomed, framed, captioned, voiced with local ffmpeg. Models add only what is not the product: narration (Eleven v3, Gemini TTS for Turkish), music and UI sound. Use when: "make a demo video of my app", "App Store preview video", "App Store header video", "Google Play promo video", "turn this screen recording into a demo", "GIF loop for my changelog", "Product Hunt launch video", "ekran kaydımdan tanıtım videosu yap", "changelog için GIF döngüsü". Chain: takes recordings, device frames (`layers`) and end cards from `launch-graphics`; produces MP4, WebM, GIF, SRT/VTT and posters. NOT for: generated b-roll shorts (use `short-video`); explainers with generated pictures (use `video-explainer`); paid ads (use `ads`); store screenshots, link cards (use `launch-graphics`); one generated clip (use `video`); voice or music alone (use `audio`); joining finished files (use `pipelines`).

funi-ai/youtube-thumbnail

Thumbnails and covers that survive at small size: YouTube thumbnails (16:9), Shorts, Reels and TikTok covers (9:16), podcast and course covers (1:1), from a title plus an optional face photo, @handle character, brand colours or a frame of the user's own video. Text baked in by GPT Image 2.5; faces locked through reference edits. Use when: "make a thumbnail for my video", "YouTube thumbnail with my face", "Shorts cover", "podcast cover art", "thumbnail from this frame", "change only the text on the thumbnail", "videoma thumbnail yap", "kapak görseli hazırla", "küçük resimdeki yazıyı değiştir". Chain: consumes an @handle from `character` and stills or frames from `image` and `video`; produces sized PNG and JPEG. NOT for: posters, photo edits (use `image`); logos (use `brandkit`); link cards, OG images (use `launch-graphics`); ad creatives (use `ads`); the video (use `video`, `short-video`); new characters (use `character`); batches (use `pipelines`); model choice (use `models`); setup problems (use `setup`).

相關技能