AIの描いた絵から背景を一発削除する
これまで数回に渡って、お絵描き AI『 Stable Diffusion 』を使う方法を書いてきました。
Stable Diffusion はゲーム制作における画像素材の準備にとても役立つツールですが、描いた絵をゲームに使う事を考えると、キャラクターを描いた際などに自動で描かれた背景をどうするか、というのが1つの課題になってきます。
もちろんシーンに必要な背景を含めて描かせてしまうというのは1つの手ですが、例えばキャラクターの立ち絵の場合など『複数のシーンで使いまわしたい』といった事はよくあるのではないかと思います。
そういった場合にグラフィックツールを使って1枚1枚コツコツと手作業で背景を削除していっても良いのですが、そうなると、折角 AI を使ってスピーディに絵を手に入れたのにそこからそれなりの作業時間を使ってしまう事になってしまいます。
そこで、AI ともとても関係の深い機械学習モデルを活用して背景削除もパソコンで自動でやって貰おうという事になる訳です。もちろんそんなツールを自前で作るとなればそれなりの労力がかかりますが、世の中にはこれを実現する便利なツールが既に存在しているので、ありがたく使わせて貰いましょう。
今回使用するツールは Daniel Gatis さんという方が作られた『 Rembg 』というものです。公式の GitHub リポジトリはこちらになります。
しかし、今回のインストールではこちらのページからダウンロードする事はありません。
まず Python のインストールがお済みでない方は、こちらの記事に従って
Python のインストールを済ませてから、以下にお進みください。
では Python が使えるコマンドプロンプトから、
python -m pip install --upgrade pip setuptools
と打ち込んで Enter を押して実行します。
今から Python のパッケージをインストールするのですが、pip と setuptools は Python のパッケージなどのインストールに関わるツールですので、まずそれ自体を最新化しておく感じです。
pip と setuptools の更新が完了してコマンドラインに戻ってきたら
python -m pip install rembg
として『 Rembg 』のインストールを行います。
インストールが進んでいきます。ずらずらと画面にログが流れていくのでコマンドラインの入力待ちに戻ってくるまで気長に待ちましょう。
暫くするとインストールが完了してコマンドプロンプトに戻ってきます。
インストールが完了したかどうか確認する為に
rembg --version
と打って Enter を押して実行します。Rembg が正常にインストールされていれば『 rembg, version 2.0.25 』といった感じで Rembg のバージョン番号が表示されるはずです。(バージョン番号は今後変わっている可能性があります。)
次に使い方の説明を見るために
rembg --help
と打って Enter キーで実行します。この説明では『 [ARGS]… 』の部分が何かという事に触れられていませんが、入力ファイルと出力ファイルを並べて指定すれば OK です。
作業フォルダを作ります。エクスプローラーの Cドライブを開いて空いたスペースで右クリックし、出たメニューから『新規作成』⇒『フォルダー』を実行します。
新しいフォルダーの名前を『 work 』として確定します。
この『 work 』フォルダを開いて、そこに以前の
でAIに描いてもらった、こちらの画像
を『 input.jpg 』というファイル名で配置します。
では早速この背景の除去を試みてみます。コマンドラインから
cd C:\work
とやって work フォルダに移り、続けて
rembg i input.jpg output.jpg
と打って Enter キーで実行します。『 i 』は単独のファイルを入力するという意味です。このコマンドは input.jpg を入力として、背景を除去した結果を output.jpg に出力するという指示になります。
ログを見ると ONNXRuntimeError と出ていて『 C:\Users\[ユーザー名]\.u2net\u2net.onnx 』の読み込みに失敗した…と出ています。
もっとログを遡ってみると…どうやらこのファイルをダウンロードしようとしたがアクセス人数が多すぎてアクセス停止状態にある、このファイルにアクセスできるようになるには24時間かかるかもしれない…といった旨の事が書かれています。
困ったものですが、そのすぐ下を見るとご丁寧にもこちらのアドレスが書いてあり
こちらからダウンロードすれば使えるかもしれないと書かれています。
ありがたやありがたや…とブラウザで直接開いてみましたが、残念ながら私がアクセスした際はブラウザから行ってもダメなもんはダメ状態でした。恐るべしアクセス集中状態…
仕方ないので言われた通りしばらく時間を空けて…あと経験上こういう時はログインしておくと優先的にアクセスが許可されたりするので Google アカウントでログインした状態で、改めてアクセスしてみるとダウンロード可能になっていました。
『このままダウンロード』ボタンを押してダウンロードを実行し、ダウンロードされたファイル『 u2net.onnx 』を選択して右クリックし、出たメニューから『 コピー 』を実行します。
『 C:\Users\[ユーザー名]\.u2net 』というフォルダ (既に作成されているはずですが、無ければ作成します) の空き領域で右クリックしたメニューから、先のファイルの『貼り付け』を実行します。
では気を取り直して、先のコマンドをもう一度実行してみます。
今度は何事も無かったかのようにコマンド入力待ち状態に戻ってきました。どうやら成功したようです。
work フォルダの中を見ると背景が除去されて透明になった『 output.jpg 』が出来上がっていました。
想像以上に綺麗に切り取られています。これなら特に手直しせずにそのまま使えそうです。
今回は機械学習モデルをベースにした画像背景除去ツール『 Rembg 』を使って、お絵描き AI の Stable Diffusion に描かせた画像の背景を除去してみましたがいかがだったでしょうか?
AI に描かせた画像から簡単に一発で背景を除去してキャラクターを取り出せるので、立ち絵などの作成時には大幅な効率アップが可能になるのではないでしょうか。もちろん写真など AI が描いた絵以外でも背景を除去することができますので、活用できるシーンは無限大だと思います。ぜひ試してみられてください。