name: editor-b-cover description: "譚編於2026年7月22日釋出【圖書封面設計Skill】。本技能用於圖書、期刊的封底、封面設計:使用者傳送一份僅含文字、LOGO和條碼等元素的封面 PDF(無底圖)以及封面設計主題描述文本,本技能自動提取精確頁面尺寸,用 AI 生成一張高畫質、無文字、符合封面主題的背景底圖,並將底圖作為真實背景層插入 PDF 底部——源 PDF 的書名、作者、條碼等文字與圖形始終保持為可選中的向量內容(絕不柵格化、絕不合併為單張扁平點陣圖)。支援橫版/豎版/方形封面;人物預設中國面孔,主體嚴格限右半幅中下方、禁越中線,左側留白承載標題;風格必須生動豐富有變化、禁單調。輸出分層 PDF 與純底圖 PNG。觸發詞:圖書封面、封面底圖、襯底圖、加底圖、設計封面背景、design a cover background。" agent_created: true
本技能把"給封面 PDF 加底圖"拆成四個清晰崗位,前兩段是提示詞工程(由你——作為 LLM——完成),後兩段是執行(呼叫指令碼/繪圖大模型):
NO TEXT / NO LETTERS / NO NUMBERS / NO WORDS 不可省略,且繪圖提示詞內絕不得出現可被模型誤解為"請在圖上寫字"的措辭。底圖嚴禁縱向壓扁/拉伸:生成時按使用者 PDF 頁面的真實寬高比出圖,合成時整頁矩形鋪滿(preserveAspectRatio=False 但影像與頁面比例一致,無畸變);prepare_background.py 僅做居中裁剪(寬或高單邊裁切,絕不雙向縮放),保證頁面整頁高度完整利用。
風格必須生動、豐富、有變化(嚴格約束 · 禁止單調):底圖不得是單一平塗色塊、寡淡的單色漸變或重複雷同的紋理。必須有具體的光影、明暗層次、材質質感與主題相關的具象視覺元素;畫面要有呼吸感、焦點與視覺趣味。每次出圖都應在構圖、光影、色彩細節上體現多樣性,避免千篇一律的"同一個模板換個顏色"。
繪圖主體嚴格限制在右半幅中下方,禁止越過中線(嚴格約束):主體的全部視覺元素集中在頁面右半部分(x ∈ 50%–100%)的中下區域(y 約 45%–88% 自頂,底部 ~12% 留為可裁空白);任何主體元素都不得越過垂直中線(x=50%)向左半部(封底區)延伸。左半部保持柔和、低對比、無焦點的留白,承載學報標題等深色文字。構圖描述為"RIGHT HALF, middle-lower"——這是本刊封面固定版式,與"渾然一體整體背景"不矛盾:整體色調/光感統一貫通全頁,但主題焦點只在右半幅,左半幅是柔化延伸的非焦點留白。
把使用者 PDF 存到工作區,執行佈局提示詞工程師的工具 analyze_layout.py 得到結構化的 layout brief:
<python_path> <skill_path>/scripts/analyze_layout.py <cover.pdf> [--max-chars 1500]
<python_path> = managed venv 直譯器
(C:\Users\Administrator\.workbuddy\binaries\python\envs\default/Scripts/python.exe),
或任意裝有 pypdf / PyMuPDF 的 Python。
<skill_path> = 本技能目錄。
brief 含:page(寬高 pt / 方向 / 寬高比)、text_summary(整頁深色文字面積與是否需整體淺色)、
barcode_qr_count、recommendation(合成引數建議)、text_sample(供理解主題)、hard_rules(硬規則清單)。
向用戶回報:檢測到的標題(用 text_sample 概括)、頁面尺寸、方向,以及佈局要點
(底圖為渾然一體整體背景、是否需整體淺色保文字可讀)。
若
text_sample為空或無法判斷主題,詢問使用者書名與題材。
輸入:analyze_layout.py 的 brief。
輸出:一段英文「佈局提示詞」,描述底圖是渾然一體的整體背景,鋪滿整頁、不分割槽。
關鍵約定(使用者明確要求):不分封底/封面、不考慮書脊、不畫分界線、不考慮偏移量;
底圖是一個統一視覺整體。依 brief 推導(詳見 references/cover-prompt-guide.md「佈局提示詞模板」):
recommendation.layout_style,必須為 seamless_unified → 寫
"ONE unified, seamless artwork covering the ENTIRE page. NO division into back-cover / front-cover zones, NO spine, NO divider line, NO offset."recommendation.keep_background_light == true → 寫
"OVERALL TONE: light & airy, low-contrast — all overlaid cover text (including dense small print on the back) must stay perfectly legible. Avoid large saturated or dark areas that would cover text."page.ratio_w_over_h → 加入 "Preserve the page's exact aspect ratio (W/H = recommendation.subject_placement 取何值,本刊封面一律:
"MAIN SUBJECT (the themed visual focus) is CONFINED to the RIGHT HALF of the page — strictly within x = 50% to 100% horizontally, and in the MIDDLE-LOWER vertical band (y ≈ 45% to 88% from top). The subject MUST NOT cross the vertical center line (x=50%) into the left / back-cover half under any circumstances; keep the LEFT HALF a soft, seamless, low-contrast, subject-free wash so the overlaid dark text (journal title, etc.) breathes. The subject stays soft and harmonious with the whole — not a hard-edged block, no divider. Additionally, the BOTTOM ~12% of the image must stay a soft seamless wash with NO subject, no horizon, no focal element — this band will be cropped off by the oversize+bottom-crop step in Stage 4 to remove the ImageGen watermark, so any detail there is wasted."輸入:使用者發來的主題文字(如"CO2封存,離岸,海洋碳匯,地質封存"或"教師、幼兒園,真人")。 輸出:一段英文「繪圖提示詞」,描述主體 / 場景 / 風格 / 色調 / 氛圍(不含任何文字)。
規則(詳見 references/cover-prompt-guide.md「繪圖提示詞擴充套件規則」):
keep_background_light,整體保持淺色/低對比,確保全部文字可讀)。把兩段提示詞合併為最終 ImageGen 提示詞:
A book-cover background artwork, [ORIENTATION] orientation, designed to sit
BEHIND existing cover text. NO TEXT, NO LETTERS, NO NUMBERS, NO WORDS anywhere
in the image. (Strict: the image must be 100% text-free — do not render any
letters, digits, or characters.)
[佈局提示詞 — 來自階段1:渾然一體的整體背景、整體明暗/留白、按頁比例不縱向壓縮、
主體嚴格限右半幅中下、底 12% 留白]
[繪圖提示詞 — 來自階段2:主體/場景/風格/色調/氛圍,風格鬚生動豐富有變化、禁單調]
[ORIENTATION] 取 brief.page.orientation(LANDSCAPE / PORTRAIT / SQUARE)。NO TEXT… 不可省略(硬約束 1)。size:LANDSCAPE→1536x1024,PORTRAIT→1024x1536,SQUARE→1024x1024。ImageGen(prompt=<合併後的提示詞>, size=<按方向>, quality="high",
output_dir=<工作區輸出目錄>)
ImageGen 會在底部約 15% 高度處蓋「圖片由AI生成」水印(實測水印頂約在 0.85 H,下面還有原圖內容;無法用提示詞抑制)。統一方案:階段 4 的 oversize + 底裁機制直接裁掉(
--oversize 1.18),從根源規避修補,乾淨徹底,不會在右下主體區留下光暈/殘字。
核心思路:不去修補水印——直接把 ImageGen 原圖按 PDF 高度的 110~120% 出圖,構圖上預留底部約 12% 空白,再在合成時把這塊連帶水印整條裁掉,輸出恰好頁面尺寸的乾淨底圖。
# 1) Oversize + 底裁(推薦)—— 直接用 raw ImageGen 圖:
# 先 cover-fit 到 W × (H*oversize) 畫布,再底裁 (oversize-1)*H,把"圖片由AI生成"連同底部留白一併切掉。
# 輸出就是恰好頁面尺寸的純底圖。
<python_path> <skill_path>/scripts/prepare_background.py <RAW_imagegen.png> <cover-background.png> \
--width-pt <W> --height-pt <H> --dpi 300 --oversize 1.18
# --oversize 推薦 1.18 (18% 底裁):覆蓋實測 ~15% 水印帶 + 3% 安全餘量,乾淨徹底。
# 嚴格按使用者原始 10% 規格:--oversize 1.1 —— 但因水印實測頂在 0.85H,會留下約 23pt 字元頂部殘條。
# 關閉該模式(恢復"按比例裁剪到頁面尺寸"的舊行為):--oversize 1.0。此時輸入須為已無水印的圖。
# 2) 襯底(分層,向量在上)—— 引數來自 brief.recommendation
<python_path> <skill_path>/scripts/composite_pdf.py <cover.pdf> <cover-background.png> <cover-layered.pdf> \
[--keep-fill] [--no-scrim | --scrim-alpha 0.55]
為什麼用 oversize+底裁而非修補:在淺色富紋理背景的右下主體區(風車、太陽能板、綠林常在這裡),任何修補都容易留下光暈和"圖"字殘影;oversize+底裁從幾何上把水印連同底部一起切掉,零修補痕跡。
composite_pdf.py 的引數是由 brief 自動決定的,不要憑感覺:
brief.recommendation.keep_fill == true → 加 --keep-fill(源 PDF 無大塊待剝離實底,或深色品牌塊需保留)。brief.recommendation.strip_fill == true → 不加 --keep-fill(指令碼會在向量層刪除該 re…f 實底,使底圖透出)。brief.recommendation.scrim == "recreate" → 用預設 scrim(同色半透明,保淺色標題可讀);可微調 --scrim-alpha 0.35~0.55。brief.recommendation.scrim == "off" → 加 --no-scrim。儲存 cover-layered.pdf(分層成品)與 cover-background.png(純底圖)。
校驗(用 PyMuPDF 指令碼或內聯):
- get_images() 命中 → 背景是真實圖層;
- 原書名/作者/出版社/ISSN/定價 仍 get_text() 可選取;
- 條碼白塊原樣保留。
若使用者在主題文本中寫入 封面論文:<論文題目> 或 專題:<專題名>,
則在成品 PDF 的主體圖上方、右邊封面插入一行可編輯向量文字,格式即
封面論文:<論文題目> / 專題:<專題名>。字型 小四號(12 pt)宋體(SimSun),
真實可選中、可編輯,絕非柵格化。
檢測與寫入由 add_caption.py 完成(自動識別觸發、解析內容、定位、嵌字):
<python_path> <skill_path>/scripts/add_caption.py <cover-layered.pdf> <cover-layered-caption.pdf> \ --theme-text "<使用者原始主題文本,含 封面論文:… 或 專題:…>" # 或直接給文字: <python_path> <skill_path>/scripts/add_caption.py <cover-layered.pdf> <cover-layered-caption.pdf> \ --caption "封面論文:奈米流體提高採收率機理研究"推薦訪問7w4.net獲取更多AI技能。
--x0/--x1/--y-top/--y-bot/--align
微調。該預設位置已據此使用者多次微調後固化。insert_textbox 把文字放在矩形框的【底部】,因此 --y-bot 才是文字
真正的縱向位置,--y-top 只需明顯小於 --y-bot 以留出框高(約 30 pt);框過矮會
導致文字被丟棄(務必 get_text() 校驗已寫入)。add_caption.py 會原樣複製 PDF(不報錯),可安全總在階段 4 後呼叫。insert_textbox);最終交付 cover-layered-caption.pdf。最後用 present_files 交付成品(含說明文字的 PDF)與 cover-background.png,並向用戶說明:
檢測到的標題、尺寸、方向、DPI、是否保留實底 / 是否加 scrim,以及是否命中
封面論文/專題說明文字、所用字型字號。可提議 --scrim-alpha、--no-scrim、600 DPI、
重新生成底圖,或調整說明文字位置。
<python_path> = C:\Users\Administrator\.workbuddy\binaries\python\envs\default/Scripts/python.exe
<skill_path> = C:\Users\Administrator\.workbuddy\skills\editor-b-cover
# ① 佈局分析(佈局提示詞工程師工具)
python <skill_path>/scripts/analyze_layout.py <cover.pdf> [--max-chars 1500]
# ② Oversize + 底裁(首選,直接處理 raw ImageGen 圖,裁掉「圖片由AI生成」水印)
python <skill_path>/scripts/prepare_background.py <RAW_imagegen.png> <cover-background.png> \
--width-pt <W> --height-pt <H> --dpi 300 --oversize 1.18
# ③ 襯底(分層,向量在上)
python <skill_path>/scripts/composite_pdf.py <cover.pdf> <cover-background.png> <cover-layered.pdf> \
[--keep-fill] [--no-scrim] [--scrim-alpha 0.55] [--min-fill-frac 0.20]
# ⑤(可選)封面論文/專題 說明文字(可編輯向量,小四宋體)
python <skill_path>/scripts/add_caption.py <cover-layered.pdf> <cover-layered-caption.pdf> \
--theme-text "<使用者主題文本>" # 或 --caption "封面論文:…";微調 --x0/--x1/--y-top/--y-bot/--align
analyze_layout.py 用 PyMuPDF 讀出實底矩形、文字密度、條碼位置,輸出歸一化(左上原點)區間,直接餵給提示詞工程,避免"憑眼猜佈局"。composite_pdf.py 用 pypdf 的 page.merge_page():背景頁(圖片 + 可選向量 scrim)在下,源內容(含向量剝離的實底)在上 → 文字/條碼保持可選中向量,底圖是真實影像層。絕不用 PIL alpha_composite 把整頁柵格化。prepare_background.py 恆中心裁剪到目標比例(Lanczos),後續拉伸到頁面零畸變。pypdf、reportlab、Pillow、PyMuPDF(fitz)。scripts/analyze_layout.py — 佈局提示詞工程師的工具:分析 PDF 佈局,輸出 layout brief(JSON),含實底遮擋塊、文字密度、條碼位置與合成引數建議。scripts/prepare_background.py — 中心裁剪到精確頁面比例 + 高 DPI 純底圖 PNG(交付物之一)。--oversize 1.1~1.2 啟用 oversize+底裁模式(首選,裁掉 ImageGen 水印);--oversize 1.0 = 僅按比例裁剪(用於已無水印的輸入)。scripts/composite_pdf.py — 分層合成器:向量剝離源實底(可選)、可選向量 scrim、merge 源內容於背景之上,產出分層 PDF。scripts/add_caption.py — 識別 封面論文:… / 專題:… 觸發,在主體圖上方右側封面插入可編輯向量說明文字(小四號宋體)。references/cover-prompt-guide.md — 佈局提示詞模板 + 繪圖提示詞擴充套件規則 + 風格/尺寸表。這個封面設計Skill質量不錯,文件寫得很詳細,流程清晰、約束明確。底圖生成禁止文字、保留向量文字層、分層PDF輸出等核心功能都做得很好,特別是ImageGen水印處理方案很巧妙。風格生動變化、主體位置固定等設計要求也很實用。美中不足的是沒有示例檔案幫助理解使用場景,程式碼也沒有測試覆蓋,小問題修復可能不夠及時。