專欄 · 摳出主體

第一次摳圖下載的是模型,不是照片。

你要把主體從背景裡拿出來,發給客戶或放進詳情頁。先弄清第一次下載的是什麼,再動筆刷。

摳圖會不會把照片上傳:不會

在就緒圖裡做摳出主體,計算發生在你這台瀏覽器裡。像素不進就緒圖的伺服器。這裡沒有登入,也沒有註冊,不存在一個用來收圖片的帳號。你按下開始,結果由這台裝置算出來,再由你自己下載。

所以照片不會上傳到就緒圖。你要發出去的是下載下來的那一份新檔案。原圖還在原本的資料夾裡,除非你自己把它移走、換掉或刪掉。

照片留在本機。下載的是這台裝置剛生成的一張帶透明的 PNG。

第一次用,瀏覽器會取一份模型

第一次點開這道工序,瀏覽器會從模型發布方下載一份辨識模型,放進這台裝置的快取。那份檔案是用來分辨前景和背景的,不是你的照片。計算仍然在這台裝置上跑,模型只負責認邊界。

模型下載和你手裡的圖是兩件事。下載方向是從發布方到你的瀏覽器,圖片沒有反向傳出去。所以「第一次用了網路」和「照片被上傳」不是同一句話。把辨識放在本地做,代價就是這一次下載;換來的是後面每張圖都在同一台裝置上算完,不必為了去背景先交一份原圖出去。快取裡留下的是那份模型,不是你的畫面。

會碰到網路的只有兩處

頁面打開時,這次訪問交給 51.LA 統計。統計的是有人打開了頁面,不是圖片檔案,也不會知道你放進來的是哪一張。這條邊界在檔案怎麼處理裡也寫著。

另一處就是上面那份模型。除了這兩件事,摳出主體不需要把畫面送到別處去算。整台電腦不連網這句話不成立,但圖片不上傳到就緒圖這句話站得住。

會走網路的是統計和模型。圖片檔案不在其中。

算完拿到的是透明 PNG

摳出主體的輸出固定是 PNG,因為只有 PNG 留得住透明通道。背景去掉之後,主體周圍空出來的地方是空的,不是白底。放到深色頁面或另一張圖上,邊緣才不會帶出一圈白。這種 PNG 常常比原本的 JPG 還大,因為空出來的地方也要佔位置。要發出去之前,可以走一遍體積收縮,保持原格式,透明不會被鋪成白底;別在這一步收成 JPG,那一步會把空的地方填上顏色。

這道工序只處理當前這一張。一次放 40 個檔案是別的批次工序的用法;摳圖要一張一張看邊緣,不要指望它把一批全部跑完。

邊緣不乾淨,用筆刷擦

自動認出來的邊界不會每次都準。髮絲、半透明的紗、和背景顏色接近的袖口,常會留下一點底色。這時用筆刷把殘留的背景擦掉,擦的是下載下來的那份結果。

也有算不出來的時候。頁面不會假裝成功,它會讓你改用塗抹,自己把主體圈出來。所以別人說摳圖一定乾淨的時候,你可以不信。這道工序給的是一個起點,剩下幾筆由你補。

發出去之前看三眼

  • 主體邊緣有沒有原本的底色,深色背景上最容易看出來。
  • 要留透明的地方是不是真的空了,別把白底當成透明。
  • 下載下來的是一份新檔案,原圖還在原本的資料夾裡。

還有一件事常被忽略:佇列只活在這一次打開裡。重新整理頁面或關掉分頁,還沒下載的結果就沒了。摳完先下載,再去做別的事。

順序上先後有別

先把構圖定下來再摳,通常省事。主體已經落在畫面中間,要認的範圍小,邊緣也更好檢查。摳完再改尺寸,透明不會被填掉,邊緣也不會被重新取樣弄髒。

還沒放圖的話,回到工序台把圖片丟進去,再開摳出主體。想核對檔案到底去了哪裡,翻一下檔案怎麼處理那一頁。