練習GIMP的前景選取工具 / Practice to GIMP Foreground Select Tool
活用Stable Diffusion的進階技巧中,製作mask (翻譯做遮色片或蒙版)是必備的技巧。想要快速地選取物件主題的mask的話,GIMP的Foreground Select (前景選取)工具是你必須學習的強力工具。以下我們就來練習用GIMP的Foreground Select選取圖片中的物件吧。
原始圖片 / Original Image
我在嘗試繪製「畫圖中」的虛擬課程助教希希。這次的目標是選取右邊的人物全身圖。
是說如果畫面上有大幅空白的區域,Stable Diffusion就會想要找個什麼東西填上去。照理來說,如果要繪製「左邊畫布、右邊人物」這種有規劃的場景,最好是搭配構圖工具Letent Couple使用。不過這次我們的重點不是在構圖上,只是要選取人物而已,左邊的畫布就先不用理會吧。
以下操作主要參考自GIMP的教學文件「Foreground Select」喔。
1. 在GIMP開啟圖片 / Open image in GIMP
第一步就是先在GIMP開啟圖片。
開啟後,我們可以用「Ctrl + 滑鼠滾輪」將可見範圍縮小到整張圖片。再搭配「Space + 滑鼠左鍵拖曳」將畫布移到畫面中間。
2. 開啟前景選取工具 / Use Foreground Select
接著按照以下步驟在上方的選項列找到前景選取工具:
- Tools 工具
- Selection Tools 選取工具
- Foreground Select 前景選取
3. 選取基本範圍 / Draw the selection scope
接下來的操作會跟自由選取(free select)有點像。請用滑鼠左鍵點選要選取的範圍,在人物周圍繞一個圈。選擇的時候不用選的很仔細,只要涵蓋整個人物即可。
選取完成後,按下Enter。此時會出現前景選取工具的選取範圍預覽。
只有黑灰? / Only black and gray?
有時候你會看到畫面變成了黑灰色,這可能是因為工具選項設定錯了。
請確認Tool Options裡面的Preview Mode是選擇Color,而不是Grayscale。
4. 選擇前景內容 / Extract foreground
回到剛剛的3,選擇了較大的範圍並按下Enter之後,此時滑鼠的選項會變成畫筆。接下來請你在你想要選取的主體內容上畫個幾筆,讓GIMP知道你想要選取的前景大概是什麼顏色。
選好後,按下Enter。此時GIMP會出現「Computing alpha of unknown pixels」的提示。這時候我們需要等一下。
然後就可以看到GIMP選取的前景內容。
如果你覺得帶顏色的形式看不清楚選取範圍,可以在Tool Options裡面的Preview Mode選擇Grayscale,畫面就會變成黑白模式,這樣就可以更容易看到選取範圍。
5. 修改前景內容 / Add foreground scope
如果你想要修改前景內容,請在Foreground Select選項中將Preview mask取消打勾。
取消打勾之後,就可以再選取其他的前景內容了。
前景選取工具還能讓你指定繪製範圍是前景(Draw freground)、是背景(Draw background)或是不確定(Draw unknown)。
前景是用沒有藍色的部分顯示、背景是用深藍色顯示。這樣就能選取更多前景,或是移除多餘的背景。
切換Grayscale,半透明的部分表示是沒有完整選取的區塊,我們可以在這些地方補選取。
反之,另一邊又選擇太多了。這裡可以指定為背景,減少選取範圍。
就這樣一來一往地調整選取範圍吧。
6. 確定選取範圍 / Select
如果確定好要選取的範圍了,按下Foreground select的Select按鈕即可。
可以看到前景物件已經被選取起來了。
7. 建立新圖層 / Create a layer
接著複製選取範圍,然後在選單列進行以下操作:
- Edit
- Paste as
- New Layer
這樣就能夠把前景物件建立成新圖層,以便後續進行其他的影像處理操作了。
應用 / Application
前景選擇要怎麼使用呢?以上圖來說,我想要讓畫布上出現的是其他畫作,而不是人像。這時候我們常用的做法應該是Stable Diffusion的inpaint (畫內畫)。
inpaint是能夠讓我們選擇畫布並進行重繪。但因為畫布跟前景人物有所重疊,在Stable Diffusion Web UI裡面是很難完美地區分這兩者。
你可以注意到前景人物跟畫布中間有模糊,這是inpaint的blur,非常顯眼。不開inpaint的blur會讓人覺得畫內畫的結果跟原本的畫作有明顯的界限,但開了blur又沒辦法區分前景與背景。這時候我們就要用GIMP的Foreground Select來處理。
我們將inpaint的結果拉到剛剛處理的GIMP中,建立為新的圖層,放到最下層。此時最下層是inpaint的結果,中間是我們做前景選取的圖片,上層是前景選取的主體人物。
隱藏中間層。
此時GIMP顯示的畫面中,原本是人物的畫布已經變成了藝術畫。
而且前景人物跟背景的畫布有明顯的區別。
將結果匯出成PNG檔案,這樣就完成囉。
文章最後我要被問的是:為什麼不要用Photoshop呢?
嗯?對一個Linux使用者來說,學習GIMP是理所當然的事情呀。鼓勵開源嘛!