藍圖風格線稿:照片框裡一個裝著冰塊的透明杯,杯子外圍是琥珀色的去背選取線,右半邊的背景已經變成透明方格

線上去背處理不好透明杯?我用 Claude 做了一個去背 Skill

朋友的手搖飲照片是透明杯,網路上的去背服務都處理不好。我用 Claude 改用開源的 BiRefNet 去背,杯緣乾淨清楚,最後做成去背 Skill 提供下載。

朋友傳來一批手搖飲料的照片,想把背景去掉,他試了網路上很多去背服務,都沒辦法好好去背。

我用 Claude 處理這批圖,中間換過一次做法,最後把整個流程做成去背 Skill,文末可以下載。

透明杯為什麼難去背

朋友的照片都是透明塑膠杯,裡面有冰塊,桌上還有散落的冰塊和裝飾花。

透明杯緣和冰塊這種半透明的東西,正是去背最難處理的地方。

Claude 向我解釋了其中一個原因:

去背模型只判斷每個像素「是不是主體」,不會算出透明度。所以透明的杯緣會被當成實心保留,做不出真正的透明感。

去背前的原圖:透明塑膠杯裝著氣泡水和冰塊,杯子旁邊散落兩顆冰塊
去背前的原圖:透明杯、冰塊,旁邊還有散落的冰塊

先找開源的去背工具

我請 Claude 找有沒有開源的去背工具可以用。

它整理了幾個選項,建議以 BiRefNet 當主力:效果好,採 MIT 授權。

另外還有 rembg,它把多種去背模型包成同一個工具,裝好就能用。

實際處理的過程

1. 先丟一張測試

我先給它一張冰紅茶的照片,這次用的是 rembg 裡的 ISNet 模型,一張不到 3 秒就完成。

原本推薦的 BiRefNet 沒跑成:Claude 的雲端環境記憶體只有約 7GB,用一般方式跑 BiRefNet 會超出記憶體,被系統中斷。

2. 一次處理 18 張

接著我把全部照片壓縮成一個檔案上傳,請它解壓縮、全部去背、再打包給我。

我也交代兩件事:每 5 分鐘回報進度,以及交件前要確認品質。結果 18 張不到 1 分鐘就跑完,還沒到第一次回報的時間。

交件前,Claude 把每張放到藍色和黑色的底上逐張檢查,修了兩個問題:

  • 桌上散落的冰塊被一起保留下來
  • 葡萄上方留了一團灰色殘影

3. 邊緣被吃掉,換一套做法

我看成品時發現杯子邊緣被消掉,因此請它處理得細膩一點。

Claude 找到另一種跑法:改用 PyTorch,搭配從 GitHub 下載的官方權重,BiRefNet 終於跑得動。

代價是速度慢很多,一張約 50 秒,18 張大約 15 分鐘,過程中它照約定每 5 分鐘回報一次。

重跑之後差別很明顯,舊版的邊緣其實是糊成一圈淡淡的光暈,看起來像被吃掉;新版的杯緣、湯匙、小米穗、花瓣邊緣都完整又銳利。

第一版(ISNet)去背的杯口特寫,杯緣邊緣糊成一圈白霧
第一張:第一版(ISNet),杯緣糊成一圈白霧
改用 BiRefNet 去背的杯口特寫,杯緣邊緣乾淨清楚
第二張:改用 BiRefNet,杯緣乾淨清楚

它另外多做了一步「邊緣去色」,清掉半透明邊緣帶到的白色背景,放在深色底上比較不會有白邊。

檢查時也修了兩類問題:

  • 散落的冰塊和花朵又被抓進來,一樣只留杯子本身
  • 氣泡水那杯,杯中一塊清澈的水被誤判成背景、挖出一個洞,已經補回來

雖然每張圖的處理時間拉長了,但這次的效果很好,朋友拿到這一版也很滿意。

4. 做成 Skill

效果滿意之後,我請 Claude 把流程做成 Skill。我特別確認了一件事:預設一定要用 BiRefNet,也就是比較慢、品質好的那一套。

現在的 Skill 每次都直接用 BiRefNet,ISNet 只當備案,只有 BiRefNet 真的失敗時才會用,而且會先說明品質會差一點。

Claude 對話畫面:15 分鐘的進度回報,精細版 18 張去背完成並說明修了哪些問題,最後我問能不能做成 Skill
精細版完成後,我請 Claude 把流程做成 Skill

這個 Skill 怎麼運作

丟一張圖或一個壓縮檔進去,它會照這個順序做:

  1. 準備圖片:解壓縮,自動略過 Mac 產生的隱藏檔,只收 jpg、png、webp。
  2. 去背:用 BiRefNet 算出主體的範圍。
  3. 後處理:只保留最大的主體(去掉散落的冰塊、花朵),補上主體內部的破洞,再做邊緣去色。
  4. 檢查品質:每張放到藍底和深色底上看,邊緣、殘影、破洞都要確認,有問題修完再看一次。
  5. 交付:只給成品。單張給透明 PNG,多張打包成一個壓縮檔,檔名後面加「_去背」。

使用前要知道的限制

  • 透明杯緣會被當成實心:放在淺色背景上最自然;放在深色背景上,杯緣看起來會像霧面塑膠(見圖)。
  • 速度比較慢:一張約 50 秒,開始前它會先說要處理幾張、大概要多久。
  • 預設只留一個主體:如果圖裡是好幾個商品並排、全部都要保留,要先跟它說,它才會跳過「只保留最大主體」這一步。
去背後的氣泡水放在淺色底上,透明杯看起來很自然
第一張:放在淺色底上很自然
同一張去背成品放在深藍色底上,透明杯緣和杯身看起來像霧面塑膠
第二張:同一張放在深色底上,杯子像霧面塑膠

怎麼使用這個去背 Skill

  1. 到〈作品集〉下載「去背」的 ZIP。
  2. 在 Claude.ai 上傳這個 Skill,步驟可以看〈Skill 是什麼?安裝、使用到轉移,一次看懂〉。
  3. 確認 Claude.ai 的「程式碼執行與檔案建立」已經開啟。
  4. 開一個新對話,上傳圖片或壓縮檔,說「幫我去背」。第一次執行會先安裝工具、下載模型,要等久一點。

如果想知道 Skill 是怎麼用對話做出來的,可以看我的上一篇〈不會寫程式也能建立 Skill:我用 Claude 做出「去人聲與轉調」〉。

參考資料