10,000種類のAI生成画像をColaboratoryで効率的に作る方法
こんにちは、CryptoGamesの高橋です。
クリスペというブロックチェーンゲームの会社です。
今回は10,000種類のAI生成画像を作った際の知見を共有します。
なお、私が10,000種類を作った際には「Colaboratory」の「有償Pro版」以上が必要でしたので、先にお伝えいたします。
0 はじめに
みなさん、「Colaboratory」を使って「AI生成画像」を作成したことはありますでしょうか?
もしまだでしたら、こちらの動画がとてもわかりやすいので、ぜひこちらを先に見てみてください!
①まずはこちらの「Colaboratory」の使い方を簡単に
②その後、こちらのAI画像生成の動画を見てみてください。
こちらの記事は、上のサプーさんの「無料!AIで画像を生成」の「日本語から画像生成」の続きからのイメージです。
そこまでできましたら、本題を見ていきましょう。
1 格納フォルダのマウント
生成される画像が自動的に必要な場所に保存されれば、効率が上がります。
以下で、Googleドライブの特定のフォルダに保存する方法を見ていきます。
1ー1 マウントを行う
下のコマンドを使います。
from google.colab import drive
drive.mount('./mydrive')
「mydrive」の部分は任意の名前です。
実行すると、接続の許可が求められます。
アカウントを選択し、
内容に問題がなければ、「許可」を選択します。
下のようになればマウント成功です。
1ー2 マウント先のフォルダに格納する
マウントが完了したので、下のように、保存先のフォルダを設定します。
もちろん、今回であれば、あらかじめ「mySample」というフォルダに「001~100」というフォルダがあることを前提とします。
drive_root_dir="./mydrive/My Drive"
image.save(drive_root_dir+f"/mySample/001~100/test.png")
実行すると、このように指定した場所に保存されました!
2 一括生成を行う
大量に作成するには一括生成が欠かせません。
まずはカンマ区切りの複数の情報を用意します。
カンマ区切りは、例えば「スプレッドシート」の「TEXTJOIN」関数などで、簡単に作れます。
できましたら、下のようにfor文という構文で作成します。
(なお、私はこのPythonという言語が今回初めてでしたので、もっといい書き方などはきっとあると思います。)
変更箇所だけ抜粋
prompts = ["", "", ...]
for i, prompt in enumerate(prompts):
image.save(drive_root_dir+f"/mySample/001~100/{i + 1}.png")
これで、無事、フォルダに大量の画像が生成されていきます。
ただ、このままですと、黒い画像がたくさん出る場合があります。
(ちなみに、黒い画像を出しやすくするために、今回あえて、水着の画像としています。)
3 NSFWを表示させないようにする
先ほどの黒い画像はなんでしょう。
実はあの画像はNSFW(Not safe for work)の画像です。
直訳すると「職場向けとしては安全ではない」という意味になります。
そのため、むしろ私たちを守ってくれている処理になります。
しかし、画像を生成する過程で、明らかに問題なさそうな画像にも関わらず、「NSFW」が出ることがあります。
そのような場合、下のようにすることで、「NSFW」を出ないようにすることができます。
参照箇所だけ抜粋
def null_safety(images, **kwargs):
return images, False
pipe.safety_checker = null_safety
なお、こちらを参考にしました。
ただ、本来私たちを守ってくれる仕組みなので、使用する際はその趣旨を理解した上での使用をお勧めします。
以上、10,000種類のAI生成画像を作成するにあたり、私が気をつけた点でした。
今回は以上です。