Communitygithub.com

zhaimengrica-bit/ai-design-skills-ink-wash-restyle

水墨遊記 Ink-Wash Restyle —— 照片轉手繪水墨遊記畫面的 Skill

ai-design-skills-ink-wash-restyle 是什麼?

這是一個專為 AI 繪圖代理設計的「照片轉水墨遊記風格」技能。它能將任意照片重繪成具有手繪水墨感的遊記畫面,核心特色是「黑白水墨為底、克制彩色點綴(約 20%)、並自動疊加遊記標籤與朱砂印章」。技能支援 Claude Code、Cursor、Codex 等具備圖生圖能力的平台,透過詳盡的規則引擎(如墨色五層、留白≥50%、主體大小鐵律、人物身份鎖定、寫意三要素等)確保風格一致性。工作流程包含輸入解析、圖像理解與配色決策、Prompt 建構、圖生圖調用、後製疊加標籤與產出對照圖。輸出為上下對照拼圖(上為原圖、下為帶標籤成品),並強制使用腳本疊加標籤以避免亂碼,是專注於水墨風格的高品質圖片處理工具。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add zhaimengrica-bit/ai-design-skills-ink-wash-restyle

在你喜歡的 AI 中提問

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

說明文件

ink-wash-restyle — 水墨遊記畫面(v16 固定版)

把任意照片重繪為行程手繪水墨感的遊記畫面:

  • 黑白水墨為底:墨色五層 + 大面積留白(水墨感優先)
  • 克制彩色筆觸(約 20%):只在視覺中心點染傳統國畫色,不搶水墨戲
  • 遊記標籤:畫面疊加"畫面描述 · 地點"文字 + 固定 朱砂印章,像旅行手帳

保留:主體類別、空間關係、人物身份(性別 / 年齡 / 關鍵外觀)。替換:寫實材質 → 墨色筆觸,照片光影 → 墨韻與留白,寫實色彩 → 局部傳統國畫色。

何時觸發

用戶上傳或引用一張照片,並表達"水墨 / 國畫 / 寫意 / 水墨化 / 遊記 / 手帳 / ink wash / shuimo / sumi-e"等意圖。本 skill 只做水墨,不做其他風格。

輸入契約

  • 必填:1 張照片(本地路徑、URL 或上傳圖片)
  • 選填:地點(如"成都街頭")——用於遊記標籤;缺省則不寫地點,只寫畫面描述,或寫"旅人手記"

核心風格規則(6 大鐵律)

🎨 1. 水墨感優先鐵律

黑白水墨是主角,彩色是點綴。 彩色佔比過高 / 顏色太跳會毀掉水墨感(demo-016 教訓)。所以:

  1. 彩色佔比 20%:只在視覺中心點染,控制在畫面約 20%
  2. 黑白 + 直接彩色:黑白色調 + 一個直接的色彩點(不要多種顏色混搭、不要漸變、不要大面積暈染)
  3. 克制:寧可彩少,不可彩多;彩色點到為止,像傳統文人畫"惜色如金"
  4. 水墨感優先:五層墨、留白、筆觸必須強於彩色存在感

🎨 2. 墨色五層 + 留白鐵律

  1. 墨色五層必須分明:焦 / 濃 / 重 / 淡 / 清,禁止均勻灰
  2. 留白 ≥ 50%:畫面整體空白面積 ≥ 50%
  3. 🚨 主體大小鐵律(最重要):人物 / 主體必須保持正常比例大小(接近原圖的人物佔比),禁止為留白而縮小主體。留白是"背景與邊角的空",不是"主體的小"。人物要大、要完整、要自信地佔據畫面主要位置
  4. 惜墨如金:全圖 1 個濃墨集中區(落在主體上),密區面積要小
  5. 疏密對比:主體充分、背景空靈,以空襯實——空在背景,不在主體

🚨 3. 人物身份鎖定(性別漂移教訓)

  • 絕對禁止泛指詞:a person / a figure / someone / a lone traveler / a small figure
  • 必須顯式寫:性別 + 年齡段 + 髮色髮型 + 服裝 + 配飾 + 姿態朝向
  • 走寫意方向:衣紋流暢線條,面部留白或幾筆示意
  • 禁止 drip/melt/flow 一類動詞(會把人物畫成流掛液體)

✍️ 4. 寫意三要素

  1. 意到筆不到:物體只畫七分,形體在完成前淡出
  2. 書法用筆:提按、頓挫、飛白、枯筆
  3. 墨韻偶然:濕墨滲化、破墨潑墨
  4. 刪繁就簡:刪除的是背景雜物(貨架、車輛、招牌、筐、多餘人),主體本身必須完整充分、保持正常大小——只刪環境,不刪主體

🎨 5. 彩色筆觸自動配比(20%)

  1. 誰是視覺中心:構圖最大 / 最亮 / 最靠前 / 最獨特的主體
  2. 用什麼色:主體天然色相 → 傳統國畫色(朱砂 / 胭脂 / 花青 / 石綠 / 藤黃 / 赭石)
  3. 配比 20%:只點染視覺中心,約佔畫面 20%
  4. 其餘 100% 黑白墨

📝 6. 遊記標籤鐵律(v16 最終形態)

每張成品圖必須疊加遊記標籤。形態 = 傳統國畫"題款"路線:墨字 + 朱砂印章直接蓋在畫面上,無任何"卡片 / 底板 / 邊框"(卡片化被用戶判定為失去水墨美感)。

  1. 標籤內容:畫面描述 + 地點(如"盛夏的瓜攤 · 成都街頭";地點缺省則只寫畫面描述)
  2. 疊加方式:禁止讓圖生圖模型直接生成文字(必亂碼);必須用 scripts/tag.py(v6 素材版)在生成後疊加
  3. 模板化樣式(統一外觀,不因圖片改變):
    • 位置:右上角豎排(v17 改版)——傳統國畫落款經典位置
    • 正文題字:宋體(Songti,橫細豎粗),深墨色(#1E1E1E)不透明,每個字元一列從上到下
    • 米色描邊 halo:每個文字字元帶 4px 米色(#F5F0E6)半透明描邊(alpha 175),讓深墨背景下也能看清字形
    • 朱砂印章 = AI 生成真印章素材:朱砂紅篆刻印章、白文豎排、刀痕、印泥斑駁、邊緣不規則。由 AI 圖生圖模型一次生成 + scripts/seal-bake.py 摳圖成透明底,固定素材存於 assets/seal-la.png,每張圖都貼這同一個素材(PIL 字體畫無法模擬真實印章質感,必須用 AI 生成的素材)。所有圖統一 印章素材,不得更改。印章貼在文字列末尾正下方(水平居中對齊)
    • 整體形態:墨字 + 朱印融入畫面,不破筆墨
  4. 標籤順序:圖生圖模型出圖 → 加標籤(tag.py v7)→ 拼上下對照圖(用帶標籤成品圖,下方)

工作流

Step 1 — 解析輸入

確認能存取到圖;詢問 / 記錄地點(用戶沒說就不寫)。

Step 2 — 圖像理解(含彩色方案 + 標籤決策)

讀圖,提取(必填):

  • 人物身份:性別 + 年齡段 + 髮色髮型 + 服裝 + 配飾 + 姿態朝向(寫進 prompt,禁止泛指詞)
  • 主體:主要物 / 場景
  • 🎨 視覺中心判定 {focus}:誰最抓眼?
  • 🎨 彩色方案 {color_scheme}:視覺中心天然色相 → 傳統國畫色
  • 📝 標籤文案 {tag_text}:畫面描述(3–8 字)+ 地點(可選),如"瓜棚下的笑臉 · 老市集"
  • 構圖 / 光源 / 氛圍

Step 3 — 構建 prompt

讀取 styles/ink-wash.md 模板,填入變數。

Step 4 — 調用宿主平台的圖生圖能力

mode        : image-to-image(宿主平台圖生圖,跟隨原圖)
input_image : 原圖
prompt      : 完整 prompt(含 LOCKED APPEARANCE + 克制 COLOR ACCENT 20% + 墨色五層 + 留白 ≥50% + 主體大小鐵律 + XIEYI)
fidelity    : medium
aspect      : 跟隨原圖

⚠️ 必須顯式傳 output_dir 到 <workspace>/outputs/photo-restyle/<YYYYMMDD-HHMM>/,禁止依賴預設目錄。

Step 5 — 交付(先加標籤,再拼圖)

  1. scripts/tag.py 給水墨成品疊加遊記標籤 → <原圖名>-inkwash-tagged.png
  2. scripts/compare.py 拼上下對照圖:上方原圖 / 下方帶標籤成品圖(預設 width 1600,保證標籤清晰)→ compare-<原圖名>-inkwash.png
  3. 主輸出 = 上下拼圖(帶標籤成品在下);tagged 單圖與純水墨單圖僅作附件
  4. 標註"水墨遊記"風格名

硬約束(不可繞過)

  1. ❌ 禁止純黑白輸出——彩色必出(約 20%)
  2. ❌ 禁止彩色 > 20%(彩色喧賓奪主 = 錯誤輸出)
  3. ❌ 禁止彩色出現在背景 / 邊角(只許視覺中心)
  4. ❌ 禁止高飽和現代色 / 紫色 / 螢光 / 漸變彩虹色(只許傳統國畫色,直接點染)
  5. ❌ 禁止讓圖生圖模型生成標籤文字(必亂碼)——必須 scripts/tag.py 疊加
  6. ❌ 含人物禁止泛指詞,必須鎖定性別 / 年齡 / 關鍵外觀
  7. ❌ 禁止為留白而縮小主體——主體保持正常大小
  8. ✅ 出圖標註"水墨遊記"風格名
  9. ✅ 主輸出必須是上下拼圖(上方原圖 / 下方帶標籤成品);tagged 單圖與純水墨單圖僅作附件
  10. ✅ 產物輸出到可見目錄(如 <workspace>/outputs/photo-restyle/),不落平台隱藏目錄

錯誤處理

情況應對
沒拿到圖提示用戶先上傳照片
輸出純黑白 / 彩色太淡檢查 COLOR ACCENT 塊,強調"color REQUIRED on {focus},約 20%"
彩色溢出 / 佔比過高強調 "color only on {focus}, about 20% of the frame, keep it restrained",或縮小 {color_scheme} 描述
彩色太豔 / 現代感只寫傳統國畫色名,強調半透明直接點染
人物性別 / 年齡漂移補全 LOCKED APPEARANCE 重跑
主體被縮小 / 留白吃掉主體強調 SUBJECT SCALE:figure big, emptiness in background only
標籤亂碼 / 缺失用 scripts/tag.py 重疊加,禁止重跑圖生圖
對照圖拼接失敗 / 標籤在拼圖中看不清檢查 scripts/compare.py(預設 width 1600),或單獨交付兩張圖

輸出位置

<workspace>/outputs/photo-restyle/<YYYYMMDD-HHMM>/
├── <原圖名>-inkwash.png           # 附件:水墨圖(無標籤)
├── <原圖名>-inkwash-tagged.png    # 附件:加遊記標籤的成品圖
└── compare-<原圖名>-inkwash.png   # 主輸出:上下拼圖(上原圖 / 下帶標籤成品)

Skill 目錄結構

<平台 skills 目錄>/ink-wash-restyle/(以 WorkBuddy 為例:~/.workbuddy/skills/ink-wash-restyle/)
├── SKILL.md                  # 本檔案(規則入口)
├── styles/ink-wash.md        # 水墨 prompt 模板(含 LOCKED APPEARANCE / COLOR ACCENT / SUBJECT SCALE / XIEYI / 負面詞)
├── scripts/
│   ├── tag.py                # 標籤疊加(v6:宋體墨字 + halo + 貼 印章素材)
│   ├── compare.py            # 上下拼圖(預設 width 1600)
│   ├── seal-bake.py          # 印章摳圖工具(AI 生成素材 → 透明底)
│   └── prototype_seal.py     # 印章樣式比對除錯工具(歷史遺留)
├── assets/
│   └── seal-la.png           # 固定 朱砂印章素材(透明底,AI 生成)
└── examples/README.md        # 示例說明

版本記錄

  • v1–v5:純黑白水墨路線
  • v6(已回滾):固定臉部胭脂
  • v7:預設上下對照圖
  • v8:黑白底 + 彩色筆觸(視覺中心,自動配比 15–35%)
  • v9:彩色壓縮到 ≤15% + 遊記標籤鐵律
  • v9.1:主輸出必須是上下拼圖
  • v10:標籤"米白卡片底板"化(後被否決)
  • v11:彩色 20%;印章固定印章;標籤"宣紙簽"化(後被否決)
  • v12:標籤去卡片化(純題款路線)+ 留白 55%
  • v13:新增主體大小鐵律(留白 ≠ 縮小主體),留白回 50%
  • v14:印章豎排 + 宋體(字型方案,後被否決)
  • v15:compare 預設 width 1600(標籤縮放後仍清晰)
  • v16(當前固定版):印章改為 AI 生成真篆刻素材(assets/seal-la.png),tag.py v6 貼素材模式;全部規則收斂為本文檔所述狀態
  • v17:用戶要求"其他保持不變,標籤和落款改成右上角豎排" → tag.py v7:位置從左下改右上、正文題字豎排(上→下)、印章貼在文字列正下方(水平居中)
  • v17 筆觸修復(styles/ink-wash.md 更新):恢復"紅瓦小鎮 / 金秋蟹宴"式水墨寫意筆觸 —— ① 加回 v19 CLEANLINESS 塊(乾淨俐落、筆觸分明、不髒)② XIEYI 三要素場景化:背景(遠山/天空/大幅色塊)用 濕墨暈染(wet-on-wet ink wash,墨滲入宣紙),前景(植物葉面/屋頂瓦片/細節)用飛白枯筆。驗證:demo-058 蘭薩羅特、demo-059 白村赭石塔均穩定命中紅瓦小鎮風

相關技能