name: photo-to-illustration description: 圖片趣味化(Photo-to-Illustration)。將使用者提供的照片轉化為趣味插畫(溫馨手繪 / 日系淡雅 / Q版萌系卡通等),並輸出為 Ardot 畫布上的精緻成品。This skill should be used when the user wants to turn a photo into a hand-drawn / cartoon / illustrated version, make a "趣味化" or "插畫風" version of a picture, or restyle a selfie / family / pet / travel photo as warm cute artwork. Triggers include "把照片變成插畫", "做成卡通", "更日系一點", "Q版", "手繪風格", "親子插畫", "圖片趣味化". license: Complete terms in LICENSE.txt agent_created: true
本技能來自小蔥技能站7w4.net。
把一張真實照片,變成有風格、有溫度的插畫,並落到 Ardot 畫布上成為可直接預覽/分享的成品。 核心兩步:ImageGen 圖生圖生成插畫 + Ardot 畫布承載與裝裱。
使用者給圖 → [預設] 先用 AskUserQuestion 列出可選風格:① Q版萌系 ② 醜萌塗鴉風 ③ 兩個都要
→ 使用者挑 → 只生成所選風格(選單風格只出一張;選"都要"才雙出並排)
→ 使用者挑定稿(若雙出則回"左/右"或"①/②")
→ 選定後:[可選] create_design 建畫布 → batch_edit 建圓角畫框 → upload_images 填圖
→ [可選] 加寄語卡片 → capture_screenshot 校驗 → 交付
互動約定(使用者 2026-07-25 12:38 更新):不再預設並行雙出。收到圖後先跳風格選項讓使用者選,再按選擇生成——省算力、也不強迫使用者每輪看兩張。使用者仍可在給圖時直接說"只要Q版"/"醜萌"跳過選項;選"兩個都要"時才雙出。
/Users/khadgar/.workbuddy/clipboard-images/...)、或使用者給出的本地絕對路徑。AskUserQuestion 彈出風格選項讓使用者挑:① Q版萌系 / ② 醜萌塗鴉風(彩色塗鴉牆) / ③ 兩個都要。等使用者選了再生成對應風格:選單風格只出一張;選"兩個都要"才並行雙出並排對比。input_fidelity: "medium"。input_fidelity: "low"。size(匹配原圖比例),生成後 present_files 並排,讓使用者直接挑。用 image-to-image 把照片變成插畫,保留人物/主體辨識度:
| 引數 | 取值 | 說明 |
|---|---|---|
image |
照片本地絕對路徑 | 必須本地路徑,不支援遠端未授權圖 |
prompt |
見下方"風格提示詞" | 描述目標風格 + 保留關鍵特徵(戴眼鏡、波點裙、親子同框等) |
input_fidelity |
"medium" / "low" |
雙輸出時兩版不同:Q版萌系用 "medium"(保辨識度);醜萌塗鴉風用 "low"(給模型更大自由度去扭曲/潦草)。單風格時按該風格定。 |
size |
匹配原圖比例 | 豎圖自拍 "1024x1536",橫圖 "1536x1024",方圖 "1024x1024"。兩版必須同 size 才能並排對比 |
quality |
"high" |
|
output_dir |
當前 workspace 絕對路徑 | 便於回看 |
踩坑:日系/寫實化容易讓小孩"不可愛/失真"——直接要 Q版萌系(大頭小身+大圓眼)最穩。風格衝突時優先保"可愛"。
溫馨的手繪風格插畫,<主體動作>,柔和的暖色調(米色、淡橙色、淺粉色),水彩質感,線條柔和流暢,背景簡化為柔和暖色漸變。整體像精美繪本插圖,治癒系,溫馨可愛。日系插畫風格,<主體動作>,低飽和度、淡雅柔和的色調,以米白、淺粉、淡藍灰為主,乾淨簡潔的線條,大量留白,治癒系手賬插畫質感,背景極簡。可愛卡通插畫風格,Q版萌系畫風,二頭身至二點五頭身的可愛 chibi 比例(頭部約佔全身高度的 1/2 到 2/5,不要過頭成蘑菇頭)。<主體動作>。脖頸自然銜接,頭身過渡圓潤協調,身體不要過度壓縮成一團。大大的圓眼睛、圓潤紅潤的臉蛋、小巧可愛的小手小腳。日系治癒基調但更卡通可愛,柔和明亮的色調(奶油白、淡粉、淺黃、薄荷綠),線條圓潤乾淨,像吉卜力或輕鬆熊那種溫暖治癒又萌的畫風。背景簡潔乾淨留白。醜萌塗鴉插畫風格,友善搞笑沙雕但不惡意醜化。<主體動作>。畫風像小孩用彩色蠟筆和馬克筆在紙上隨手亂塗的兒童塗鴉牆,intentionally amateurish,like a child's drawing,messy crayon scribble。線條極度潦草歪扭、斷斷續續、完全不平滑,充滿孩子氣塗鴉感。透視明顯扭曲失衡,比例誇張失調,人物頭大身小歪七扭八、四肢隨手幾筆。臉部五官誇張處理成滑稽喜感(圓圓大眼大嘴、開心傻笑),絕無 caricature 惡意醜化。背景極其繁忙、像一面塗鴉牆:滿屏彩色亂塗線條、小星星、圓圈、閃電、小人和幾何亂線,看臺觀眾畫成簡單彩色火柴人/圓圈小人,顏色大膽斑斕(紅、黃、藍、綠、粉)。上色嚴重出界、斑駁不均、蠟筆塗出邊界、能看到明顯粗陋筆觸痕跡,整體透著敷衍潦草又溫馨歡樂的隨性感。歡樂表情包趣味畫風。不要畫得寫實,不要刻畫細膩,不要專業規整,但保持善意和可愛。friendly ugly-cute doodle, good-natured silly humor, playful and lighthearted, not mean-spirited, childlike scribble, deliberately crude, colorful scribble wall.create_design({ fileName: "xxx插畫" }) —— 整輪只調一次,隨後等待 ready(輪詢 fetch_file_info 直到成功)。fetch_file_info 拿到 fileId,後續 MCP 呼叫都帶它。batch_edit 建立(見下),圖作為 fill 填進 frame,Ardot 沒有獨立 image 節點。frame=I(document, {type:"frame", name:"插畫畫框", x:200, y:100, width:800, height:1200,
cornerRadius:24,
fills:[{type:"SOLID", color:{r:0.98,g:0.97,b:0.94}, opacity:1, visible:true, blendMode:"NORMAL"}],
strokes:[{type:"SOLID", color:{r:0.96,g:0.90,b:0.83}, opacity:1, visible:true, blendMode:"NORMAL"}],
strokeWeight:4,
effects:[{type:"DROP_SHADOW", color:{r:0.71,g:0.55,b:0.39,a:0.15}, offset:{x:0,y:8}, radius:24, visible:true, blendMode:"NORMAL", showShadowBehindNode:false, boundVariables:{}}]
})
必記的格式坑(Ardot schema 反直覺處):
- 顏色物件 只有 {r,g,b},不要帶 a 欄位;透明度寫在 fill/stroke 頂層的 opacity。
- effects 的 type 用全大寫下劃線:DROP_SHADOW / INNER_SHADOW / BACKGROUND_BLUR。
- 陰影顏色 color 才帶 a(alpha 0–1)。
- 文本字號 地板 28px(海報規範),標題/寄語勿低於此;最多 2 種字型。
upload_images({ fileId, items:[{ nodeId:"<frame的id,如 2:1>", filePath:"<Step1 生成的 png 絕對路徑>" }] })
重新生成新風格插畫後,直接再次
upload_images同一 nodeId 即可替換舊圖,無需重建畫框。
刪掉"框外獨立文本",改為在畫框內加一枚圓角小卡,讓文字成為畫面一部分:
D("<舊文本節點id>") // 先刪框外那行
card=I("2:1", {type:"frame", name:"寄語底卡", x:150, y:1020, width:500, height:120, cornerRadius:60,
fills:[{type:"SOLID", color:{r:1,g:0.98,b:0.94}, opacity:0.92, visible:true, blendMode:"NORMAL"}],
strokes:[{type:"SOLID", color:{r:0.90,g:0.83,b:0.75}, opacity:0.7, visible:true, blendMode:"NORMAL"}],
strokeWeight:2,
effects:[{type:"DROP_SHADOW", color:{r:0.6,g:0.5,b:0.4,a:0.2}, offset:{x:0,y:4}, radius:12, visible:true, blendMode:"NORMAL", showShadowBehindNode:false, boundVariables:{}}]})
ded=I("2:1", {type:"text", name:"寄語", x:150, y:1020, width:500, height:120, textAlign:"CENTER",
content:"陪你慢慢長大,是我最溫柔的時光", fontSize:30, fontWeight:500, fontFamily:"Noto Serif SC",
fills:[{type:"SOLID", color:{r:0.45,g:0.38,b:0.32}, opacity:1, visible:true, blendMode:"NORMAL"}]})
子節點座標相對畫框左上角(0,0)。卡片放底部(y≈1020/1200)避免遮臉。要去掉寄語就
D掉卡片與文本兩個節點。
capture_screenshot({ fileId, nodeIds:["2:1"], screenShotDir:".workbuddy/screenshots" })
逐張看截圖,確認:插畫可愛度達標、文字清晰不壓主體、畫框/卡片無錯位。不滿意就回 Step 1 換風格重生成,或 Step 3–5 微調裝裱。
Request body larger than maxBodyLength limit。先用 sips --resampleWidth 1600 <in> --out <out> 縮到寬 ≤1600(約 <1MB)再生成。_DSC0274_副本.JPG)解壓後,shell 的 file/sips 報 "No such file"——用 glob 找到真實路徑後 cp <中文名> ascii.jpg 複製成 ASCII 名再操作。"Polity" 涉政。prompt 把主體寫成"卡通XX角色"並加"卡通化、兒童塗鴉",弱化真實賽事/隊徽屬性即可通過。references/style_prompts.md —— 三種風格的完整提示詞與調參記錄(迭代用)。references/ardot_gotchas.md —— Ardot 屬性格式坑位速查。任何不需要的示例目錄可刪除。 本 skill 無需 scripts/ 與 assets/。
這個 Skill 質量紮實,做出來的插畫風格可愛、成品精緻好看。最大優點是把使用者反饋迭代得很到位——Q版萌系的頭身比坑、醜萌塗鴉的誇張度旋鈕都有詳細記錄,保證出圖效果好。互動設計也考慮周到,不會強迫使用者看兩張圖,選完風格再出圖更省心。不足之處是風格選項對選擇困難症使用者來說有點多,另外沒有展示實際效果圖,新使用者難以直觀判斷最終品質。整體而言,這是一個實用性強、細節到位的好 Skill。