画像を自動生成するStableDiffsionを使ったイラストなんかがよくTwitterで流れてくるようになり
ちょっと気になったので使ってみた話。
そもそもStable Diffsionってなに?
ひとことで書くと入力されたテキストをもとにテキストの内容に沿った画像を自動で生成するAI。
オープンソースで公開されていて商業利用に関しても自由らしい。
最近ではNovelAI,midjourney(こちらも画像生成サービス)なども話題にのぼっていたりして、
色々なイラストが公開されている。
どうしたら使えるの?
試してみるだけなら割と色々な方法がある
- デモページ
- HuggingFace
- 英語で文字を投げるとそれをもとに生成された画像4枚ほど出てくるのでとりあえず試したいならここが楽
- お絵描きばりぐっどくん
-
LINEBot
- 日本語対応していて1日あたり2枚が上限らしい?が手軽に試せる
-
LINEBot
- AIピカソ
- Apple Storeのリンク
- お絵描きばりぐっどくんと同じ開発者が作っていて1日あたりの生成上限も多い!
- Stable Diffsionを実行して画像生成する(今回やるのはこれ)
- 他の手段と比べると使うのに必要な手順が多いがそれでもそこまで大変というほどでもない
実際に使うためにインストール
環境
- 実行端末
- MacBookAir M1(2020)
- OS
- Montery 12.5.1
事前準備
- Pythonのインストール
- 今回は
3.10.6
で進めていきます。
- 今回は
$ brew install pyenv
$ pyenv install 3.10.6
$ pyenv global 3.10.6
// ここで今回利用するバージョンに切り替わっているか確認
$ python -V
インストール
Stable DiffusionのRepositoryのクローン
Stable difusionのリポジトリからクローンしてきます。
$ git clone -b apple-silicon-mps-support https://github.com/bfirsh/stable-diffusion.git
$ cd stable-diffusion
$ mkdir -p models/ldm/stable-diffusion-v1/
Virtualenvのインストール
Virtualenvをインストールして依存関係などをインストールしていきます。
$ python3 -m pip install virtualenv
$ python3 -m virtualenv venv
$ pip install -r requirements.txt
Hugging Faceのトークンを取得
利用にあたってHugging Faceのトークンが必要なので取得します。
Hugging FaceのリポジトリにてHuggin Faceのアカウントを作って表示されるライセンスの内容に同意します。
sd-v1-4.ckpt
をサイト内からダウンロードして先ほどクローンしてきた際に作ったディレクトリ models/ldm/stable-diffusion-v1
に ファイル名をmodel.ckpt
にして配置します。
実行
実行の際は下記コマンドに生成したい画像を英文で入力し、実行することで画像が出力されます。
実行コマンド
python scripts/txt2img.py \
--prompt "ここに生成するのに使う文字列を英語で入力する" \
--n_samples 1 --n_iter 1 --plms
この際に入力するpromptを入力したテキストから生成してくれるサイトもあるみたいです。
https://huggingface.co/spaces/Gustavosta/MagicPrompt-Stable-Diffusion
今回は弊社のマスコットキャラクターであるブルくんっぽい画像になるように出力してみます(リンクの記事参照)
https://news.line.me/detail/oa-sportsbull/102ab78d0b4d
文字で表すと全身赤色の人型の牛って感じだと思うのでそんな感じの内容を上記で紹介したサイトで実行してみます。
生成画像
- 生成に使ったテキスト
Clip art of red cow in human shape by artgerm, Craig Mullins
赤い牛の顔のような画像が出来上がってhuman shapeの部分があまり感じられない...
人型の赤い牛のような記載のはずが赤い牛ばかりが出てきてしまうので、
赤い体をしたミノタウロス(体は人で頭が牛の形をしているとされる空想の生物)を生成する感じで試してみます。
-
生成に使ったテキスト
-
生成に使ったテキスト
まとめ
何十回か試してみたものの、センスがないのかブルくんのようなものが全く出来上がりませんでしたが
赤くて人型の牛頭の生物が出来上がったのでよしとします!(よくない)