你把範例裡的騎士改成自己的活動文字,畫面卻還留著人物;接著把正方形改成直式,標題又跑到奇怪的位置。這篇 MOSS-Image 模板排錯教你先查真正送進模型的內容,再把同一份資訊排成三種比例。
本文寫給第一次接觸位置框與 JSON 的創作者。你只需要會複製文字、存檔,以及一個已能正常出圖的 MOSS-Image 環境;座標練習另外需要 Python 3。先做可檢查的草稿,再回到自己的生成環境,不從下載整套模型開始。
截至 2026 年 10 月 27 日,以下對照官方使用指南、Pixel Layout 規格、編譯程式及 ComfyUI 原生節點原始碼。AlphaLab 已在本機執行三份草稿的編譯與越界檢查;本文沒有執行模型生成,版面圖都是草稿示意。你會得到一份可複製的母版、三組重排座標,以及實際出圖後的驗收方法。
先說結論:MOSS-Image 模板排錯,先找「最後一張訂單」
乾淨版型=乾淨內容+一致座標+一致畫布+出圖驗收。把工作流想成餐廳:你改了桌上的菜單,廚房收到的訂單卻可能仍是上一桌。先找到最後送出的那張單,比一直加「不要騎士」更容易定位問題。
- 先沿正向提示詞的連線回查,別只改眼前看得到的文字框。
- 編輯用的 Pixel Layout 草稿與模型用的 JSON 分開存;只讓一個工具負責轉換。
- 換比例要改每個元素的位置,並同步生成尺寸;單改寬高不是重排。
- 生成之後逐字核對,再看越界與多餘人物;編譯成功只代表格式與幾何通過檢查。
一、先認清三張紙:文字、位置框、最後輸入
JSON(結構化資料格式)可以想成有欄位的訂單。summary.caption 描述整張圖;items 放個別元素;每個元素的 caption 說外觀,bbox 說位置。文字元素另外用 text 放實際要出現在圖裡的字,別把字只寫在外觀描述。
位置框叫 bounding box,就是一個矩形範圍。依 官方 Pixel Layout 規格,草稿的 [x_min,y_min,x_max,y_max] 從左上角算像素,簡稱 xyxy。x 向右,y 向下;它像拿尺在白紙上標出左、上、右、下四條邊。
送進模型的格式則採 abs_centralized 與 yxyx:原點移到正中央,順序變成上、左、下、右。1024×1024 的中心是原本的 (512,512)。草稿框 [96,96,928,272] 轉完是 [-416,-416,-240,416];負數表示在中心上方或左側,不是錯誤。

有個容易混淆的第三種輸入:ComfyUI 原生 MOSS-Image Layout Prompt 節點接收 Create Bounding Boxes 的元素,程式把其 0–1000、yxyx 座標乘上生成尺寸後再移到中心。這是節點內部的輸入約定,與本文用實際像素寫的草稿不同。不要把原生框選資料直接貼進 Pixel Layout 編譯器。
本文選「像素草稿 → 官方編譯器 → 正向文字輸入」這一條。若你選原生框選節點,就讓該節點完成換算;不要把已轉好的模型 JSON 再當作它的元素清單。重點是每條路都要知道誰負責最後一次轉換。
二、五步清掉範例殘留,再存一份乾淨母版
①「先留底」:保存工作流副本與目前設定
怕刪錯線?先另存一份工作流,記下模型名稱/版本、是否使用 LoRA、生成寬高、seed 與採樣設定。LoRA 是另外載入的模型調整檔;這輪先保留原設定,避免一邊查內容、一邊更換畫風。先確認原範例在你的環境可以完成,再處理輸入。
②「倒查訂單」:從正向條件往上找
眼前的框不能改,就從採樣節點的 positive 輸入往回追到文字編碼節點,再沿文字輸入找來源。它可能接著一般文字節點,也可能接著 MOSS-Image Layout Prompt 或模板產生器。先看線連到哪裡,再決定改哪個欄位。不要為了刪人物去斷開模型、CLIP 或 VAE 的連線。
開啟上游的文字、每個框的描述與文字欄位,逐一搜尋 knight、騎士、盔甲,以及不屬於你活動的角色或名字。若最後輸出是 JSON,就一起看 summary.caption 和整個 items,不是只看主標題。這裡是診斷清單,不預先斷定每個模板都把騎士放在同一個節點。
③「刪整份角色描述」:文字與框一起處理
若某一項是範例角色,移除那個元素;若全圖描述仍要求「騎士站在海報中央」,也改成你的場景。刪掉框、卻把角色留在全圖描述裡,仍留下互相衝突的要求。反過來,只把主標題換成活動名稱,也沒有清掉其他元素。
用一份最小內容驗證:奶油白背景、深藍活動文字、一只橘色花器。先只保留這三類意圖。預期觀察是最後送出的文字或 JSON 已只描述這些內容;這一步完成後,再出一張圖檢查人物是否仍出現。若輸入已乾淨而圖片仍多出角色,記為生成結果的偏離,再查其他條件與模型,而不是宣稱模板已完全修好。
④「只留一個出口」:避免新舊來源同時存在
如果要改走本文的編譯器路徑,將編譯後的一行 JSON 接到實際使用的正向文字輸入,取代原模板輸出;保留備份,再停用那條舊的正向文字來源。最後回查一次:採樣器收到的正向條件,是否真的來自你剛修改的節點?不要依畫布上節點擺放的位置猜執行順序。
官方 ComfyUI 指南另分原生載入與 HF 外掛工作流,並提醒切換時要使用相應流程,不能只換載入節點就沿用全部採樣配置。本篇不混接兩套載入器;先在已能出圖的那一套流程裡處理文字路徑。若想先理解「節點串接」與「模型本身」的責任,可讀 Agent Harness 白話解說。
⑤「母版要可讀」:留草稿,不只留圖片
母版分成可編輯的 square.json 與編譯後的 square.prompt.txt。前者保留畫布、文字與像素框;後者是準備貼給模型的內容。再保存工作流副本,才能知道這份文字送到哪個節點。命名時加上用途或版次,別用同一個檔名反覆蓋掉三種比例。
三、MOSS-Image 模板排錯實作:複製這份活動草稿
以下是虛構練習活動,請將 JSON 存為 UTF-8 的 square.json。可用純文字編輯器存檔;確認副檔名不是 .json.txt。用英文寫外觀、用繁中保留可見文字,是本例的選擇,不代表必須翻譯你的活動內容。
{
"width": 1024,
"height": 1024,
"bbox_coord_space": "abs",
"bbox_format": "xyxy",
"summary": {
"caption": "A minimalist creative workshop poster, ivory background, dark navy typography and one orange ceramic vase. Clear visual hierarchy and generous negative space.",
"canvas": "single",
"meta": [
"poster"
]
},
"items": [
{
"label": "text",
"caption": "Large dark navy Chinese headline, clear bold lettering, no backing panel.",
"text": "週末創作坊",
"bbox": [
96,
96,
928,
272
]
},
{
"label": "text",
"caption": "Smaller dark navy Chinese information, three clearly separated lines, no backing panel.",
"text": "練習活動\n週六 14:00\n社區創作室",
"bbox": [
96,
336,
928,
528
]
},
{
"label": "object",
"caption": "One orange ceramic vase with a simple rounded silhouette and soft contact shadow.",
"bbox": [
288,
592,
736,
944
]
}
]
}
準備 官方 compile_prompt.py:在官方儲存庫頁面選 Code → Download ZIP,解壓後進入 MOSS-Image 資料夾,將草稿放在同一層。本例對照的 commit 是 a211e398,完整固定版本可從連結核對。編譯工具使用 Python 標準函式庫,這一步不載入權重,也不呼叫生圖服務。
python3 skills/moss-image-prompt-enhancer/scripts/compile_prompt.py square.json --output square.prompt.txt
Windows 若已安裝 Python Launcher,可把開頭換成 py。看到 Wrote square.prompt.txt 後打開結果,確認 bbox_coord_space 是 abs_centralized、bbox_format 是 yxyx,三個元素都還在,標題仍是「週末創作坊」。輸出的 JSON 會壓成一行,這是正常的。
不要再手動減一次 512,也不要再交換座標順序。編譯器已完成這兩件事。它也會把草稿中的分數邊界向外包到整數像素;本例用整數,容易逐項核算。若報 exceeds the ... canvas,回草稿修框的位置,別修改輸出硬闖過去。

接著把 square.prompt.txt 的完整內容貼到你已確認的正向文字輸入,生成尺寸設成 1024×1024。官方編譯流程明列:輸出會拿掉 width 與 height,所以尺寸不能靠這一行 JSON 傳給生成端。把草稿畫布與實際生成尺寸視為一對設定。
四、同一份文案改成橫式與直式:移動框,不拉伸成品
為什麼只改寬高會失敗?草稿用的是實際像素。把寬從 1024 改成 1536,原本 x=96 的元素仍從第 96 像素開始;編譯器不會替你重新分配留白。官方使用指南要求手動指定的寬高為正的 16 倍數。這裡用 1024×1024、1536×1024、1024×1536,三種尺寸都符合。
橫式改成左右兩區:複製為 landscape.json,設定 width:1536、height:1024。依原本三個元素的順序,把標題框改成 [96,160,864,384],資訊框改成 [96,464,864,688],花器框改成 [976,192,1440,896]。文字在左,花器在右。
直式改成上下三層:複製為 portrait.json,設定 width:1024、height:1536。標題框用 [96,128,928,384],資訊框用 [96,464,928,720],花器框用 [288,848,736,1408]。可見文字、花器外觀與全圖風格先保持相同,這輪只比較重排。

python3 skills/moss-image-prompt-enhancer/scripts/compile_prompt.py landscape.json --output landscape.prompt.txt
python3 skills/moss-image-prompt-enhancer/scripts/compile_prompt.py portrait.json --output portrait.prompt.txt
讀回時可用標題框交叉檢查:橫式應是 [-352,-672,-128,96],直式應是 [-640,-416,-384,416]。這兩個值連同正方形的值,都已在本機與官方編譯器輸出核對。每次只送對應的 prompt,並把生成端同步改成該版寬高。
這組框是起點,還要看你的文案長度。如果標題改成兩倍長,先決定是否分行,再放大文字區或縮短非必要文案。JSON 的
表示文字換行;想讓日期和地點各自移動,就拆成不同 text 元素。別為了塞入舊框而把活動資訊刪掉。
五、出圖後怎麼驗收?把「框對」與「圖對」分開
官方把 Layout prompts 標為實驗能力,也提醒文字換行可能不如預期。框提供位置描述;本篇不把它當成硬裁切邊界,也不承諾文字或物件逐像素貼齊。要知道你的模型與設定是否合格,請保留生成 PNG,再做下列檢查。
- 先逐字:放大對照「週末創作坊」「練習活動」「週六 14:00」「社區創作室」,包含冒號、數字與換行。文字多一組、少一字,都記為失敗,不只看氣氛。
- 再對位置:在圖片副本疊上草稿框;框是驗收輔助線,不要把它畫進生成提示詞。比較標題、資訊與花器是否侵入對方區域,並檢查四邊有沒有被裁掉。
- 再對內容:檢查是否仍有未要求的人物、盔甲或額外文字。若有,先讀回最後輸入;輸入乾淨才往其他條件與生成偏離排查。
- 最後留紀錄:保存草稿、編譯結果、工作流、模型/LoRA 版本、seed、尺寸與 PNG。疊框副本與原始 PNG 分開,避免下一次拿驗收線當成作品。
如果資訊區擠在一起,先把元素間距拉開、減少同一框裡的資訊密度,再重新編譯;一次只改一項,才知道改善來自哪裡。若文字必須精確、改期還要經常重用,可以讓模型負責花器或背景,把活動字交給 可編輯 HTML/SVG 海報流程。這是依交付需求選工具,而不是繼續抽到一張看似正確就結束。
要建立自己的合格標準,可借用 AI Evals 的驗收思路:先寫清楚必要字串、容許位置與失敗條件,再開始試。每次保留所有測試結果,別只存最好看的一張;你要重用的是可靠流程,不只是幸運圖片。
常見問題:八個新手容易卡住的地方
改主標題,騎士就會消失嗎?
不一定。主標題只是文字元素之一;先查全圖描述、其他元素與真正接入的正向文字來源,再看生成結果。
編譯成功,就代表成品位置正確嗎?
不代表。它驗證欄位與幾何、完成轉換;圖上的字形、人物與位置仍要另驗收。
草稿裡可以直接貼負數中心座標嗎?
本文這條編譯路徑不接受。它要求 abs/xyxy 與畫布內像素框;模型用的中心座標留在編譯結果。
ComfyUI 原生框選資料能直接當草稿嗎?
兩者格式不同。原生節點處理其 0–1000 框資料;本文編譯器接實際像素。先辨識來源,再選相應轉換。
換直式只改 height 就夠嗎?
還要重排元素。檢查每個框與閱讀順序,重新編譯,再同步生成尺寸;不要把已生成的橫圖拉長。
text 裡能寫繁體中文嗎?
可以寫入並保留。本例編譯已核對字串;這不等於模型每次都能正確畫出每個繁中字,出圖後仍逐字比對。
三種比例用同一個 seed,就能固定成品嗎?
別把它當作固定版型的保證。seed 是重跑紀錄的一部分;尺寸與配置改變後要重新驗收,也保留模型與軟體版本。
我只想改日期,要重新生整張嗎?
先看交付方式。若日期要頻繁修改,保留可編輯真文字通常更直接;若繼續讓模型畫字,就重新編譯並驗收整張圖的其他內容。
給新手的三個重點
- 先追最後輸入,再追畫面:修改的節點必須真正接入工作流。
- 草稿可讀、編譯一次:換座標交給工具,換比例由你重排。
- 格式合格、作品合格分兩關:逐字、位置、內容都要留下結果。
接著閱讀
左右滑動查看更多推薦
下一步:今天先存一份沒有騎士的母版
先完成正方形:查清文字來源、編譯草稿、確認尺寸,再生成一張並逐字檢查。通過之後才複製到橫式與直式。記住乾淨內容+一致座標+一致畫布+出圖驗收,下一次換活動文案,你就知道該動哪一張紙。想繼續建立創作工作流,可從 AI 專區挑一個相鄰練習,或到 AlphaLab 課程把這套方法接成自己的製作流程。






