見出し画像

10,000種類のAI生成画像をColaboratoryで効率的に作る方法

こんにちは、CryptoGamesの高橋です。

クリスペというブロックチェーンゲームの会社です。

今回は10,000種類AI生成画像を作った際の知見を共有します。

なお、私が10,000種類を作った際には「Colaboratory」「有償Pro版」以上が必要でしたので、先にお伝えいたします。

https://atmarkit.itmedia.co.jp/ait/articles/2106/07/news025.html

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生成画像を作成するにあたり、私が気をつけた点でした。

今回は以上です。

いいなと思ったら応援しよう!

ユウキ
サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊