AI 工具 13 min read

AI 生圖角色不跑掉:把 52 張封面的吉祥物整理成一張角色設定圖

角色設定圖(character sheet)是把角色的轉面、表情、動作、色票和禁止清單畫在同一張的參考圖,生圖時附上,模型就照圖畫。我盤點部落格 52 張封面,吉祥物有 1 張畫成別的角色、三張封面量到三種圍巾黃——原因是提示詞只固定兩個特徵,所以我改成每次附設定圖生封面。

AI 生圖角色不跑掉:把 52 張封面的吉祥物整理成一張角色設定圖
本文目錄 · 7
懶人包
  • 我盤點部落格 52 張封面:45 張有白髮黃圍巾的吉祥物,1 張畫成另一個角色,還有幾張換了衣服。圍巾黃在三張封面上量到三個不同色碼。
  • 原因在封面提示詞:吉祥物那段只寫了「白髮」和「芥末黃針織圍巾」兩個特徵,比例、衣服、鞋子都交給模型自由發揮。
  • 角色設定圖(character sheet)把角色畫成一張固定的參考圖:四視圖、六種表情、四個動作、色票、禁止清單。生圖時把它當參考圖附上,模型照圖畫。
  • 我用 Codex CLI 拿 3 張現有封面當參考生出設定圖,裁切放大檢查手臂和圍巾結構,再用 Python 加標註與從像素量出來的色票。
  • 設定圖和固定提示詞放進 repo 的 docs/mascot.md,封面流程改成每次 codex exec -i 附上設定圖。這篇的封面就是照新流程生的。

部落格每篇文章的封面都是 AI 生的手繪風圖,裡面有一個白髮、圍黃圍巾的 Q 版小人。他沒有名字,但已經出現在 45 張封面上。我想讓他以後不管誰來生封面、用哪個模型,都長同一個樣子,所以替他做了一張角色設定圖。這篇整理設定圖是什麼、為什麼能讓 AI 生的角色不跑掉,以及我怎麼從現有封面做出這一張。

yanchen.app 部落格吉祥物的角色設定圖:四視圖、六種表情、四個動作、色票與固定規則

🧭 角色設定圖是什麼?

角色設定圖(character sheet,動畫業叫 model sheet)是把一個角色的外觀規格畫在同一張紙上的參考圖。Wikipedia 的 Model sheet 條目寫明它的用途:讓多位畫師畫同一個角色時,比例、外觀和姿勢保持一致。合乎設定圖的畫面叫 on-model,偏掉的叫 off-model。

一張設定圖通常包含這幾塊:

區塊內容解決什麼
轉面圖(turnaround)正面、3/4 側、側面、背面,並排同一條地平線不同角度下比例和造型一致
表情集同一張臉的多種情緒換表情時臉型不變
動作姿勢角色常做的幾個動作手腳怎麼接、拿東西怎麼握
色票每個部位的色碼顏色不隨每次生成飄移
服裝細節與禁止清單固定穿什麼、絕對不畫什麼擋掉最常出現的偏差
個性定位角色是誰、會怎麼動決定構圖裡角色的角色
給人看的設定圖會加文字標註;給 AI 當參考圖時,乾淨無字的版本比較好用,模型不會把標註字也畫進圖裡。我的做法是兩張都留:無字的 character-sheet-raw.png 餵模型,加標註的 character-sheet.png 給人查。

🔍 我的部落格吉祥物跑掉了多少?

動手之前,我先把 public/images/blog/*/cover.png 全部拼成一張縮圖總表逐張看。

分類張數說明
有吉祥物45白髮、黃圍巾的手繪 Q 版小人
沒有角色6早期 OG 圖、純文字或 UI 風封面
畫成另一個角色1rtx-4070-wan22-i2v-loop:正常比例動漫少年、棕色圍巾
合計522026-10-25 盤點
45 張裡面,大部分是米白毛衣、炭灰褲、深棕短靴,但也有穿深色外套的(whisper-cpp-vs-whisperx)和淡黃上衣的(prompt-injection-defense-four-walls)。圍巾顏色我從三張封面取樣,量到 #E3B22C、#D3A738、#F2BD38,三張三個黃。 四張封面對照:多數封面的吉祥物、畫成正常比例動漫少年的封面、穿深色外套的封面、穿淡黃上衣的封面

那張畫錯的 RTX 4070 封面,角色其實是首頁大頭照那一套(public/images/character/):正常比例、棕色圍巾、星星 T 恤。網站上本來就有兩個長得不一樣的角色,模型拿哪個當參考,就畫成哪個。

🧩 為什麼光靠提示詞鎖不住角色?

封面 prompt 由 blog-create skill 的 cover-base-prompt.txt 產生。改版前,吉祥物那段原文是:

Mascot (KEEP FIXED every time): include one small chibi character drawn in the same
hand-drawn ink line style — messy white / silver hair and a mustard-yellow knitted
scarf.

被固定的只有「白髮」和「芥末黃針織圍巾」兩項。頭身比、衣服、褲子、鞋子沒寫,每次都由模型自己補,補出來的就是上面那幾種穿搭。

文字再寫細也有上限。每次生圖都是一次獨立的請求,模型看不到上一張畫了什麼;同一句「cream sweater」每次會落在不同的米白上。iThome 鐵人賽一篇替 20 個角色做三視圖的紀錄也是這樣收斂的:純文字描述做不出一致的角色,改附參考圖才穩定。我的分工是:參考圖固定角色,提示詞描述場景。

各家生圖工具都有「附參考圖」的入口:

工具參考圖機制文件寫明的重點
Midjourney V7--oref <圖片網址> Omni Reference--ow 調參考權重,範圍 0–1000、預設 100;一次只能放一張;取代 V6 的 --cref(官方文件)
OpenAI 圖片編輯 API上傳參考圖做 edits官方 Ruby SDK 文件:input_fidelity 設 high 更貼近輸入圖的臉與細節,預設 low,適用 gpt-image-1 系列
Gemini 2.5 Flash Image參考圖加提示詞Google codelab 的流程是先把角色抽成一張參考圖,之後每張都附上(codelab)
Codex CLIcodex exec -i <檔案>我這次實際使用的方式,見下一節
設定圖的價值就在這裡:它是一張能直接塞進這些入口的參考圖,一張就涵蓋所有角度、表情和動作。

🛠️ 我怎麼從現有封面做出設定圖?

1. 先定特徵:從 45 張封面取多數

我不重新設計角色,只把 45 張封面裡多數一致的特徵寫下來:

部位規格
比例約 2.5 頭身
頭髮蓬亂白/銀髮,頭頂翹一兩撮
臉實心黑豆眼帶反光點、兩頰腮紅、小嘴
圍巾芥末黃粗針織,繞脖子一圈,一端垂胸前,兩端短流蘇
衣褲鞋寬鬆米白毛衣、炭灰褲管反摺、深棕綁帶短靴
個性好奇、愛動手的工程學徒,在封面裡一定在跟主題互動
深色外套、淡黃上衣、正常比例動漫少年都進「不可以」清單。首頁大頭照那套留在首頁,封面不拿它當參考。

2. 用 Codex CLI 生無字設定圖

我挑了 3 張角色最清楚的封面(omniroute、write-swift、whisper-cpp-local)當參考圖,請 Codex 畫一張 16:9 的設定圖:左上四視圖、右上 3×2 表情、下排 4 個動作,全圖不寫字。

codex exec --sandbox workspace-write --skip-git-repo-check -C <工作目錄> \
  -i ref1.png -i ref2.png -i ref3.png - < sheet-prompt.txt

這裡有兩件事要知道。Codex CLI(我用 0.163.0)生的圖會落在 ~/.codex/generated_images/<thread>/exec-*.png,不在 prompt 指定的路徑;我在執行前後數一次該目錄的子資料夾,從 155 變 156,新多出來那一個就是這次的圖。輸出尺寸是 1672×941。

3. 裁切放大檢查結構

AI 畫小人最容易錯的是手腳怎麼接。我們的封面檢查清單本來就有兩條:手臂要從肩膀長出來、圍巾是布不能變成手臂。設定圖要給以後每張封面當標準,所以這兩條在設定圖上更不能錯。

我把轉面圖和動作列各裁一張放大看:

  • 每隻手臂都從肩膀接出,接一隻手。
  • 圍巾只在脖子上,指方向、推拉桿的動作裡圍巾往後飄,沒有跟手臂黏在一起。
  • 放大鏡、拉桿、箱子都有手握住。
唯一跟我原本寫的規格不同的是:側面那格露了一點耳朵。我判斷這是合理的畫法,直接把規格改成「正面耳朵被頭髮蓋住,側面露一點耳朵」,讓文件跟圖一致。

4. 加標註與色票

無字原圖保留給模型,再用 Python(Pillow)組一張給人看的版本:上方標題、每格下方標籤、底部色票和固定規則。

色碼不是我目測填的。我在原圖上框出圍巾、毛衣、褲子、靴子各自的區域,取像素中位數:

部位色碼
圍巾#FAC32A
毛衣#F2EBDC
褲子#352E29
短靴#483526
線條 #0A0A0A、紙底 #FAFAF7 和封面強調色 #F5D547 沿用封面風格殼原本的值。圍巾黃和封面強調色是兩個顏色,規格裡分開寫。

標註時踩到一個小坑:微軟正黑體沒有 ✓、✕ 這兩個符號,畫出來是方框。最後改成用 Pillow 直接畫圓圈和叉叉。

🔗 設定圖怎麼接進每次生封面的流程?

設定圖要真的被用到,才能讓角色不跑掉。我改了三個地方:

位置改了什麼
docs/mascot.md(blog repo)固定特徵、色票、個性、不可以清單、英文固定提示詞、使用步驟
public/images/mascot/character-sheet-raw.png(餵模型)和 character-sheet.png(給人看)
blog-create skillcover-base-prompt.txt 的吉祥物段落換成完整規格;references/visuals.md 規定每次生封面附上設定圖
現在生封面的指令長這樣:
~/.claude/skills/blog-create/gen-cover.sh --print "<這篇的主題場景>" > cover-prompt.txt
codex exec --sandbox workspace-write --skip-git-repo-check -C <文章資料夾> \
  -i public/images/mascot/character-sheet-raw.png - < cover-prompt.txt

文字提示詞和參考圖各管一件事:提示詞寫這篇的主題場景,參考圖固定角色長相。

這篇文章的封面就是照這個流程生的:只附一張設定圖、提示詞只換主題場景,Codex 一次就生出比例、毛衣、褲管反摺和短靴都對得上的吉祥物。我照樣裁切放大檢查:釘圖釘的那隻小人兩隻手都從肩膀接出,圍巾往後飄、沒有黏到手臂上。

⚠️ 限制與還沒決定的事

  • 參考圖降低偏差,不保證零偏差。模型仍可能畫錯手或換衣服,裁切放大檢查這一步不能省。
  • 設定圖本身是 AI 生的。它的品質決定以後所有封面的上限,所以我只接受結構檢查全過的版本。
  • 舊封面沒有重畫。那張 RTX 4070 封面還是正常比例的角色;要不要重生是另一個決定。
  • 兩個角色要不要合併。首頁大頭照和封面吉祥物目前是兩套設計,設定圖只管封面這一套。
  • 還沒有名字。設定圖上寫「部落格吉祥物」,名字之後再補。

✅ 自己做一張的檢查清單

如果你也有一個反覆出現的 AI 角色,可以照這個順序做:

  1. 把現有圖全部拼成一張總表,數清楚哪些一致、哪些跑掉。
  2. 從多數一致的圖抽特徵,寫成表格;跑掉的寫進「不可以」。
  3. 挑 2–3 張最清楚的圖當參考,生一張無字的設定圖:四視圖、表情、動作。
  4. 裁切放大檢查手、腳、配件的結構,不合格就重生。
  5. 從設定圖的像素量色碼,加標註做成給人看的版本。
  6. 把設定圖路徑和固定提示詞寫進你的生圖流程,每次都附參考圖。
想看部落格其他 AI 生圖的實作,可以接著讀 Hugging Face FLUX.1 schnell 免費批次生圖。
author
陳
陳彥彤

AI 工程師 · AI 顧問。Java 後端 8 年、AI 工程師 2 年。AI 內訓 · AI 導入顧問 · 前後端與雲端培訓。

support

覺得文章有用可以到 GitHub 給個 star,或是透過信箱聊聊 AI 內訓、AI 導入顧問或前後端 / 雲端培訓。

related

相關文章

[AI 工具] · 14min
AI 角色設定表提示詞實測:服裝靠文字就鎖得住,臉要附設定表才不跑
角色設定表是把四視圖、八種表情、六種姿勢、服裝特寫和色票放在同一張的參考圖,傑森所長在 IG 推薦先做一張再生圖。我自己寫提示詞用 Codex 實測 A/B——服裝靠詳細文字就全對,臉只有附設定表那張沒換人,提示詞已做成免登入產生器。
[AI 工具] · 18min
寫實 AI 萌寵影片怎麼做?codex CLI 生 3 張角色一致的圖,ffmpeg 合成 18 秒下班 Shorts
看到 IG 上 15K 讚的「小斗下班啦」,我做了一支原創版:打領帶的橘貓阿橘下班等超商便當十點打折,用 codex CLI 生 3 張寫實關鍵格、edge-tts 配 4 句音、ffmpeg 合成 18 秒 1080×1920 Shorts。帶 -i 參考圖的那張,臉、毛色和店內場景都跟第 1 鏡接得上,只用文字描述的只鎖得住領帶和識別證——但畫面是靜圖推軌,貓還不會動。
[AI 工具] · 11min
AI 手繪動畫怎麼做?拆解 3,583 萬觀看《Englishman in New York》:同一個主角、同一把傘、13 鏡
antrofrog_ 在 2026-10-30 發到 X 的 47 秒 AI 手繪動畫《Englishman in New York》,不到四天累積 3,583 萬觀看,全片就是同一個黑衣主角用一把傘做 13 件小善舉。我用 ffmpeg 拆片,13 鏡裡有 7 鏡約 4 秒、切點不對齊音樂——剪輯跟著生成長度走,固定造型只換場景是它穩住角色的方法,我也把這套結構做成免費的分鏡規劃器。