【無料】フォルダ内の画像を一括で背景除去できるツールの作り方
こんにちは!あずさです。
生成AIとプログラミングを活用して、皆さまの副業を応援する自動化ツールや画像生成・ツイート生成などに使えるプロンプトを作っています。
今回は誰でも無料でできる、Pythonを使ったフォルダ内の画像を一括で背景除去できるツールの作り方をご紹介します!
実際の挙動
背景除去したい画像をフォルダにまとめて、
そのフォルダを指定したコマンドを実行するだけです。
結果がこんな感じです。完ぺきに切り抜けるわけではないですし、昨今Windowsの標準フォトアプリでも背景除去はできますが、フォルダの画像全部一括で処理してくれるのが便利です。
本当の自動化をしてみませんか?
前述の通り画像の背景除去は昨今無料アプリで簡単にできる処理ですが、それらのアプリのほとんどは結局はGUIアプリ(一般的なボタンをクリックして操作するアプリ)なので、
「画像をセットして、、、背景除去ボタンを押して、、、保存して、、、次の画像をセットして、、、」
という操作が必要な、パソコンの前にずっと座っていないといけない単純作業です。
今回紹介するPythonのrembgというツールは、CLI(コマンドラインインターフェース)アプリと言って、コマンドプロンプトという黒い画面にコマンドを入力することで実行します。
GUIアプリのようなわかりやすい操作画面がない代わりに、いちいち画像を開いて処理して保存して、、、というステップを踏まずにサクサク処理できますし、フォルダ内の画像を一括処理するオプションがあるので、フォルダに画像をまとめてコマンドを実行すれば後は処理が終わるのを待つだけ。ずっとパソコンの前に座ってなくていい、本当の自動化です。
「プログラミングよくわからない」「黒い画面怖い」という気持ちはわかりますが、Pythonにはrembgのようにプログラムを1行も書かないで使えるCLIツールがたくさんそろっていますので、rembgを皮切りにCLIツールを使うことに慣れていけば、いろんな処理を無料でできるようになります。
一緒に本当の自動化を始めませんか?
必要な環境
rembgでは以下のバージョンのPythonがインストールされている必要があります。
python: >3.7, <3.13
参考:
私は以下の環境で動かしました。
OS:Windows11 Home
CPU:AMD Ryzen 5 4600H
メモリ:16gb
Python:3.10.6
Pythonのインストールは以下の手順が参考になります。
https://www.python.jp/install/windows/install.html
諸注意
今回私の自作ツールじゃないのでrembgの利用規約に準拠します。(といってもオープンソースなので自分で使う分にはほとんど自由です。利用規約を参照して判断してください。)
また質問等も受け付けません。ググったら出てきます。
知っておくと良い語句
その前に、知っておくと手順の理解が深まる語句について、簡単に説明しておきます。最初はさらっと読んで実際に構築してみて、その後もう一度読むとかなり理解が深まると思います。
コマンドプロンプト
Pythonやツールを実行するための黒い画面のインターフェイス。
パス
ファイルやフォルダが持っている、パソコン内のどこにそのファイルやフォルダがあるかという住所のような情報。
コマンドプロンプトからツールを実行する際に、実行するツールの場所やツールの実行に必要な素材(今回のツールでは画像フォルダ)の場所を指定するために使います。
パスには相対パスと絶対パスがあり、相対パスがあなたが今開いているフォルダからの相対的な住所、絶対パスはパソコン全体を見たときの絶対的な住所です。例えばあなたがデスクトップに作成した「Photo」というフォルダを開いていて、そこにはさらに「travel」というフォルダがあり、その中には「tokyo.png」というファイルがあったとします。
あなたが「tokyo.png」の場所を把握するのには、あなたが既に「Photo」フォルダを開いていることを考慮すると、「travelの中のtokyo.png」という情報があれば十分ですね。これをパスに直すと「travel\tokyo.png」となり、これが相対パスです。
あなたが「Photo」フォルダを開いていない場合は、「travel\tokyo.png」だけ教えられても、それがどこにあるかわかりません。なので、パソコンの大元のフォルダ(=Cドライブ)を起点とした住所が必要になります。「Photo」フォルダはデスクトップにあったので、「Cドライブのユーザー(あなた)のデスクトップのPhotoフォルダ内の、travelフォルダにあるtokyo.png」という詳細な情報が必要になるます。これをパスに直すと、「C:\Users\(あなたのユーザー名)\Desktop\Photo\travel\tokyo.png」となり、これが絶対パスです。
Python仮想環境
例えばPythonで画像を編集したいと思ったら、デフォルトのPythonではできません。画像を編集するには、画像を編集するためのライブラリをインストールする必要があります。ライブラリは「道具」のようなイメージで、ライブラリをインストールするのは「道具を調達して道具棚に収納する」ようなものです。(rembgもライブラリです。)
ここで問題になるのはライブラリの依存関係です。依存関係とは、「ライブラリAを使うには、バージョン1のライブラリBが必要」と言ったライブラリ同士の関係のことです。
つまり、ライブラリを次々にインストールしていると、「ライブラリAを使うにはバージョン1のライブラリBが必要だけど、ライブラリCを使うにはバージョン2のライブラリBが必要だ」と言った具合に、ライブラリ同士の競合が起きるのです。
これを解決するのが仮想環境です。ライブラリが道具で、ライブラリをインストールする場所が道具棚だとしたら、仮想環境は作業する部屋です。部屋ごとに道具棚が分かれているので、部屋1の道具棚にはライブラリAとバージョン1のライブラリBを、部屋2の道具棚にはライブラリCとバージョン2のライブラリBを入れておけば、作業部屋を変えることでライブラリA、ライブラリCの両方が使えて、ライブラリの依存関係による競合に悩まされません。
構築手順
構築は以下の流れで進めます。
Pythonの仮想環境を作る
rembgをインストールする
1枚の画像の背景除去をする
フォルダ内の画像すべて背景除去をする
1.Pythonの仮想環境を作る
まずはrembgをインストールするPython仮想環境を作りましょう。
まずデスクトップにフォルダを作ります。「rembg_project」という名前にしました。
仮想環境を作成するために、コマンドプロンプトで作成したフォルダまで移動します。まず「rembg_project」を右クリックしてパスをコピーします。
次に「CMD」とWindowsロゴの隣の検索窓に入力して、コマンドプロンプトを開いてください。
コマンドプロンプトはこんな画面です。
ここで「cd」の後ろに半角スペースを空けて、ctrl+Vで先ほどのパスを張り付けてエンターを押してください。
そうすると、最新行の表記が、「C:\Users\(あなたのユーザー名)\Desktop\rembg_project>」となるはずです。これは、先ほどデスクトップに作成した「rembg_project」フォルダをコマンドプロンプトで開いている状態です。
ここに、ツールを実行するためのPython仮想環境を作ります。以下のコマンドを実行してください。
python -m venv rembg_project_env
python(pythonで) -m(作る) venv(仮想環境を)rembg_project_env(rembg_project_envという名前で)、という意味のコマンドです。
実行すると一瞬待った後、何事もなかったかのように新しい行に進みます。
何事も起きていないようですが、「rembg_project」のフォルダを確認してみると、「rembg_project_env」というPython仮想環境のフォルダが作成されていることがわかります。
次に仮想環境を起動します。以下のコマンドを実行してください。
rembg_project_env\Scripts\activate
これは「rembg_project_env」フォルダ内の「Scripts」というフォルダにある仮想環境起動用の「activate」というファイルを実行するという意味のコマンドです。
仮想環境が有効化されると、コマンドプロンプトの前に `(rembg_project_env)` と表示されます。
2.rembgをインストールする
仮想環境が有効になっている状態で、以下のコマンドを入力してrembgをインストールします。
pip install rembg[cli]
実行すると以下のようにログが表示されてインストールが始まります。
エラー等なく`(rembg_project_env)`で始まる行に戻ればインストール完了です。これでrembgの準備ができました、。
3.1枚の画像の背景除去をする
背景を削除したい画像を用意してください。どこに保存されていても大丈夫ですが、私はわかりやすいように「rembg_project」フォルダ内に「test.png」という名前で格納しました。
次に以下のフォーマットでコマンドを書いて実行します。
rembg i <背景除去したい画像のパス> <出力画像のパス>
私は以下のようなコマンドになりました。
rembg i "C:\Users\(ユーザー名)\Desktop\rembg_project\test.png" "output.png"
<背景除去したい画像のパス>は絶対パスで指定しました。<出力画像のパス>は相対パスでファイル名のみを指定しました。(絶対パスは画像を右クリック→パスのコピーか、パスをシングルクリック→ctrl+shift+cでコピーできます。)
つまり、rembgは「C:\Users\(ユーザー名)\Desktop\rembg_project」上で実行するので、「output.png」は「C:\Users\(ユーザー名)\Desktop\rembg_project\output.png」として解釈され、出力画像は「output.png」と言う名前で「C:\Users\(ユーザー名)\Desktop\rembg_project」内に出力されます。
同様に「test.png」もプログラムを実行するフォルダ内に格納されているので、相対パスで指定しても問題ありません。(このあたりピンと来ない場合は「知っておくと良い語句>パス」の項目を読んでみてください。パスの概念はCLIツール慣れていくと自然と身に付いていきます。)
実行するとマシンスペックによりますが、少し待った後背景透過した画像が保存されます。(初回は少し時間がかかるかもしれません)
特にログ等出ずに初期行に戻ればOKです。
ちゃんと出力されてますね。結構きれいに抜けました。
5.フォルダ内の画像すべて背景除去をする
`p`オプションを使うと、指定したフォルダ内のすべての画像の背景を一括で削除することができます。
「rembg_project」内に「images」というフォルダを作って画像を複数枚格納しました。
コマンドは以下の形式です。
rembg p <画像フォルダのパス> <出力先フォルダのパス>
私と同じように「images」フォルダを作って画像を格納した場合、コマンドは以下のようになります。
rembg p "images" "images\_rembg"
「images」フォルダは「rembg_project」フォルダ直下に格納されているので相対パスでフォルダ名のみを指定、出力先フォルダは「images」内に「_rembg」という名前のフォルダが作られるように指定しました。<出力先フォルダのパス>はまだ作成されていないフォルダのパスを指定すれば、フォルダごと作成されて画像がそこに出力されます。
実行してみましょう。実行すると以下のように進捗バーが表示されます。
進捗バーが100%になって完了すると、「images」フォルダ内に先ほど出力先フォルダとして指定した「_rembg」が作られています。
中身はこんな感じです。きれいに抜けてますね。
構築と基本的な使い方は以上です、お疲れ様でした!
終了、起動の仕方
Pythonの仮想環境は、「deactivate」コマンドで終了できます。実行すると先頭の「(rembg_project_env)」が消えて仮想環境が閉じていることがわかりますね。
再度仮想環境を起動して、ツールを実行できる状態にするには、以下の手順を参考にしてください。必要なrembgはすでに仮想環境「rembg_project_env」にインストールされているので、仮想環境を起動すればrembgを実行できます。
コマンドプロンプトで「cd (rembg_projectフォルダのパス)」を実行し、rembg_projectフォルダを開く
「rembg_project_env\Scripts\activate」コマンドを実行して仮想環境を起動する
仮想環境の簡単な起動方法
手順通りに構築を進めた人は、以下のコマンドで一気に仮想環境を起動できるはずです。コマンドは「&&」で繋げば1行で順番に実行できます。
自動化ツールたくさん公開してます
いかがでしたか?無事動かせましたでしょうか?
今回は私の自作ツールでない一般的なCLIツールの使い方講座でしたが、私の自動化ツールも似たような構築手順と使い方で難易度が少し高め、動作保証やサポートは無しの代わりに、
本当の自動化ができるCLIツールの形式で、1~2.5万字と30~70枚の画像による解説と一緒に、990円~2990円の爆安で提供しています。
また、雑学・解説動画を生成するツールには台本生成用のChatGPTプロンプトも付属してます。
新しいツールの方が洗練されているので、今現在一番クオリティが高いのはいわゆる「ずんだもん解説動画」を自動生成できる以下のツールですが、面白い長尺の解説動画を作るにはChatGPTが作った台本を手直しする必要があり、台本の工程含めて自動化するのはちょっと難しいです。(解説動画以外にも、いわゆる反応集も作れるので、台本をしっかり用意する準備があればかなり便利だと思います。)
一方以下の流行りのフォーマットでの雑学動画生成ツールは、ChatGPTによる台本でもそこそこ面白い動画が作れます。実際一番人気で、たくさんの方にご利用いただいています。
また、皆さまの副業に役立ちそうな生成AIプロンプトもいくつか公開しています。
皆さまの副業自動化、生成AI活用の一助となれば嬉しいです!
この記事が気に入ったらサポートをしてみませんか?