MOSS-Image 繁體中文圖文排版:在 ComfyUI 框出文字位置,產出社群貼文、海報與縮圖

摘要

MOSS-Image 會把 Prompt 裡指定的文字直接畫進圖裡,做社群貼文或海報時不用再另外排字。ComfyUI 的官方範本可以先在畫布上框出標題、照片和價格的位置再產圖,用繁體中文實測,框好位置的貼文、海報和縮圖字都寫對,就算換一個隨機種子重產,版面也和原本一樣。

文章目錄

MOSS-Image 是一個專精排版的生圖模型,我們能透過 ComfyUI 來使用此模型產圖,只要把想寫在圖上的字直接輸入進 Prompt,模型就會把它繪製到畫面上,做社群貼文或活動海報時就不用再另外開設計軟體排字。通常這類圖的標題、品名和價格有固定的位置,只靠 Prompt 描述的話,每次產出的版面容易有差異。ComfyUI 的 MOSS-Image 範本可讓我們先在畫布上框出每段文字和照片的位置,再照這個版面產圖。我嘗試用繁體中文來實驗生成咖啡店的新品貼文、市集活動海報和教學影片縮圖,每張的中文字品質頗高,且換一個隨機種子重產後,文字的位置也不會隨機偏移。

本文的測試環境是 Windows 11、RTX 3070 8 GB 顯示卡與 ComfyUI 0.43.2,模型用官方範本預設的 MOSS-Image 量化版本,圖裡的店家與活動都是虛構的。下面這張貼文就是框好五個位置後產出的:

米色底的直式貼文,上方是「秋季限定」,中間是窗邊木桌上的桂花拿鐵照片,下方是大字「桂花烏龍拿鐵」與一行「11/8 起每日限量 50 杯」,右下角是橘色的「NT$ 150」

準備模型與範本

MOSS-Image 由 OpenMOSS 在 2026 年 10 月公開,ComfyUI 從 0.42.0 起內建支援,還沒裝 ComfyUI 的話,可以參考 用 comfy-cli 安裝 ComfyUI 並讓 Claude Code 照範本產圖 的流程。在 ComfyUI 左側的「範本」搜尋 MOSS,會找到兩個範本:「MOSS-Image:版式控制生圖」可以在畫布上框出文字與物件的位置,「MOSS-Image:文字生圖」只用 Prompt 描述整張圖。

兩個範本用同一組模型,都可以從 Hugging Face 的 Comfy-Org/MOSS-Image 下載,放進 ComfyUI models 底下對應的資料夾:

模型 檔案 資料夾 大小
擴散模型 moss_image_sft_int8_convrot.safetensors diffusion_models 5.41 GB
文字編碼器 qwen3.5_9b_w4a8_gptq.safetensors text_encoders 7.34 GB
VAE flux2-vae_small.safetensors vae 0.25 GB

電腦上還有其他 ComfyUI 專案也要用這些模型的話,可以照 讓多個 ComfyUI 專案讀同一份模型 的做法,不必再下載一次。版式控制範本用「建立邊界框」節點畫框,這個節點的編輯器只在 Nodes 2.0 介面顯示,新的工作區預設是關的,要到「設定」的「Comfy」分頁打開「現代節點設計 (Nodes 2.0)」。

選擇圖片尺寸

兩個範本都在「解析度選擇器」節點設定圖的大小,選好「長寬比」和「百萬像素」後,節點下方會顯示實際的寬高。MOSS-Image 官方的使用指南建議總像素用 100 萬、150 萬或 200 萬,寬高要是 16 的倍數,解析度選擇器算出來的尺寸都符合。本文三種圖的設定如下:

用途 平台的規格 長寬比 百萬像素 產出尺寸
Instagram 貼文 寬 1080,長寬比 1.91:1 到 3:4 3:4 1.5 1088 × 1456
活動海報 無固定規格 2:3 1.5 1024 × 1536
YouTube 縮圖 16:9,寬度至少 640 16:9 1.5 1664 × 944

Instagram 的相片解析度說明寫明,貼文的相片會縮成寬 1080 像素,長寬比在 1.91:1 到 3:4 之間就不會被裁切。解析度選擇器沒有 4:5,直式貼文選 3:4。產出的 1088 × 1456 高度比 3:4 多一點,裁成 1086 × 1448 就剛好是 3:4。

YouTube 的自訂縮圖說明要求影片縮圖用 16:9、寬度至少 640 像素,並建議用 3840 × 2160。解析度選擇器的 16:9 在 1.5 百萬像素算出 1664 × 944,高度比 16:9 多一點,裁掉 8 個像素的高度就是 1664 × 936。

框出文字與物件的位置

打開「MOSS-Image:版式控制生圖」範本,「建立邊界框」節點有一塊畫布,在畫布上拉出的每個框就是圖上的一個區塊。文字框寫上要畫的字,物件框描述要畫的東西,模型會照框的位置產圖。

調整畫布比例

在解析度選擇器選好 3:4 後,把「建立邊界框」節點的「寬度」和「高度」也改成同樣的尺寸,畫布才會變成 3:4。這兩個欄位預設連著解析度選擇器,要先拆掉連線才能輸入:

  1. 從「建立邊界框」節點「寬度」的輸入點拖出連線,在畫布空白處放開。畫面跳出搜尋節點的視窗後按 Esc 關掉,連線就拆掉了。
  2. 「高度」照同樣的方式拆掉。
  3. 在出現的「寬度」與「高度」欄位輸入解析度選擇器顯示的尺寸,本例是寬度 1088、高度 1456。

畫布變成 3:4 後,已經畫好的框會照比例縮放。之後改了長寬比,這兩個欄位也要跟著改。

沒有拆線的話,畫布會維持 1024 × 1024 的正方形,框的位置照正方形計算,產圖時套在 1088 × 1456 的畫面上,所有的框都擠在畫面上方約七成的範圍。我在正方形畫布上框好開頭那張貼文的五個位置再產圖,左邊這張的下方多出一組沒要求的飲品照片拼貼,右邊這張的品名和日期變成亂碼:

兩張寬高仍連著解析度選擇器時產出的咖啡店貼文。左邊的品名與價格擠在畫面中段,下方多出一組沒有要求的飲品照片拼貼,右邊的品名與日期變成拆開又疊在一起的亂碼

畫框並填寫內容

按編輯器右上角的「全部清除」刪掉範本的範例框,再用滑鼠在畫布上拉出每個框。新拉出的框預設是「物件」,文字框要切換成「文字」,再在「文字」欄位輸入要畫的字。「描述」寫字的大小、顏色、字體和位置,物件框只要寫描述。描述照官方使用指南的建議用英文寫,要畫的字維持中文。咖啡店貼文的五個框是這樣填的:

框 類型 文字 描述
01 文字 秋季限定 At the top center, medium-size dark brown rounded sans-serif characters on the cream background, clearly readable
02 物件 無 A tall glass of osmanthus oolong latte with visible milk and tea layers, a few golden osmanthus petals scattered on the wooden table, soft window light
03 文字 桂花烏龍拿鐵 Large bold dark brown sans-serif product name, centered, the largest text on the post
04 文字 11/8 起每日限量 50 杯 One line of small dark brown sans-serif text centered under the product name
05 文字 NT$ 150 Price in bold amber sans-serif at the bottom right corner

接著在「MOSS-Image 版面配置提示詞」節點的「提示詞」寫整張圖的描述,本例寫的是:

1Warm autumn Instagram post for a cafe: a glass of osmanthus oolong latte on a wooden table with fallen osmanthus petals, soft morning window light, cream and amber palette, clean layout with generous margins.

同一個節點的「角色方框」預設填了 2,會把 2 號框當成人物,這張圖沒有人物,就把這個欄位清空。填好的畫面如下:

建立邊界框的寬度與高度改成手動輸入 1088 和 1456,畫布是 3:4 直式,上面有秋季限定、飲品照片、品名、供應日期與價格五個框,右邊的版面配置提示詞填好整張圖的描述

「Text to Image (MOSS-Image)」節點上的「enable_prompt_enhancer」開啟後,產圖前會先把 Prompt 擴寫成一段詳細的英文描述。這個範本預設關閉,範本裡的說明提到開啟後會改寫框的內容,維持關閉就好。畫面右下另一則說明寫著「Prompt upsampler is on」,和實際的預設不同,不用理會。按「執行」,就會產出開頭那張貼文。

產出的貼文、海報與縮圖

同一份框換兩個隨機種子產圖,字的位置、大小和顏色幾乎一樣,只有照片裡的杯子、窗景和桂花裝飾不同:

兩張框選位置產出的咖啡店貼文,秋季限定、照片、品名、供應日期與價格的位置幾乎相同,只有照片內容與裝飾不同

活動海報框了標題、日期、地點、插畫和「免費入場」標籤,兩張的字都寫對,位置也幾乎一樣:

兩張框選位置產出的手作市集海報,標題、日期、地點、插畫與底部的免費入場標籤位置相同

YouTube 縮圖框了標題(分兩行)、黃色副標和筆電三個框,兩張的字都寫對,標題和副標的位置幾乎一致,筆電的大小和角度不同:

兩張框選位置產出的 YouTube 縮圖,深藍底的左邊是白色粗體「3 分鐘看懂 ComfyUI」與黃色「新手安裝教學」,右邊是螢幕顯示節點連線的筆電

只用 Prompt 描述版面

「MOSS-Image:文字生圖」範本不用畫框,把要放進圖裡的字和位置都寫進 Prompt 就能產圖。這個範本預設開啟「enable_prompt_enhancer」,擴寫後的英文描述會保留 Prompt 裡用「」括起來的字,Prompt 直接用中文寫就可以。咖啡店貼文的 Prompt 如下:

1咖啡店的 Instagram 新品貼文,3:4 直式。上方寫「秋季限定」,中間是一杯桂花烏龍拿鐵的照片,下方大字寫品名「桂花烏龍拿鐵」,品名下面寫「11/8 起每日限量 50 杯」,右下角寫價格「NT$ 150」。暖色、溫暖的秋天氛圍,版面乾淨。

用兩個隨機種子各產一張,兩張都照 Prompt 的上下順序排好字,照片、字體和價格的位置每張不同。左邊的照片滿版,文字壓在上下兩條色帶上,品名的「拿鐵」寫成日文字形的「拿鉄」。右邊的照片縮成圓角卡片,品名正確:

兩張用 Prompt 描述版面的咖啡店貼文。左邊照片滿版,品名寫成「桂花烏龍拿鉄」,右邊照片是圓角卡片,品名「桂花烏龍拿鐵」正確,兩張的價格位置與字體都不同

活動海報的標題、日期、地點和「免費入場」兩張都寫對,插畫和標題的顏色各不相同。右邊插畫的攤位招牌多出 Prompt 沒要求的簡體「艺术」和其他亂碼:

兩張用 Prompt 描述版面的手作市集海報,標題「秋日手作市集」、日期、地點與「免費入場」都正確,右邊插畫的攤位招牌上有簡體字與亂碼

YouTube 縮圖的兩張字也都寫對,標題的排法不同。上面這張把「3」放大成跨兩行的數字,「分鐘看懂」和「ComfyUI」排在它的右邊,下面這張的「3 分鐘看懂」排成一行。兩張的筆電都有一部分被畫面右緣切掉:

兩張用 Prompt 描述版面的 YouTube 縮圖,字都正確。上面這張的「3」是跨兩行的大數字,下面這張的「3 分鐘看懂」排成一行,兩張的筆電都被右緣切掉一部分

實測紀錄

兩個範本都用預設的取樣設定(25 步、CFG 2.5、er_sde、simple),隨機種子是 20261103 和 20261104。版式控制範本預設關閉「enable_prompt_enhancer」、開啟「SLG」(Skip Layer Guidance)這項取樣設定,文字生圖範本預設開啟「enable_prompt_enhancer」,它的時間包含擴寫 Prompt 的時間。每一批的第一張要載入模型,約 130 到 160 秒,下表的時間不含這一張:

圖 做法 每張時間 文字
咖啡店貼文 框選位置 50 秒 兩張都正確
活動海報 框選位置 48 到 49 秒 兩張都正確
YouTube 縮圖 框選位置 48 到 50 秒 兩張都正確
咖啡店貼文,寬高未拆線 框選位置 49 秒 版面擠到上方,第二張的品名與日期變成亂碼
咖啡店貼文 Prompt 描述 61 秒 第一張把「拿鐵」寫成「拿鉄」,第二張正確
活動海報 Prompt 描述 61 到 67 秒 主要文字都正確,第二張的攤位招牌有簡體字與亂碼
YouTube 縮圖 Prompt 描述 58 秒 兩張都正確

產出上表的圖時,整張顯示卡的記憶體用量最高 7.3 到 7.8 GB,閒置時桌面本身就佔用約 1.2 GB。系統記憶體是在 1024 × 1024 的測試裡量的,產圖時比 ComfyUI 剛啟動完成時多用約 12 GB,開啟「enable_prompt_enhancer」時多用約 14.5 GB。

總結

MOSS-Image 能把繁體中文的標題、品名、日期和價格直接畫進社群貼文、活動海報與 YouTube 縮圖,在版式控制範本框好位置的六張圖字都寫對,換隨機種子重產時版面幾乎一樣。框選前要把「建立邊界框」的寬高拆線改成圖片尺寸,沒改的話框只會佔到畫面上方約七成。只用 Prompt 描述版面時,每次的構圖和字體不同,也出現過日文字形的「鉄」和插畫裡多出的簡體字。

接著可以做什麼

下一篇ComfyUI 共用模型:讓多個 ComfyUI 專案讀同一份模型,避免重複下載佔用空間AI
Ted Liou

Ted Liou

Unity 現役工程師,Unity、AI 技術開發經驗分享與諮詢。