關於這個工具
這是一個在瀏覽器裡跑的魔術橡皮擦。打開一張照片,把不想要的東西塗起來:朋友背後走過的路人、橫過天空的電線、沙灘上的垃圾桶、礙眼的招牌,然後按「擦掉」。AI 會把塗到的地方補成它猜後面原本的樣子,再跟周圍接起來。可以一處接一處連續擦,每一步都能復原、重做,拖曳分隔線就能對照原圖和結果,最後用原本的尺寸存成 JPEG 或 PNG。照片的讀取、編輯、存檔都在這個分頁裡完成,什麼都不會上傳。
怎麼做到的
模型是 LaMa(Large Mask Inpainting),由 Samsung Research 的 Suvorov 等人發表,採 Apache-2.0 授權;這個頁面用的是在 Places365 場景照片資料集上訓練的 big-lama 權重,轉成 ONNX 之後用 ONNX Runtime Web 在你的顯示卡上執行。LaMa 一次只吃 512 × 512 的圖,所以頁面不會把整張照片縮小,而是以你塗的範圍為中心,裁一塊 2.5 倍大的正方形縮到 512,讓模型看得到夠多的周圍環境。遮罩會先往外擴幾個像素,因為遮罩剛好貼著物體邊緣時,模型補得不好。結果放大回原尺寸後,只貼回擴大後的遮罩裡,邊緣再做 3 像素的羽化。羽化範圍以外的每個像素,都跟原本的照片一模一樣。
擅長什麼、不擅長什麼
AI 是在猜被擋住的地方原本長什麼樣子,它不可能真的知道。天空、牆壁、草地、沙灘、水面、雪地這類簡單的背景,通常擦完看不出痕跡;人群、文字、磁磚、欄杆、一排窗戶這種規則的圖案,常常會糊掉或重複。很大的物件(占畫面一半左右)通常擦不乾淨。塗的時候大方一點,把影子和倒影也塗進去,不然它們會留下來。一次沒擦乾淨的話,就復原後塗寬一點再擦,或是把剩下的地方再擦一次。
電腦需要什麼
第一次擦的時候,會下載一次模型(約 208 MB)和推論引擎(ONNX Runtime Web,約 26 MB,來自 jsDelivr CDN),之後都從這個瀏覽器的快取載入。接著要替你的顯示卡準備模型,在 GTX 1060 上大約一分鐘,第一次擦還要再多約半分鐘;準備好的模型在頁面開著的期間都會留著,之後每擦一次大約三秒。它只能透過 WebGPU 執行:用處理器擦一次要超過一分鐘,所以沒有 CPU 模式;瀏覽器沒有 WebGPU,或關掉了硬體加速時,頁面會直接說明原因。照片長邊最多 8192 像素、總共最多 4000 萬像素。存下來的檔案是從編輯後的畫面重新編碼,所以位置、相機型號這些 EXIF 都不會帶出去。