「透過PNG画像の素材を探すのが大変だ・・・」
「素材作成を効率的に行いたい」
このような場合には、この記事の内容が参考になります。
この記事では、Stable Diffusionを使って素材作成を行う方法を解説しています。
本記事の内容
- 素材は探すから作る時代へ
- Stable Diffusionによる画像作成
- Rembgによる画像切り抜き
- Real-ESRGANによる画像拡大
それでは、上記に沿って解説していきます。
素材は探すから作る時代へ
素材が必要な場合は、どのようにしていますか?
例えば、「黒い冷蔵庫」の背景透過PNG画像が必要になったとします。
「フリー素材 黒色 冷蔵庫 透過」
「黒い冷蔵庫 素材 無料」
このようなキーワードで探しませんか?
実際にGoogleで検索した結果(画像)は、以下。

この場合、絵ではなくて、リアルな冷蔵庫の画像が欲しいのですよね。
仮に見つかったとしても、次のような感じです。

「ああ、やっぱりか・・・」
私は、このような絶望にも似た気持ちを何度も経験してきました。
結果的には、諦めるか適当なイラストのアイコンで済ませることになります。
しかし、もうこんな絶望を感じることはありません。
そして、諦めることも、適当なアイコンで済ませることもありません。
そもそも、今後は素材を探すという行為自体が不要になります。
これからの時代は、自分で素材を作るのです。
自分で作ると言っても、手間はかけたくありません。
写真を撮影して、切り抜いてということは時間がかかり過ぎます。
では、どのようにするのでしょうか?
それは、AIに任せるのです。
この記事では、そのための方法を説明します。
実際に、「黒い冷蔵庫」の背景透過PNG画像を作成することをゴールとします。
まずは、「黒い冷蔵庫」の画像から作成することにします。
画像作成には、Stable Diffusionを利用します。
Stable Diffusionによる画像作成
Stable Diffusionについては、次の記事で説明しています。
このStable Diffusionを利用して、「黒い冷蔵庫」の画像を作成します。
Stable Diffusionで画像を作成するには、入力するテキストがポイントになります。
a black refrigerator
シンプルにそのままを入力した結果は、以下。
とりあえず、10枚作成しています。

ありと言えば、全然ありです。
ただ、若干絵の要素が多いように感じます。
そこで、次のようにテキストを変更します。
a black refrigerator,Realistic,photorealistic
変更したテキストにより、同じく10枚作成してみます。

絵の要素が減って、リアルな画像が増えているように見えます。
気に入るモノができるまで、何度も作ればよいでしょう。
なお、GPUメモリ8GBの環境においては、1枚あたり10秒で作成できます。
100枚ほど作成しても、1000秒前後です。
無駄に検索して時間を潰すことを考えたら、全然許容できる時間と言えます。
以上、Stable Diffusionによる画像作成を説明しました。
次は、Rembgによる画像切り抜きを説明します。
Rembgによる画像切り抜き
Rembgについては、次の記事で説明しています。
このRembgを利用して、作成した画像を切り抜きます。
素材として使えるように、背景透過PNG画像にするということです。
リアルな画像10枚を対象にして、背景の削除を行います。
inputsフォルダにまとめて画像を設置します。
そして、次のコマンドを実行するだけです。
rembg p inputs outputs
処理はすぐに終わります。
outputsフォルダには、次の画像が作成されています。

この中からは、次の二つが使えそうです。
左の画像を冷蔵庫A、右の画像を冷蔵庫Bと呼びます。

不要な部分をカットした画像が、以下となります。

「黒い冷蔵庫」の背景透過PNG画像が、作成できました。
検索エンジンで探すより、圧倒的に速いです。
それも、自分の気に入ったモノが無料で作成できます。
ただ、ここで物言いが入る可能性があります。
画像のサイズですね。
小さいと使い物にならないケースもあるでしょう。
そんな場合には、Real-ESRGANを使います。
以上、Rembgによる画像切り抜きを説明しました。
次は、Real-ESRGANによる画像拡大を説明します。
Real-ESRGANによる画像拡大
Real-ESRGANについては、次の記事で説明しています。
このReal-ESRGANを利用して、画像を拡大します。
Real-ESRGANを使うと、画質を維持しつつ拡大できます。
画像は、それぞれ4倍のサイズになりました。
画像 | 拡大前 | 拡大後 |
冷蔵庫A | 165 x 405 | 660 x 1620 |
冷蔵庫B | 212 x 475 | 848 x 1900 |
比較するために、同じサイズにしています。
左が拡大前、右が拡大後の画像になります。


比較しても、画像の劣化を全く感じません。
むしろ、拡大後の画像の方が高画質になっているぐらいです。
拡大した画像を縮小しているので、余計にそのように見えます。
もっと大きい画像が必要なら、さらにReal-ESRGANで拡大しましょう。
しかし、GPUのメモリサイズ次第では「Error CUDA out of memory.」が出てしまいます。
以上、Real-ESRGANによる画像拡大を説明しました。