画像をアップロードせずに背景を削除する|WebGPUでブラウザ内処理
背景削除・トリミングコラム
未公開のイラストを、どこかのサーバーに預けたくない。
Kirinukumaでは、画像がネットワークに出る経路そのものがありません。
送っているものと動いている場所を書いておきます。
送られるのは画像ではなくモデル
背景の判定にはAIモデルを使います。
このモデルを置く場所は2通りあり、サーバーに置いて画像を送ってもらうか、モデルのほうをブラウザへ渡すかです。
Kirinukumaは後者です。
初回に約158MBのモデルファイルがブラウザへダウンロードされ、以降の処理はすべてそのパソコンの中で完結します。
画像がアップロードされることはありません。
モデルは、公開されている背景抽出モデル(BEN2・MITライセンス)を、ブラウザで動く形式のまま利用しています。
ダウンロードしたファイルはハッシュ値で検証してから読み込むので、途中で壊れたり差し替わったりしたものは弾かれます。※モデルは2回目以降キャッシュから読み込まれます。毎回158MBを落とすわけではありません。
通信が発生するところ
ページを開いてから切り抜きが終わるまでの間に、ネットワークを通るものは次のとおりです。
- ページ本体(表示に必要なファイル一式)
- AIモデルと、それをブラウザで動かすための実行環境(初回のみ)
- 広告の配信
投入した画像は、このどれにも含まれません。
処理はタブの中で完結し、結果はブラウザからファイルとして書き出す形になります。取り扱いはプライバシーポリシーに記載しています。
WebGPUが必要な理由
ブラウザの中でAIモデルを動かすには、計算を担当する仕組みが要ります。
そこで使っているのがWebGPUで、パソコンに載っているGPUをブラウザから使うための機能です。
このモデルは、推論の途中で250MB近い作業領域をひとつのまとまりとして確保します。
CPU側で肩代わりする方式では現実的に載らないため、Kirinukumaは対応環境をWebGPUに絞っています。
かかる時間はGPUの性能によって変わります。
速い環境なら1枚あたり数秒で切り抜きから余白の切り詰めまで終わりますが、そうでなければもう少しかかります。
手元でどのくらいかかるかは、サンプル画像で一度試してみるのが確実です。
引き換えになっているもの
この構成には条件が付きます。
- 初回に158MBの通信が発生する
- デスクトップ版のChromeまたはEdgeの最新版が必要
- GPU側に十分なメモリ(256MiB以上)が必要で、スマートフォンやタブレットでは動かない
動かない環境では、158MBのダウンロードが始まる前に判定して表示します。
待たされた末に動かない、という形にはならないようにしています。
条件を満たすかどうかの確認は「ご利用の環境では動作しません」と出たときにまとめました。
イラストの背景を自動削除&余白自動トリミング
Kirinukumaならブラウザ内で安全にイラストの背景を削除できます。