COMFYUI 基礎 · 第 08 課
把透明角標貼上圖片:遮罩方向與定位
把真正透明的 PNG 角標放到圖片右下角,接好 Image Composite Masked 與 Invert Mask,辨認未接遮罩、接反方向與正確合成的差異。附五節點工作流與可直接練習的素材。
開始前,準備這些
- 已有可啟動的 ComfyUI,能匯入 JSON 並選取圖片
- 理解第七課的像素尺寸;不需要生成模型
這一課,你會學會
- 把背景與透明角標接到正確輸入
- 理解 Load Image 的反向 alpha 遮罩
- 用 x、y 計算角標位置並檢查透明邊緣
本課目錄
角標原本透明,貼到圖片上卻冒出白色角落?
想把自己的小標誌放到作品右下角,明明拿的是透明 PNG,合成後卻出現方形邊角,甚至標誌變淡、該透明的地方反而留下。這時不要急著重畫標誌,先看 IMAGE、MASK 與合成節點的接法。
這課接續第七課的尺寸處理,做一張完整的作品預覽圖:512×512 背景,加上180×72透明角標,距離右邊與下邊各24像素。輸出是一張合成到背景的普通圖片,本課不處理透明貼圖匯出,也不需要生成模型。
先開啟官方合成節點說明、官方 Invert Mask 說明與Load Image 如何建立遮罩。下面的操作使用內建節點,不要求額外安裝外掛。
下載本課五節點 JSON、官方背景 JPG及原創透明角標 PNG。背景取自 ComfyUI 官方放大教學的輸入素材;角標由本站繪製。頁面上的 A/B/C 是按官方合成公式製作的 NumPy CPU 參考輸出,不是 ComfyUI 介面或 GPU 實跑截圖。

第 1 步:選對兩張圖,保留 PNG 的透明通道
在 Workflow → Open 匯入本課 JSON。畫布有兩個 Load Image(載入圖片),標題已分別註明「背景」與「角標」:背景選 official-background.jpg,角標選 corner-label.png。JSON 只帶檔名與設定,仍需在自己的環境上傳並選取素材。
背景應是512×512的人物與雲朵圖,角標應是180×72的綠色圓角標誌。下載原 PNG,不要把網頁上的預覽截圖當成角標;截圖會把檢視器的白底或棋盤格一起變成真正像素。把副檔名改成 .png 也不能讓一張 JPG 自動透明。
應該看到: 兩個 Load Image 都能選到自己的素材。角標的圓角外有 alpha=0的透明像素,文字部分較不透明,綠底帶少量透明度。不同檢視器可能以不同底色顯示透明處,光看白底預覽不能斷定有沒有透明通道。

第 2 步:先看五條線,分清背景與貼上去的圖
本課使用五個節點:兩個 Load Image、Invert Mask(反轉遮罩)、Image Composite Masked(遮罩影像合成)、Save Image(儲存圖片)。若自己建立,可在畫布空白處雙擊搜尋英文名稱;以節點類型及欄位名稱核對,不必依賴某一版中文翻譯。
- 背景 Load Image 的 IMAGE → Image Composite Masked 的 destination
- 角標 Load Image 的 IMAGE → Image Composite Masked 的 source
- 角標 Load Image 的 MASK → Invert Mask 的 mask
- Invert Mask 的 MASK → Image Composite Masked 的 mask
- Image Composite Masked 的 IMAGE → Save Image 的 images
背景的 MASK 不接。destination 是承接內容的底圖,source 是貼上去的角標;接反會以角標尺寸當畫布,不能靠調整 x、y 補救。IMAGE 和 MASK 也不是可以互換的線:一條提供顏色,一條決定採用多少來源像素。
應該看到: 三條 IMAGE 連線與兩條 MASK 連線;沒有 KSampler、checkpoint 或文字提示詞。初次先保留完整 JSON 的正確接法,完成 C 組後再做錯誤對照。
第 3 步:為什麼透明 PNG 的 MASK 要反轉?
一般 alpha 通道中,0代表完全透明,1代表完全不透明。Load Image 輸出的 MASK 是 1−alpha,所以透明角落反而接近1;這點在官方資料型別文件與程式碼中都有說明。
Image Composite Masked 則按遮罩混合:mask=1較採用 source,mask=0保留 destination,灰階值表示部分混合。因此,把角標的 MASK 直接接過去,就會偏向貼出角標外的透明區,並淡化原本應顯示的內容。經過 Invert Mask,再做一次1−mask,才回到角標原本的 alpha 方向。

不接 mask 也不是「自動保留原透明度」的保證。本課固定版本的合成流程在未提供遮罩時會使用全1遮罩,把 source 的 RGB矩形區域都放上去;我們特別在角標完全透明處保留白色RGB,讓錯誤比較容易看見。其他PNG可能出現黑邊或別的底色,白底只是可能現象,不能把所有白色圓底都歸因於這個原因。
第 4 步:算好右下角位置,再執行 C 組
Image Composite Masked 設定 x=308、y=416、resize_source=false。x、y 指的是「角標左上角」放到背景的哪個位置,不是角標右下角,也不是留白大小。
本例計算很直接:512−180−24=308;512−72−24=416。這樣角標的右邊與下邊各保留24像素。換素材尺寸後要重新計算;先用第七課確認尺寸,不沿用這兩個數字。
保持 resize_source=false,角標就按原180×72貼上。把它切成true,會把來源縮放到背景尺寸,並非「自動配成角落小標誌」。本課也先不測跨出畫布的情況,以免一次混入裁切問題。
Save Image 的 filename_prefix 為 greenbean-lesson08-overlay。另存自己的 C 組 JSON,按 Run 一次,保存輸出PNG。預期尺寸為512×512:角標在右下,圓角外能看見原背景,文字清楚,綠底可隱約透出背景。未看到輸出時,先檢查兩張來源是否真的選好、五條線是否完整。
第 5 步:只改遮罩,做 A/B/C 比較
保留 C 組,另外另存 A 與 B。三組都固定同一背景、角標、位置與 resize_source=false,不要順便改尺寸或重畫素材。
- A:不接合成節點的 mask。預期角標外的方形區域也被貼上,可能看到白色邊角
- B:角標 MASK 直接接合成 mask。繞過 Invert Mask,預期文字與綠底變淡,透明角落反而保留
- C:角標 MASK 經 Invert Mask。回到本課原始接法,預期圓角外保留背景、角標正常呈現
若不知道怎麼斷線,可先使用節點輸入端點的連線選單,確認改的是合成節點的 mask,不是 IMAGE。切換接法後另存對應 JSON,並換不同輸出前綴,避免把上一組的圖當成本組結果。

用空白觀察單記下實際尺寸、角標是否可見、圓角外是否能看到背景。沒有執行的組別保留not_run,不把這裡的參考圖當成自己的輸出。
第 6 步:換到左上角,確認你真的懂定位
另存 D 組,保持正確遮罩接法,只把 x、y 都改成24。這次角標左邊與上邊各距離畫布24像素;輸出仍應是512×512。再換成你自己有權使用的透明標誌,先查其寬高,再算位置。
檢查時看三個地方:角標文字有沒有被淡化、圓角外有沒有露出底色、原背景其餘區域是否保持原樣。本站 CPU 參考在這個固定案例中,角標矩形外的解碼後RGB像素變動數為0;這是數學參考驗證,不代表已替每個ComfyUI版本做過完整相容性測試。若另存JPG,重新壓縮本身可能改變像素值,因此本課用PNG比較。
常見問題
- 標誌像被挖空: 先查 MASK 是否經過 Invert Mask,不急著增加不透明度
- 出現白框、黑框或棋盤格: 查原PNG是否真有alpha,再查是否漏接mask;棋盤格若已是像素,反轉遮罩不會把它自動去掉
- 角標變得跟整張圖一樣大: 檢查resize_source是否誤設true
- 整張輸出變成角標尺寸: destination與source可能接反
- 找不到正確節點: 用類型ImageCompositeMasked核對;不要混用Latent Composite Masked,它接的是潛在資料
- 想輸出LINE透明貼圖: 這課把角標貼進RGB背景,所得PNG不是透明貼圖成品;還需另一套透明輸出與規格檢查流程
小練習與答案
- 背景1024×768、角標180×72,右下各留32像素,x、y各多少?812、664
- 不接mask會自動採用角標的透明度嗎?本課流程不能這樣假設,應明確接入正確方向的遮罩
- 已有「白色表示要貼上」的獨立遮罩,也一定要Invert嗎?不一定,要看遮罩原本的方向;不能照抄反轉次數
- PNG副檔名就保證透明嗎?不保證,要看是否有有效alpha通道
- 想保留角標原尺寸,resize_source選哪個?false,位置另用x、y設定
完成後,你應有自己的C組正常合成、A/B錯誤對照或觀察紀錄,以及D組左上定位練習。這套檢查方式也能用在浮水印、角落標籤與作品預覽,不必每次靠目測猜遮罩方向。
下載與來源
- 五節點工作流 · 官方背景 · 透明角標
- 觀察單CSV · 使用與授權說明 · 素材來源與SHA256 · 官方文件庫GPL-3.0授權原文 · CPU參考圖重現原始碼
- 官方完整遮罩與合成範例:供延伸學習,節點較多,不是本課五節點下載檔
- 官方Load Image實作與合成、Invert Mask實作
官方背景與包含背景的合成/對照圖依GPL-3.0提供,附原背景、角標與參考圖重現原始碼;原創角標及獨立遮罩示意單獨採CC0,不把混合背景成果一概標成CC0。使用工作流不需要執行Python原始碼。
查核日期:2026年10月10日(台灣)。官方節點文件註明部分說明由AI生成,本課另外交叉核對固定版本程式碼與官方工作流的欄位順序。CPU參考只覆蓋本課單張、相同遮罩尺寸、不縮放、位置在畫布內的案例;尚未在ComfyUI GUI匯入或執行GPU推論。