Community影像github.com

builtnotboosted/image-generation

使用任何影像模型(以 Google Gemini 影像「Nano Banana」為範例)產出成品社群圖片,包含靜態圖片、輪播投影片、短影音封面、YouTube 與文章縮圖、在地商家卡片及動態靜圖。將標題融入場景而非後製貼上,確保文字位於個人資料網格安全區內,將真實人物的肖像鎖定於參考照片,符合各平台精確尺寸,撰寫替代文字,並在每次重新生成時重新審視已存檔的檔案。

image-generation 是什麼?

此技能專注於將貼文訊息轉化為符合各平台精確尺寸的成品圖檔。其核心方法論包括:將標題(headline)直接由影像模型內建於場景中,而非透過程式碼後製疊加,以確保視覺一致性;確保文字完全位於網格安全區內,避免在個人資料頁面或動態消息中被裁切;對於真實人物,強制使用參考照片進行肖像鎖定,避免生成虛構臉孔;並針對每張圖片驗證精確像素尺寸,同時撰寫描述性的替代文字。 此技能廣泛支援多種格式,包括靜態圖片、輪播投影片、短影音與長影音封面、YouTube 縮圖、文章縮圖、在地商家卡片及動態靜圖。它會優先參考 `brand/brand-profile.md` 中的品牌常數(如色板、字型、標誌規則、肖像規則),並與 `writing` 技能(處理標題文案)、`video-editing` 技能(處理影片編輯內的封面)及 `review-loop` 技能(獨立審查)協作。若無可用影像模型,也可透過 HTML/CSS 與 Playwright 渲染純文字版面作為備案。 此技能適用於 Claude Code、Cursor、Codex 等 AI 代理工具,其標準作業流程涵蓋從決定畫面概念、生成場景、執行肖像鎖定、處理影片真實畫面封面、製作動態靜圖(唯一允許文字疊加的情況),到最終存檔與描述。每次重新生成都會對已存檔的檔案進行徹底檢查,包含拼字、標題主導性、網格安全性、肖像相似度、尺寸正確性、品牌一致性及合規性。如果素材無法通過檢查,則保留提示詞並暫緩發佈,絕不發送替代臉孔或僅後製貼上文字的妥協版本。

相容平台~Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/builtnotboosted/built-not-boosted-skills/tree/HEAD/plugins/built-not-boosted/skills/image-generation

Installed? Explore more 影像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

圖片生成

此技能將貼文的訊息轉化為符合各平台精確尺寸的成品圖檔。它掌控整個產出方法:如何選擇場景、如何將標題融入圖片、如何保持真實人物的臉孔真實、如何控制長寬比、如何檢查檔案以及如何撰寫替代文字。它會將品牌常數(色板、字型、標誌規則、肖像規則)的決定權交給 brand/brand-profile.md,將標題的文案交給 writing 技能,將影片編輯中的封面製作交給 video-editing 技能,並將獨立的發佈前檢查交給 review-loop 技能。

權威順序:brand-profile.md 在品牌常數與合規用語上擁有最終決定權;此技能主導方法。

開始之前

  1. 找到行銷工作目錄(預設為 marketing/)。如果不存在,用一句話說明,並提議執行 brand-setup 技能;若使用者想繼續,只需詢問色板(兩到三個十六進位色碼)、一個標題字型,以及是否會出現真實人物。
  2. 讀取 brand/brand-profile.md 中的 ## Visual identity(色板、字型、標誌使用、圖片風格)、## Likeness(參考圖片路徑與規則)、## Platforms(圖片的發佈平台)、## Compliance(圖片中必須或不能出現的內容)、## Boundaries 與 ## Tools(可用的影像模型)。
  3. 在鎖定任何標題文案之前,先讀取 brand/voice-learnings.md:標題是文案,文案應該聽起來像這個人會說的話。
  4. 讀取 brand/performance-learnings.md,了解該帳號已學到哪些圖片能獲得較高觸及。
  5. 在該素材的資料夾 content/<yyyy-mm-dd>-<slug>/ 中工作。圖片存放在該資料夾下的 images/ 子資料夾中。
  6. 在產出前確認格式:純靜態、輪播、短影音封面、長影音封面或動態靜圖。如果無人指定,選擇最簡單且合適的格式,並用一句話說明原因。

標準

  1. 標題是由影像模型內建於場景中,絕非透過程式碼後製貼上。 要求模型將標題與副標題作為圖片的一部分來渲染,並如同設計師般進行打光與擺放。原因:事後使用 PIL、Canva 式疊加或 HTML 添加的文字位於與照片不同的平面,看起來像廉價的模板,這正是人們拒絕 AI 圖片最常見的原因。影像模型現在已經擅長處理簡短的顯示文字;讓它來完成這項工作。
  2. 標題是主角。 使用大而粗體、壓縮的字型,約佔可見高度的 40%,且絕不低於三分之一,由兩到三行短文組成,其中一個重點詞使用強調色。如果它讀起來像說明文字,那就失敗了。原因:網格與動態消息是在手機上以縮圖大小進行評判,只有大標題才能在那種情況下脫穎而出。
  3. 所有文字都位於網格安全區內。 位於畫布中央的 1:1 正方形內,並在每一側再向內縮進 7% 到 8%,標題上方保留空白空間,且底部 12% 的區域內沒有任何重要內容。原因:個人資料網格、連結預覽與動態消息內的裁切會切掉邊緣。請開啟 references/grid-safe-zone.md 以查看各格式的具體數值。
  4. 每張圖片都是一個獨特、逼真的場景,專為該訊息而建構。 一個人在真實地點做某件事,或一個強而有力的視覺隱喻,使用自然色彩,並謹慎使用品牌強調色。絕不重複使用相同背景上僅更換文字的同一張肖像。唯一的例外是刻意設計的每週系列,這種情況下可以有目的地重複其版面配置。
  5. 真實人物保持真實。 當真實人物出現時,他們的臉孔必須來自他們的參考照片,並反映其實際年齡與體型。切勿發明臉孔,切勿直接發佈參考照片本身。
  6. 精確尺寸,經過驗證。 每個檔案都必須完成至 references/asset-sizes.md 中指定的精確像素尺寸,並且必須檢查其尺寸,而非假設。
  7. 切勿在程式碼中湊合形狀。 不要為了強制符合某個長寬比而對生成的圖片進行填充、加黑邊、鏡像、拉伸或合成。請改用長寬錨點(見下文)重新生成。原因:填充後的圖片會有看起來未完成的死區空間,而且一目了然。
  8. 每張圖片一行替代文字。 對場景與內建標題進行樸實的描述,不包含主題標籤、連結或銷售用語。

方法

1. 決定圖片(每張圖片都重新發想)

  1. 用一句話說出貼文的核心訊息。
  2. 決定情緒:安撫、機智、冷靜、有趣、快樂或溫和警告。預設為溫暖。切勿使用絕望。
  3. 發想出一個能傳達此訊息的視覺想法:一個人身處真實時刻(在繁忙的街道上講電話、在廚房的餐桌旁喝咖啡、拆包裹),或一個易於理解的隱喻(店面下的安全網、一條有一個裂開鏈節的鏈條、一個圈出某一天的日曆)。
  4. 撰寫標題(2 到 5 個字為理想,絕不超過三行短文)與可選的一行副標題。以直接、字面的陳述句開頭,說明這是什麼;然後提供一個更巧妙的鉤子作為標註的替代方案。原因:直接了當的標題在清晰度與搜尋上通常表現更好,當人們有選擇時往往會選擇它們。
  5. 從一開始就規劃好標題的空白區域,通常是網格安全正方形內較暗的天空、牆壁或陰影區域。

2. 生成內含標題的場景

撰寫一個提示詞,同時描述場景、光線、構圖與文字。準確拼出標題,並用引號標註,說明哪個詞使用強調色,要求在保留區域內使用「巨大、粗體、壓縮、海報級別」的字型,並確保副標題夠短而不會換行。保持圖片的底部區域乾淨。

防護措施,因為影像模型在可預測的情況下會失敗:

  • 換行的副標題常常會在換行處重複一個字(「first first」)。請保持在一行內。
  • 固定的微小文字(姓名、帳號、網址)經常被拼錯。如果品牌使用小的名稱標籤,請事後再蓋上那個元素(scripts/cover_from_frame.py --wordmark 示範了如何操作),而不是要求模型來處理。
  • 長的標題會縮小並產生亂碼。使用更少的詞彙,更大的字體。

開啟 references/prompting-and-aspect.md 以了解提示詞結構、長寬比技巧以及 Gemini 的實作範例。簡而言之:如果你的工具提供了長寬比設定,請使用它;如果它只能輸出正方形,則編輯到目標比例的空白畫布上(scripts/aspect_scaffold.py),並且切勿同時傳遞正方形參考圖片。

3. 肖像鎖定(任何包含真實人物的圖片)

在會議中第一次處理以臉孔為主的圖片之前,請先閱讀 references/likeness-lock.md。簡而言之:

  • 從 brand/reference-images/ 中的參考照片開始建立:將一張乾淨、正面的頭部特寫編輯到場景中,而不是用文字描述人物,並提供兩到三張裁切緊密的面部特寫(不是整張場景的自拍照,其背景會滲入)作為身份參考。先將橫向的手機照片旋轉為直立。
  • 根據提供的彩色照片逐項檢查結果(髮色、髮型、鬍鬚、臉型與體型、眼鏡、年齡)。切勿根據另一張 AI 圖像來判斷相似度。
  • 預計大約需要三到四次誠實的重新生成。如果仍然不像他們,將該素材重建為無臉場景(隱喻加上標題)。如果那樣也行不通,就先保留並說明原因。錯誤的臉孔比沒有圖片更糟糕。
  • 切勿直接發佈或裁切參考照片到圖片中。它們僅是身份參考。

4. 真實畫面封面(針對已拍攝的影片)

當此人已拍攝談話頭影片時,封面應使用該影片的真實畫面幀來建立,而不是一個生成的肖像。這張臉是真實屬於他們的,並且封面與影片相符。這是唯一一種情況,在照片上設計文字疊加是正確的選擇,因為這是在為真實的照片加上標題,就像縮圖設計師會做的那樣。

  1. 提取候選畫面幀(ffmpeg -ss <t>)或讓腳本在時間範圍內找到最清晰的人臉幀,並選擇一張有眼神接觸、表情溫暖(不是正在說話的瞬間)、焦點清晰且沒有內嵌字幕的幀。
  2. 執行 scripts/cover_from_frame.py(查閱其 --help):它會將畫面裁切至封面尺寸、添加柔和的遮罩、自動將主要標題(包含一個強調詞與底線)置於網格安全正方形內、添加可選的副標題帶與可選的名稱標籤,然後檢查每個文字框是否位於安全區域內。
  3. 匹配影片的形狀:9:16 的短片需要 1080x1920 的封面,文字位於中央正方形;16:9 的長片需要 1280x720 的封面。如果該素材正在使用 video-editing 技能進行編輯,其自身的封面步驟會在編輯過程中完成此操作。

5. 動態靜圖(「無疊加」規則的唯一例外)

動態靜圖是一個 4 到 6 秒的循環 MP4 檔案,用於填補靜態圖片的位子,且多數動態消息會將其視為影片處理。文字必須是獨立圖層才能移動,所以在這裡,而且只有在這裡,設計過的動態文字(kinetic type)可以疊加在生成的場景上。它同樣需要達到相同的標準:一個真實的場景、主要標題、品牌色彩、網格安全放置,以及標題在第一幀中就已完全可見,因為網格會從影片的第一幀開始預覽。開啟 references/animated-statics.md 了解何時使用、scripts/animate_render.js 的設定、音軌版權規則以及審查要點。

6. 無可用影像模型:HTML 備案

如果沒有連接任何影像模型,或者素材是純文字版面(例如逐字引言卡、數據卡、文字投影片輪播、個人資料橫幅),請使用 HTML 與 CSS 進行設計,並透過 Playwright 渲染。重要規則:視口必須是真正的輸出尺寸,不要使用 CSS scale 變換,必須在截圖前載入字型,並且事後檢查 PNG 的尺寸。開啟 references/html-fallback.md 並使用 scripts/render_html.js。當需要逐字重現客戶推薦時,引言卡也是正確的選擇,因為生成的文字可能會走樣。

7. 完成、存檔與描述

  1. 為每個目標平台完成至精確尺寸(references/asset-sizes.md)。一個 4:5 的主圖通常適用於 Instagram、Facebook、LinkedIn 和 Threads;只有在所有文字都位於中央正方形內時,才能透過中心裁切產生 1:1 的版本;否則請生成一個單獨的正方形圖片。
  2. 執行 python3 scripts/check_image.py <file> --expect WxH --grid 來確認尺寸並產生一個網格預覽表(以縮圖大小顯示中心正方形和 3:4 裁切,並繪製安全框)。
  3. 儲存到 content/<yyyy-mm-dd>-<slug>/images/,並使用能說明其用途的名稱(<slug>-feed-4x5.png、<slug>-cover-9x16.png)。
  4. 為每張圖片撰寫一行替代文字,並放入素材的 PACKAGE.md 中,例如:「一位身穿沾滿麵粉圍裙的女性,將麵包店門上的牌子翻到『營業中』,上方有標題『在孩子上學前開始營業』。」 輪播投影片中的每一張都需要有自己的替代文字。影片封面則不需要替代文字。
  5. 將最終的提示詞(以及任何重新生成的備註)保存在素材資料夾中,以便未來的重新生成能從先前有效的基礎開始。

發佈前檢查(審查循環)

每次生成與每次重新生成都是一張新的圖片,因此必須對已存檔的檔案進行完整檢查,將其開啟並目視審查,絕不能僅憑提示詞判斷:

  • 標題、副標題以及任何蓋印標籤中每個單字的拼字;沒有重複的單字。
  • 標題主導性:醒目,最容易被讀到,在個人資料網格的縮圖尺寸下清晰可辨。
  • 網格安全:所有文字都位於有邊距的中央正方形內;沒有任何文字接觸邊緣;底部區域沒有任何內容。對於任何影片,請檢查第一幀。
  • 肖像相似度(以臉孔為主的素材):與提供的彩色照片進行比對的評分標準。不確定即視為不合格。
  • 形狀:真實尺寸符合目標;沒有填充或拉伸。
  • 品牌:色板與字型符合設定檔,強調色使用謹慎,色彩自然。
  • 獨特性:不是帳號最近幾張圖片的近親複製品。
  • 真實性與合規性:圖片中的任何數據或宣稱都能追溯到來源;來自 ## Compliance 的必要標籤已存在;## Boundaries 中的任何內容都未出現。

如果失敗,修正原因並重新生成,然後以同樣的方式審查新檔案。接著將整組素材交給 review-loop 技能進行獨立審查。如果某個素材無法乾淨地產出,保留提示詞,說明失敗原因並暫緩發佈。絕不要發送替代臉孔或僅後製貼上文字的妥協版本。

調適指南

  • 沒有真實人物入鏡? 跳過肖像鎖定,專注於場景與隱喻;其餘標準保持不變。
  • 產品型企業? 將產品視為「臉孔」:使用真實的產品照片作為參考,讓模型保持其形狀、標籤與色彩的真實性。
  • 不同的影像模型? 方法保持不變。只有 references/prompting-and-aspect.md 中的具體操作(如何設定長寬比、是否接受參考圖片)會改變。
  • 系列格式(例如每週回顧、每週秘訣):為該系列固定一個版面配置,並在系列之間變更所有其他元素。
  • 受監管行業: 檢查 ## Compliance 中是否有任何必須出現在圖片上或絕不能出現的內容(數據、保證、推薦)。如有疑問,將宣稱保留在圖片之外,放在附有免責聲明的說明文字中。
  • 你自己的經驗教訓: 當使用者拒絕或更換圖片時,在 brand/performance-learnings.md(視覺教訓)或 brand/voice-learnings.md(標題文案)中記錄是什麼以及原因,這樣下一次的圖片就能從更接近目標的地方開始。

此技能中的檔案

檔案開啟時機
references/asset-sizes.md完成任何檔案時;檢查平台當前尺寸時
references/grid-safe-zone.md在任何格式上放置文字時
references/prompting-and-aspect.md撰寫提示詞、對抗長寬比、使用 Gemini 時
references/likeness-lock.md任何包含真實人物的圖片時
references/animated-statics.md為靜態位子製作循環 MP4 時
references/html-fallback.md無可用影像模型,或是純文字版面時
scripts/aspect_scaffold.py為基於編輯的工具在目標比例上製作空白畫布時
scripts/cover_from_frame.py從真實影片幀建立封面時
scripts/animate_render.js渲染動態靜圖時
scripts/render_html.js…

…

[truncated for translation]

Individual skills in this repo

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

builtnotboosted/review-loop

The quality gate every piece of content passes before it is filed, scheduled or posted. Runs a self-critique, then an independent review by a fresh subagent that sees only the finished work and the criteria (never the builder's reasoning), then fix and re-judge until there is a clean pass. Covers what to do when a piece can't pass unattended (hold, flag, ship the rest). Use when someone says "review this", "check this before it goes out", "QA the pack", "is this ready to post", "get a second pair of eyes on this", "proofread the captions", or when any other Built Not Boosted skill hands work over for checks.

builtnotboosted/scheduling

Gets finished posts into a social media scheduler (or posted by hand) safely. Queue-only with explicit timezone offsets, live dedup against scheduled and already-published posts, media readiness checks, correct post types (shorts, reels, carousels, first comments, manual-posting reminders), alt text, a link gate that sends copy back for a rewrite rather than stripping it, and confirmation before anything goes live. Writes and keeps a scheduling manifest for each pack. Works with any scheduler; Publer is the worked example. Use when someone says "schedule this", "queue these posts", "put this in Publer", "book in this week's content", "post this on Tuesday at 7", "move that post", "what's already scheduled", or hands over a finished content pack to go out.

builtnotboosted/video-editing

Edits filmed talking-head footage into release-ready vertical shorts (1080x1920) and 16:9 YouTube long-forms with ffmpeg and Whisper. Keeps exactly one clean read of every script line (no stumbles, restarts or double reads), never leaves a flat single shot (punch-ins, reframes, B-roll, motion graphics), captions from the finished audio, normalises loudness to -14 LUFS, makes a real-frame cover and runs a QA gate that re-transcribes the render and refuses delivery until it passes. Syncs extra cameras by sound and writes YouTube chapters. Use when someone says "edit my video", "cut this clip", "remove my retakes", "edit out the fluffs", "add captions to my video", "make a short from this footage", "sync my two cameras", "make a thumbnail from my video", or hands over raw footage and a script.

builtnotboosted/video-scripting

Writes video scripts that sound like the person who will say them, for shorts (Reels, TikTok, YouTube Shorts) and long-form YouTube. Warm hook rather than a shout, who-am-I and follow early, a retention shape that delays the answer, a soft earned close, length that follows the story, real-problem substance, reactive scripts for news and data releases. Output is teleprompter-ready (think-breaks, shot reminders) with short edit notes for the video-editing skill. Use when someone says "write me a script", "script a reel about", "I need a short on", "plan a YouTube video", "turn this post into a video", "react to today's news on video", "what should I say on camera", or before a filming session.

相關技能