「AIに画像を描かせる」
こんなSF的なことが、個人でも実現可能になっています。
AIアートなどとも呼ばれていますね。
この記事では、このAIアートを簡単に行う方法を解説しています。
お手元のPCで実現できます。
ただし、ゲーミングPCと言えるほどのスペックが必要です。
本記事の内容
- Big Sleepとは?
- Big Sleepのシステム要件
- Big Sleepのインストール
- Big Sleepの動作確認
それでは、上記に沿って解説していきます。
Big Sleepとは?
Big Sleepとは、OpenAIのCLIPとBigGANのジェネレーターを組み合わせたモノです。
Pythonのライブラリとして、Big Sleepをインストールすることができます。
BigGANは、名前からわかるように敵対的生成ネットワーク(GAN)を発展させたモノです。
詳細は、論文や専門的な記事を参考にしてください。
ここでは、大きな高画質の画像も扱えるGANとだけ覚えておきます。
CLIPに関しては、次の記事で解説しています。
そして、Big Sleepの機能を説明しておきます。
Big Sleepを利用すると、次のような画像を作成できます。
単純に「demon fire」というテキストとともに、Big Sleepのプログラムを実行するだけです。
個人的には、センスのある画像だと思います。
少なくとも、私はこのような絵を描くことはできません。
以上、Big Sleepを説明しました。
次は、Big Sleepのシステム要件を確認します。
Big Sleepのシステム要件
現時点(2021年9月)でのBig Sleepの最新バージョンは、0.8.5となります。
この最新バージョンは、2021年4月4日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
公式(GitHub)上には、特に記載はありません。
ただ、100%Pythonであり、OS依存の箇所は見当たりません。
サポート対象となるPythonのバージョンは、Python 3.6と記載されています。
しかし、setup.pyを見てもバージョン縛りはありません。
よって、Python 3.6以降であれば問題ないでしょう。
実際、私は次のバージョンで検証しています。
>python -V Python 3.9.6
上記バージョンでの動作に問題はありません。
Big Sleepで最も注意すべきは、PyTorchです。
GPU対応版のPyTorchを利用したいなら、事前にインストールする必要があります。
そうしないと、CPU版のPyTorchが自動でインストールされてしまいます。
PyTorchのインストールは、次の記事で解説しています。
以上、Big Sleepのシステム要件を説明しました。
次は、Big Sleepをインストールしていきます。
Big Sleepのインストール
まずは、現状のインストール済みパッケージを確認しておきます。
この時点では、GPU版のPyTorchをインストールしているだけです。
>pip list Package Version ----------------- ------------ numpy 1.21.2 Pillow 8.3.1 pip 21.2.4 setuptools 57.4.0 torch 1.9.0+cu111 torchaudio 0.9.0 torchvision 0.10.0+cu111 typing-extensions 3.10.0.2
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、Big Sleepのインストールです。
Big Sleepのインストールは、以下のコマンドとなります。
pip install big-sleep
インストールは、少し時間がかかります。
では、どんなパッケージがインストールされたのかを確認しましょう。
>pip list Package Version ------------------------- ------------ big-sleep 0.8.5 boto3 1.18.33 botocore 1.21.33 certifi 2021.5.30 charset-normalizer 2.0.4 colorama 0.4.4 einops 0.3.2 fire 0.4.0 ftfy 6.0.3 idna 3.2 jmespath 0.10.0 numpy 1.21.2 Pillow 8.3.1 pip 21.2.4 python-dateutil 2.8.2 pytorch-pretrained-biggan 0.1.1 regex 2021.8.28 requests 2.26.0 s3transfer 0.5.0 setuptools 57.4.0 six 1.16.0 termcolor 1.1.0 torch 1.9.0+cu111 torchaudio 0.9.0 torchvision 0.10.0+cu111 tqdm 4.62.2 typing-extensions 3.10.0.2 urllib3 1.26.6 wcwidth 0.2.5
それなりの数のパッケージが、インストールされました。
ただ、めちゃくちゃ多いということはありません。
でも、Pythonの仮想環境を利用することをおススメします。
Windowsなら、IDEにPyCharmを使えば簡単に仮想環境を利用できます。
プロジェクト毎に仮想環境となります。
また、以下のようにコマンドでも簡単に仮想環境を利用できます。
以上、Big Sleepのインストールについて説明しました。
最後は、Big Sleepの動作確認を行います。
Big Sleepの動作確認
Big Sleepには、以下の二つの利用方法があります。
- コマンドラインツール
- API
今回は、コマンドラインツールとして利用しましょう。
最初に、コマンドプロンプトかPowerShellを起動します。
画像にしたいテキストとともに、「dream」コマンドを実行。
dream "a pyramid made of ice"
「”a pyramid made of ice”」の部分は、他のテキストでもOKです。
ただし、テキストによっては意味不明の画像になる可能性があります。
そのため、公式にある「”a pyramid made of ice”」で動作確認をするのが安全です。
しかし、注意点があります。
上記コマンドは、かなり時間がかかることを認識しておきましょう。
なお、私のマシンスペックは以下です。
CPU | インテル Core i9 9900KF |
GPU | NVIDIA GeForce RTX 2060 SUPER |
メモリ | 16GB |
上記スペックでも、処理に約3時間かかりました。
CPU版のPyTorchを使ったら、どれだけの時間がかかるのでしょうかね。。。
そして、約3時間かけて出来上がった画像は、次のモノとなります。
確かに、氷でできたピラミッドが見えます。
ただ、もう少し大きなピラミッドが見たかったです・・・
でも、十分にスゴイと言えるのではないでしょうか?
「動作確認するのが、恐ろしい!」と思う方は、エポック数などを減らしてもいいかもしれません。
epochsやiterationsの値を調整してみてもよいでしょう。
下記は、エポック数を1(デフォルトは20)にした場合のコマンドになります。
dream -epochs 1 "a running dog"
上記コマンドを実行した結果は、次の画像です。
走る犬のように見えませんか?
少ないエポック数でも、なんとなくは表現できるようですね。
なお、画像は入力したテキストをファイル名として作成されます。
a_pyramid_made_of_ice.png、a_running_dog.pngというような感じです。
以上、Big Sleepの動作確認についての説明でした。