觸發條件
觸發於通用靜態海報需求:"為 <品牌> 製作一張海報"、"發佈海報"、"海報即著陸頁"、"傳單"、"主視覺"、"宣傳圖像"、"專輯封面風格靜態圖"、"商品發佈公告圖"。任何主題、任何美學——本技能與主題和風格無關。
請勿觸發於以下情況:
- 用戶指向一張特定海報要求重現(
@template:<slug>、"重混這張"、指名 slug)→ 那是重混路徑。請參閱docs/skills-vs-templates.md。 - 用戶想要移動的影片(字標動畫、英雄說話)→ 匹配影片格式/模板,載入對應影片工藝覆蓋技能(
ugc-*),並使用編輯器劇本,而非此技能。 - 用戶輸入了
@guideline:<slug>,用於指定此海報所屬的規範(寫實人類、反 AI 粗糙內容)→ 先執行ralphy guideline show <slug>並將其規則融入英雄照片槽位。
本技能是什麼
一個通用化的佈局覆蓋層,而非成品海報。它不指定品牌、英雄或色盤——它告訴藝術指導者這類海報是如何建構的,以便為用戶推廣的任何內容產出強而有力的成果。它透過 ralphy generate image 執行;不會繞過參考需求閘門或品質閘門。
硬性不變項
- 所有生成流程都必須經過
ralphy generate image(無原始 API)。在指定任何模型 ID 前,請閱讀MODELS.md——下方的模型層疊是預設值,而非硬編碼。 - 如果英雄或產品槽位中出現已命名的真實實體(真人、可辨識的品牌產品、智慧財產權),參考需求閘門仍然會觸發。虛構品牌 + 原創字型 + 通用產品則在無需參考的情況下進行。請在提示中明確標明該品牌字型為「原創」(「並非任何現有品牌」),以免模型偏向已註冊商標。
- 品質閘門會拒絕而非僅警告——連續兩次
scoreImage失敗即停止並回報選項。 - 真實品牌預檢:提示前的網站根因調查。 如果海報針對真實品牌(用户自己的新創公司、客戶的網站、任何提供的 URL),請在起草品牌 DNA 或提示前,派遣一個 Playwright 子代理爬取首頁 +
/docs+/pricing+/features+/examples。請閱讀artifacts/refs/research.md(子代理的摘要),而非僅對首頁執行 WebFetch。每個{{palette}}的十六進位色碼都必須追溯到artifacts/refs/tokens.json;正文文案或程式碼創意槽位中每個命名的 API 符號都必須追溯到research.md中的「已記錄 API 表面」。完整的規範和子代理提示模板:.agents/skills/researcher/references/site-grounding.md。跳過此步驟曾導致sotaocr-fb-001花費 1.20 美元,並產生 5/32 個幻覺 SDK 創意。
核心概念,一句話說明
海報即著陸頁成敗的關鍵在於一個巨大的、可讀的字標加上一個與觀眾進行眼神或接近眼神接觸的角色,並透過DIY 貼紙拼貼的能量將其結合。視線應先落在單詞上,然後是臉部,接著在 2-3 個貼紙重點間跳躍,最後閱讀文案。清晰的印刷體是整個遊戲的核心——模糊的字標會瞬間毀掉一切,這就是為何模型選擇以印刷體為優先,而非一致性。
固定架構(請勿重組——僅填寫槽位)
從上到下,此類別中的每張海報都遵循此堆疊:
| 區帶 | 固定角色 | 待填寫的槽位 |
|---|---|---|
| 1. 頂部橫幅 | 小型、字距較大的大寫介紹行 | {{tagline}}、強調色 |
| 2. 字標 | 巨大的無襯線粗體,3D 斜面陰影,每個字母的鉻黃高光,略微俏皮的傾斜 + 不完美的字尾 | {{exclamation}}(簡短有力的單詞:BOOM / DANG / YIKES / WOW / OOPS) |
| 3. 英雄照片(約 60% 高度) | 電影風格的胸部以上肖像,視線向上,休閒酷感,胸前有原創 blob 字型,手持產品置於嘴部高度,柔和邊緣光,影片顆粒感 | {{hero}}、{{product}}、{{blob_glyph}} |
| 4. 貼紙拼貼 | 3 張乙烯基貼紙(細白邊框 + 柔和投射陰影 + 膠帶角落),以俏皮角度散落 | 帶產品巨集的星星 · 帶 blob 臉的星星 · 帶像素「NEW DROP」類型標籤的小星星 |
| 5. 文案區塊 | 壓縮大寫標題 + 4 行斜體無襯線內文 + 填色 CTA 藥丸形按鈕 | {{headline}}、{{body_copy}}、{{cta}} |
| 6. 頁腳條 | 非常細的全寬字距大寫 | {{brand}} · EST. YYYY · <流程標語> · WWW.<domain> |
最終圖層(總是開啟):柔和影片顆粒感 + 輕微暗角 + 微弱的 CRT 暖色 + 復古網版印刷感。
槽位(海報間唯一會改變的部分)
{{brand}}+{{tagline}}+{{domain}}——虛構(或用戶擁有的)標籤。{{exclamation}}——字標單詞。一個簡短可喊叫的標記。{{hero}}——人物 + 服裝 + 表情。可自由變化年齡/性別/造型。{{product}}——手持並置於嘴部的道具(棒棒糖、冰棒、汽水罐、麥克風……)。除非用戶擁有該品牌,否則保持通用/無品牌。{{palette}}——滿版背景漸層(2 個十六進位色碼)+ 強調色(字標/標題)+ 斜面陰影色 + 奶油色內文色 + 線條木炭色 + 產品色。務必明確指定十六進位色碼。{{blob_glyph}}——一個原創的、手繪風格的可愛生物(笑臉 blob、獨眼雲朵、不對稱星星)。內部寫有小寫品牌單詞。標明「並非任何現有品牌」。{{aesthetic}}——風格註冊碼(Y2K 滑板衝浪街頭服飾是經過驗證的預設值;蒸汽波、垃圾搖滾雜誌、簡潔 DTC、90 年代電玩風格在相同架構下均可使用)。
模型層疊(每次執行時請與 MODELS.md 核對)
- 預設——
openai/gpt-5.4-image-2。 頂級印刷體/標籤準確性:斜面字標、小型頁腳條和 4 行內文都能清晰呈現。這正是它在海報生成上勝過以一致性為預設的模型的原因。並發上限為 1——序列化批次(--concurrency 1),切勿在此模型上同時進行多個平行海報生成。 - 備用——
google/gemini-3-pro-image-preview。 約一半的延遲和更低的成本,可承受 ≥4 個並發,但會使內嵌的小字印刷體模糊(flipper 事後分析;在 loud-kids-poster-001 上再次確認——4 行內文變軟)。僅用於快速的色盤/構圖探索,然後在 gpt-image 上最終確定所選變體。
長寬比——已解決,使用 --size
gpt-5.4-image-2 過去無論 --size 設定為何,都會回傳 1024² 的圖片。自 loud-kids-poster-001 工作階段起,ralphy generate image 會將 image_config.aspect_ratio(從 --size 衍生)轉發給 OpenRouter,且 gpt-image 會遵循它:--size 1080x1920 → 真正的 9:16 肖像(720×1280 原生桶)。傳遞 --size 1080x1920 以獲得垂直著陸頁海報,--size 1080x1080 以獲得方形社交貼文。輸出會落在模型最近的原始桶上,而非像素精確——如需精確畫格,請在後續流程中進行填補/縮放。
失敗模式
- 平行 gpt-image 生成 → 403 "Key limit exceeded"。 序列化(1 個並發上限)。每次生成也需時約 2.5-4 分鐘。
- Gemini 模糊了內文和頁腳條。 請勿在 Gemini 上最終確定印刷體密集的海報。
- 字型偏移到真實商標(微笑品牌等),如果您未加上「原創,並非任何現有品牌」——始終包含該條款。
- 貼紙太多 → 視線無處安放。上限為 3 張,並將它們置於英雄的邊緣。
- 字標 + 標題與繁忙背景顏色相同 → 可讀性歸零。字標強調色必須與漸層形成強烈對比。
實作範例(已於 2026-05-27 驗證)
.ralphy/workspaces/<ws>/projects/loud-kids-poster-001/ 目錄中包含了根據此精確架構建構的三個色盤/英雄/產品變體(BOOM/皇家藍+棒棒糖、DANG/珊瑚李+冰棒、YIKES/萊姆森林+蘇打水),以及一個 9:16 A/B 比較(gpt-image 對比 gemini)。三個提示檔案(prompt-v1-boom.txt …)是標準的已填滿槽位參考——在起草新的海報提示前,請先閱讀其中一個。
CLI 操作手冊
# 預設海報,垂直 9:16,清晰印刷體
ralphy generate image --project <id> --slot poster-01 \
--model openai/gpt-5.4-image-2 --size 1080x1920 --prompt "<已填寫的架構>"
# 快速色盤/構圖探索(之後在 gpt-image 上最終確定優勝者)
ralphy generate image --project <id> --slot poster-explore --variants 3 \
--model google/gemini-3-pro-image-preview --size 1080x1920 --prompt "<...>"
# 同一海報的方形社交貼文版本
ralphy generate image --project <id> --slot poster-01-sq \
--model openai/gpt-5.4-image-2 --size 1080x1080 --prompt "<已填寫的架構>"
長提示:將已填寫的架構寫入專案目錄中的 .txt 檔案,並傳遞 --prompt "$(cat file.txt)"——內文中的撇號會破壞內聯的單引號 shell 字串。