:::

練習GIMP的前景選取工具 / Practice  to GIMP Foreground Select Tool

2023-0610-152638.png

活用Stable Diffusion的進階技巧中,製作mask (翻譯做遮色片或蒙版)是必備的技巧。想要快速地選取物件主題的mask的話,GIMP的Foreground Select (前景選取)工具是你必須學習的強力工具。以下我們就來練習用GIMP的Foreground Select選取圖片中的物件吧。


原始圖片 / Original Image

00028-731997172.png

我在嘗試繪製「畫圖中」的虛擬課程助教希希。這次的目標是選取右邊的人物全身圖。

是說如果畫面上有大幅空白的區域,Stable Diffusion就會想要找個什麼東西填上去。照理來說,如果要繪製「左邊畫布、右邊人物」這種有規劃的場景,最好是搭配構圖工具Letent Couple使用。不過這次我們的重點不是在構圖上,只是要選取人物而已,左邊的畫布就先不用理會吧。

以下操作主要參考自GIMP的教學文件「Foreground Select」喔。


1. 在GIMP開啟圖片 / Open image in GIMP

2023-0610-124729.png

第一步就是先在GIMP開啟圖片。

開啟後,我們可以用「Ctrl + 滑鼠滾輪」將可見範圍縮小到整張圖片。再搭配「Space + 滑鼠左鍵拖曳」將畫布移到畫面中間。

2. 開啟前景選取工具 / Use Foreground Select

2023-0610-124805.png

接著按照以下步驟在上方的選項列找到前景選取工具:

  1. Tools 工具
  2. Selection Tools 選取工具
  3. Foreground Select 前景選取

3. 選取基本範圍 / Draw the selection scope

Peek_2023-06-10_12-37.gif

接下來的操作會跟自由選取(free select)有點像。請用滑鼠左鍵點選要選取的範圍,在人物周圍繞一個圈。選擇的時候不用選的很仔細,只要涵蓋整個人物即可。

2023-0610-124907.png

選取完成後,按下Enter。此時會出現前景選取工具的選取範圍預覽。

只有黑灰? / Only black and gray?

2023-0610-144830.png

有時候你會看到畫面變成了黑灰色,這可能是因為工具選項設定錯了。2023-0610-125035.png

請確認Tool Options裡面的Preview Mode是選擇Color,而不是Grayscale。

4. 選擇前景內容 / Extract foreground 

Peek_2023-06-10_14-50.gif

回到剛剛的3,選擇了較大的範圍並按下Enter之後,此時滑鼠的選項會變成畫筆。接下來請你在你想要選取的主體內容上畫個幾筆,讓GIMP知道你想要選取的前景大概是什麼顏色。

2023-0610-145429.png

選好後,按下Enter。此時GIMP會出現「Computing alpha of unknown pixels」的提示。這時候我們需要等一下。

2023-0610-145508.png

然後就可以看到GIMP選取的前景內容。

2023-0610-145558.png

如果你覺得帶顏色的形式看不清楚選取範圍,可以在Tool Options裡面的Preview Mode選擇Grayscale,畫面就會變成黑白模式,這樣就可以更容易看到選取範圍。

5. 修改前景內容 / Add foreground scope

2023-0610-145715.png

如果你想要修改前景內容,請在Foreground Select選項中將Preview mask取消打勾。

2023-0610-145847.png

取消打勾之後,就可以再選取其他的前景內容了。

2023-0610-150204.png

前景選取工具還能讓你指定繪製範圍是前景(Draw freground)、是背景(Draw background)或是不確定(Draw unknown)。

2023-0610-150303.png

前景是用沒有藍色的部分顯示、背景是用深藍色顯示。這樣就能選取更多前景,或是移除多餘的背景。

2023-0610-150710.png

切換Grayscale,半透明的部分表示是沒有完整選取的區塊,我們可以在這些地方補選取。

2023-0610-150857.png

反之,另一邊又選擇太多了。這裡可以指定為背景,減少選取範圍。

2023-0610-151018.png

就這樣一來一往地調整選取範圍吧。

6. 確定選取範圍 / Select

2023-0610-151051.png

如果確定好要選取的範圍了,按下Foreground select的Select按鈕即可。

2023-0610-151122.png

可以看到前景物件已經被選取起來了。

7. 建立新圖層 / Create a layer

2023-0610-151730.png

接著複製選取範圍,然後在選單列進行以下操作:

  1. Edit
  2. Paste as
  3. New Layer

2023-0610-152002.png

這樣就能夠把前景物件建立成新圖層,以便後續進行其他的影像處理操作了。


應用 / Application

00028-731997172.png

前景選擇要怎麼使用呢?以上圖來說,我想要讓畫布上出現的是其他畫作,而不是人像。這時候我們常用的做法應該是Stable Diffusion的inpaint (畫內畫)。

00000-385846770.png

inpaint是能夠讓我們選擇畫布並進行重繪。但因為畫布跟前景人物有所重疊,在Stable Diffusion Web UI裡面是很難完美地區分這兩者。

2023-0610-151445.png

你可以注意到前景人物跟畫布中間有模糊,這是inpaint的blur,非常顯眼。不開inpaint的blur會讓人覺得畫內畫的結果跟原本的畫作有明顯的界限,但開了blur又沒辦法區分前景與背景。這時候我們就要用GIMP的Foreground Select來處理。

2023-0610-152022.png

我們將inpaint的結果拉到剛剛處理的GIMP中,建立為新的圖層,放到最下層。此時最下層是inpaint的結果,中間是我們做前景選取的圖片,上層是前景選取的主體人物。

2023-0610-152146.png

隱藏中間層。

2023-0610-152205.png

此時GIMP顯示的畫面中,原本是人物的畫布已經變成了藝術畫。

2023-0610-152251.png

而且前景人物跟背景的畫布有明顯的區別。

00028-731997172_.png

將結果匯出成PNG檔案,這樣就完成囉。


文章最後我要被問的是:為什麼不要用Photoshop呢?

嗯?對一個Linux使用者來說,學習GIMP是理所當然的事情呀。鼓勵開源嘛!