背景除去AIは、もはやSaaSだけのものではなくなりつつある。
今回、OSS背景除去AI「withoutbg」とFFmpegを組み合わせ、ローカル環境だけでEC商品画像パイプラインを構築してみた。128枚の画像を約6分で処理し、さらにGPT Images 2.0で広告ビジュアル化まで試してみると、想像以上に“未来感”のある結果になった。
背景除去AIは「SaaSの専売特許」ではなくなりつつある
EC運営、ハンドメイド販売、フリマ出品、SNS広告。
商品画像を扱う現場では、背景除去はもはや日常作業だ。
白背景の商品画像を作る。
バナー用に切り抜く。
広告背景に合成する。
サムネイル用に並べる。
一枚だけならまだいい。
だが、数十枚、数百枚となると、途端に「地味に重い作業」へ変わる。
これまで、この分野は remove.bg のようなSaaS系サービスが非常に強かった。

精度も高く、UIも簡単。
「画像を投げれば抜ける」という体験は確かに優秀だった。
しかし最近、OSS側の進化速度がかなり速い。
今回試したのは、OSS背景除去AI「withoutbg」。
これを使い、さらに FFmpeg と組み合わせて、
- 商品画像生成
- 背景除去
- 背景合成
- EC向けビジュアル化
までをローカル環境のみで自動化してみた。
結果から言うと、かなり面白かった。
今回の検証では、Stable Diffusion で生成した 1024×1024px の画像を128枚処理し、
- 背景除去
- 透過PNG化
- 背景合成
まで含めて約372秒。
つまり、1枚あたり約3秒で処理が完了した。
---- done ----
total: 128
ok: 128
ng: 0
time: 372.8 sec
※RTX3060 12GB / Core i7 8700 / Mem 32GB 環境にて
もちろん万能ではない。
人物混在、細いストラップ、画面いっぱいの構図など、苦手条件もはっきり存在する。
だが逆に言えば、
「商品画像を超高速で素材化する」
という用途では、すでに十分実用的なレベルに到達しているように感じた。
withoutbgを導入してみる ─ uvだけで動く
今回使用したのは、OSS背景除去AI「withoutbg」。

Python製のCLIツールで、ローカル環境で背景除去を実行できる。
GitHub上では「高品質な背景除去」を謳っており、特に髪の毛や細部の自然さを売りにしているようだ。
導入自体は非常に簡単だった。
今回は uv を使用した。
まず適当な作業ディレクトリを作成。
mkdir withoutbg
cd withoutbg
その後、uvプロジェクトを初期化。
uv init
ここで少しハマった。
ディレクトリ名を withoutbg にしていたため、
Requirement name `withoutbg` matches project name `withoutbg`
というエラーが発生した。
要するに、
「プロジェクト名」と「導入するパッケージ名」が同じで衝突していた。
これはディレクトリ名を変更するだけで解決した。
その後は普通に導入できる。
uv add withoutbg
初回実行時には、ONNXモデルが自動ダウンロードされる。
uv run withoutbg model.jpg -o model.png
実際に試してみると、かなり高速だった。
1024×1024程度の画像なら、2秒程度で透過PNGが生成される。
しかも、単なる「白背景切り抜き」ではなく、ある程度自然な境界を残してくれる。
もちろん完璧ではない。
例えば、
- 人物と商品が重なっている
- 背景とのコントラストが低い
- 細いベルトや鎖
- 画面いっぱいの寄り構図
などでは誤判定も起きる。
ただ、ここで重要なのは、
「Photoshop職人の完全代替」
ではなく、
「大量画像を高速で素材化できるか」
という視点だ。
その観点では、かなり実用的に感じた。

FFmpegでEC画像を一括合成 ─ “商品画像工場”ができてしまった
背景除去だけでは、まだ「素材」に過ぎない。
今回面白かったのは、その先だった。
withoutbgで透過PNG化した画像を、FFmpegで共通背景へ自動合成してみたところ、想像以上に“EC商品っぽい”絵が大量生成できてしまった。
今回の構成はかなりシンプルだ。
商品画像生成
↓
withoutbgで背景除去
↓
透過PNG化
↓
FFmpegで背景合成
↓
EC風ビジュアル出力
最終的には、1024×1024の画像をそのまま Dot by Dot で重ねている。
最初は、
- 自動リサイズ
- 床への接地調整
- 影追加
- 位置補正
なども考えた。
しかし実際には、そこまで複雑にしないほうがうまくいった。
今回うまくハマったのは、
「背景側を“広告向け”に設計する」
という考え方だった。
例えば、
- 強い床ラインを消す
- 背景をボカす
- 暖色照明にする
- 情報量を減らす
こうすると、多少浮いていても違和感が減る。
特に、高級ホテル風のボケ背景は非常に相性が良かった。
逆に、
- 大理石テーブル
- 明確な床面
- 幾何学背景
- 強い遠近感
などは、少しのズレでも合成感が出やすい。
つまり、
「背景除去精度」だけではなく、
「合成前提の背景設計」
そのものが重要だった。
実際のFFmpeg側は非常にシンプルだった。
subprocess.run(
[
"ffmpeg", "-y",
"-i", str(BG_IMAGE),
"-i", str(cutout),
"-filter_complex",
"[0:v][1:v]overlay=0:0",
str(final)
],
check=True
)
背景画像と透過PNGを、そのまま重ねるだけ。
1024×1024で統一していたため、余計なスケーリングも不要だった。
結果として、
「バッグ画像128枚 → EC風ビジュアル化」
まで含めて、約372秒。
1枚あたり約3秒で、
- 背景除去
- PNG化
- 背景合成
まで完了した。
ここまで来ると、もはや“画像加工”というより、
「商品画像パイプライン」
に近い感覚だった。
透過前のオリジナル画像

withoutbg で透過処理後の画像

少々テコ入れが必要なところもあるが、コマンド1発の成果としては上々。
実際に128枚を処理してみた ─ 速さこそ最大の価値
今回の検証では、Stable Diffusion系の環境でハンドバッグ画像を128枚生成し、それをまとめて処理した。
元画像は、あえてかなり雑に用意している。
プロンプトはシンプルに、
luxury french leather handbag
程度。
つまり、厳密にEC商品画像として整えた素材ではない。
そのため、生成結果にはかなりバラつきがあった。
- 正面に置かれたバッグ
- 斜めアングルのバッグ
- 画面からはみ出したバッグ
- 人物が一緒に写り込んだ画像
- ベルトや金具が細かい画像
- 背景と商品の境界が曖昧な画像
こうした画像を、そのまま withoutbg に投げている。
結果は、128枚すべて処理成功。
total: 128
ok: 128
ng: 0
time: 372.8 sec
処理時間は約6分13秒。
1枚あたり約2.9秒で、背景除去と合成まで完了した。
ここで重要なのは、品質が常に完璧だったという話ではない。
むしろ、事故は普通に起きる。
だが、128枚をまとめて投げて、数分後には比較用の出力画像が並ぶ。
この速度感が強い。
従来なら、1枚ずつ確認しながらPhotoshopで切り抜き、背景に合わせ、保存する作業になる。
それが、ローカル環境で一気に終わる。
もちろん最終的には人間のチェックが必要だ。
しかし、人間がやる作業は「切り抜く」ではなく、
「使える画像を選ぶ」
に変わる。
この差はかなり大きい。
AI画像生成でも、背景除去でも、今後の実務では同じことが起きると思う。
1枚を職人のように仕上げるのではなく、100枚作って、良いものを選ぶ。
今回の withoutbg + FFmpeg のパイプラインは、その方向性に非常に合っていた。



もちろん、事故も普通に起きる ─ 万能ではない
もちろん、withoutbgは万能ではない。
今回の検証でも、いくつか典型的な事故パターンが見えた。
まず分かりやすかったのが、人物が写り込んでいるケース。

バッグ単体ではなく、
- モデルが持っている
- 腕に掛けている
- 身体に重なっている
ような画像では、AIが「どこまでを商品として扱うか」に迷いやすい。
特に、バッグと服の色が近い場合や、ベルトが身体に重なっている場合は、境界が崩れやすかった。
また、画面いっぱいの寄り構図も苦手だった。

例えば、
- バッグが画面からはみ出している
- 持ち手が切れている
- 極端なクローズアップ
などでは、
「これが主役の商品なのか」
「背景なのか」
をAIが誤認しやすい。
特に細いストラップやチェーンは顕著で、背景とのコントラストが弱い場合、そのまま透けてしまうケースもあった。
この手の厄介な背景抜きを、remove.bg でも試したところ、金属チェーン部分を含めて見事に抜いていた。そこは、SaaSの面目躍如。


ただし、Freeで使える範囲でのアウトプットは500×500のお試し解像度まで。
業務のワークフローにのせるためには、ある程度の出費の覚悟が必要だ。
普通の条件ならば、withoutbgもいい仕事をするが、ここぞの1枚はSaaSに頼ることも考えた方がいいだろう。
さらに、全体的な傾向として合成後に色の鮮やかさが少し落ちる傾向も感じた。

これは今回のワークフロー特有というより、
- PNG化
- 合成
- 圧縮
- 背景馴染ませ
などを経由することで、全体のコントラストが少し柔らかくなるためだと思われる。
ただ、ここで重要なのは、
「完璧な切り抜き職人ツール」
として見るか、
「大量素材を高速生成するパイプライン」
として見るか、という視点の違いだ。
今回の検証では、後者としての価値が非常に大きかった。
多少事故が混ざっても、100枚単位で一気に処理し、その中から使えるものを選べばいい。
しかも処理時間は数分。
これは、従来の手作業切り抜きとはかなり発想が違う。
実際、背景除去AIの価値は、
「100%完璧に抜けること」
より、
「大量画像を一瞬で素材化できること」
へ移りつつあるように感じた。
GPT Images 2.0 を使えば、広告写真も一発生成
ここまでは、
- Stable Diffusion系で商品画像を生成
- withoutbgで背景除去
- FFmpegで背景合成
という、比較的“従来延長線上”の話だった。
つまり、
「画像を加工する」
世界だ。
しかし途中で、ふと思った。
「そもそも、背景を切り抜いて貼る必要すら無いのでは?」
試しに、生成したバッグ画像をそのまま GPT Images 2.0 に渡し、
このバッグのデザイン、色、質感を参考に、
日本人女性モデルが高級ホテルのロビーで持っている
広告写真にしてください。
という方向で試してみた。
結果は、正直かなり衝撃的だった。
単なる「合成」ではなく、
- ライティング
- 被写界深度
- モデルとの馴染み
- 高級ホテルの空気感
- EC広告っぽい構図
まで含めて、“広告写真そのもの”として再構築されていた。
商品画像

GPT Images 2.0 で生成した広告写真

しかも、バッグ自体の特徴もかなり保持されている。
- フラップ形状
- 金具
- ハンドル
- 配色
- 全体シルエット
などは、元画像の雰囲気を強く残していた。
ここで気付かされたのは、
withoutbg と GPT Images 2.0 は、そもそも役割が違うということだった。
withoutbg は、
「商品を素材化する道具」
だ。
大量処理、PNG化、背景除去、自動化。
つまり、EC画像パイプライン向き。
一方、GPT Images 2.0 は、
「広告ビジュアルを生成する道具」
に近い。
背景を抜いて貼るというより、
「この商品を、どういう世界観で見せるか」
を理解して再構築している。
もちろん、商品写真としての厳密性は別問題だ。
Amazonの商品3面図のような用途では、実物写真が必要になる。
しかし、
- ブランドイメージ
- LP
- SNS広告
- キービジュアル
- シチュエーション提案
のような用途では、
「商品の存在感と空気感」
のほうが重要になる。
そして、その領域では、GPT Images 2.0 の強さはかなり異質だった。
withoutbg の記事を書くつもりだったのに、途中から「広告制作の未来」の話になってしまった理由は、多分ここにある。
「撮影」から「レンダリング」へ ─ 商品画像制作そのものが変わり始めている
今回の検証を通して、一番印象的だったのはここだった。
もはや、
「商品を撮影している」
というより、
「商品をレンダリングしている」
感覚に近い。
もちろん、実物写真そのものが不要になるわけではない。
例えば、
- Amazonの商品画像
- 実寸説明
- ディテール確認
- 素材感の厳密表現
- 3面図
- 色確認
のような用途では、実写の信頼性は依然として重要だ。
実物と違えば普通に揉める。
しかし一方で、
- LP
- SNS広告
- ブランドイメージ
- 「こういう場面で使う」提案
- 雰囲気訴求
のような用途では、求められているものが少し違う。
そこでは、
「このバッグを持つと、どういう世界観になるのか」
が重要になる。
つまり、
「シチリア島のホテル」
「都会のラウンジ」
「高級感のある夜景」
「北欧風の部屋」
といった“シチュエーション”の提示だ。
そして、その用途では、
- 背景除去AI
- FFmpeg
- GPT Images 2.0
の組み合わせが、かなり強力だった。
特に面白かったのは、役割分担が自然に生まれたことだ。
withoutbg は、
「商品を素材化する」
方向。
大量処理、透過PNG、自動化。
一方、GPT Images 2.0 は、
「商品を広告へ変換する」
方向。
つまり、
- 商品写真
- 広告写真
- イメージビジュアル
の境界線が、かなり曖昧になり始めている。
今回の検証では、128枚の画像を数分で処理できた。
しかもローカル環境だけで。
数年前なら、
- 撮影スタジオ
- モデル
- レタッチ
- デザイナー
- 外部サービス
が必要だった領域が、今はGPU一台でもかなり近いところまで来ている。
もちろん、まだ粗もある。
事故も起きる。
だが、方向性としては十分に見えてきた。
背景除去AIの価値は、「綺麗に抜けること」だけではない。
「商品画像を超高速で素材化し、次の工程へ流し込めること」
そこに、本当のインパクトがあるように感じた。
こういうツール、欲しい人は結構いるのかもしれない
今回の検証では、
- Stable Diffusion系で商品画像生成
- withoutbgで背景除去
- FFmpegで背景合成
- HTMLギャラリー生成
までを、ほぼローカル環境だけで回してみた。
かなり荒削りな検証だったが、それでも「商品画像を素材化する」パイプラインとしては十分実用的に感じた。
特に、
- 指定フォルダを一括処理したい
- 商品画像を大量に整形したい
- SNS投稿用の画像をまとめて作りたい
- BASEやShopify用の画像を高速生成したい
といった用途では、かなり相性が良さそうだ。
今回のコードは、あくまで検証用の簡易構成であり、UIも無い。
ただ、
- フォルダ監視
- ドラッグ&ドロップ
- 背景テンプレ切り替え
- HTMLギャラリー自動生成
- WebP最適化
- Shopify向けサイズ出力
あたりまで組み込めば、普通に「商品画像パイプラインツール」になりそうな気配はある。
背景除去AIそのものより、
「大量画像を次工程へ高速で流し込める」
ことの価値を、今回かなり強く感じた。




