
皆様こんにちは。今画像生成ソフトStable Duffusionで画像を生成するのが流行っています。生成した画像はどうも商用利用まで可能なフリー素材?らしくゲームソフトに組み込んだり本にして売ったりもできるようです。(要確認自信なし)。すでにこれで作った画像で本も発売されたらしくその可能性は無限大ともいえるのではないでしょうか。
しかしながらすでに活動中のアーティストや作品からデータを集めトレーニングしているらしく無法地帯とも考えられるかもしれません。自分の作品でトレーニングして欲しい人はいないでしょう。そこは少し保留しておいて今回は使い方や実際に生成した画像などを紹介したいと思います。
Table of Contents(目次)
フィルターがある
このソフトでは倫理的意味や精神的苦痛を感じるような画像を簡単では有りますがフィルタリングしているようで、裸や奇形などの画像はフィルタリングされることも多いようです。
なんにもフィルタをかけないと少し怖い画像もでるようなのでフィルターを外して処理するのはお勧めではありませんが、中には外してしまって生成する人もいるようです。
外し方はぶっちゃけわかりませんが、オープンソースなのでよくソースを読めば可能なようですね。
SWAPファイルの設定
メモリが8Gでも足りないようなのでSSD搭載ならSWAPファイルを設定することでメモリを拡張できます。ハードディスクでは遅いのでお勧めはしません。ubuntuの例ですがすでにスワップファイルがるのでサイズを変更します。
sudo swapoff /swapfile
sudo rm /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=4000
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon --show
Stable Dufusionの設定方法
依存パッケージなどをインストールして行きます。
sudo apt-get update
sudo apt-get install -y python3-pip libjpeg-dev libopenblas-dev libopenmpi-dev libomp-dev
sudo -H pip3 install setuptools==58.3.0
sudo -H pip3 install Cython
sudo -H pip3 install gdown
pip install torch
pip install transformers
pip install diffusers
そしてAIのモデルのユーザ登録ですが
https://huggingface.co/join
からユーザー登録を行い
https://huggingface.co/CompVis/stable-diffusion-v1-4
でモデルの使用の利用規約に同意し
https://huggingface.co/settings/tokens
からトークンを発行
トークンをスクリプトに埋め込みます。
依存関係などはコマンドからインストールを実行するだけなので環境構築は比較的非常に容易といえます。YOUR_TOKEN の箇所に取得したトークンを代入してください。promptには生成したい画像のタイトルを入れます。英語で詳細に入力する事がコツです。
その後スクリプトを実行します。コマンドラインからpython Gene.pyのように叩きましょう。スクリプトの内容は以下のとおりです。
Pythonスクリプト(Gene.py)
from torch import autocast
from diffusers import StableDiffusionPipeline
import torch
YOUR_TOKEN = "ooooooooooooooooooooo"
pipe = StableDiffusionPipeline.from_pretrained(
"CompVis/stable-diffusion-v1-4",
use_auth_token=YOUR_TOKEN
)
prompt = "Hibiscus in a vase. painted by van gogh"
image = pipe(prompt, guidance_scale=7.5)["sample"][0]
image.save("ok.png")
なおCPUを使うかGPUを使うかは自動判定されますのでCPUしかない環境でも実行可能です。むしろ指定しようとしましたが指定の方法がわからず、エラーが出るため指定を削除する事で対応できました。
処理の実行
処理を実行すると以下のような画面になり処理が進んでいきます。
ftfy or spacy is not installed using BERT BasicTokenizer instead of ftfy.
1it [00:18, 18.43s/it]
トータル時間が00:18秒で1it毎に18秒かかるよという表示です。すべての処理で51itで終わりますから18x51で918秒。約15分で終わる計算になります。時間は非常に正確で他に処理を走らせたりしなければ時間が短くなったり早くなったりはしないようです。
生成した画像と呪文(画像タイトル)など
夜空を彩る花火とタワー。アニメ風
Fireworks and a tower that color the night sky. anime style
ピカソが描いたサッカー選手のメッシ。
soccer player Messi. painted by picasso.
おさるさんは桃をゲットした
Monkeys are getting the peach.
ゴッホが描いた花瓶に生けたハイビスカス
Hibiscus in a vase. painted by van gogh
上空からみたナイアガラの滝
Niagara Falls seen from above
インストールなどの詳細は解説サイトもあるよ
当サイトの方法でできなかった場合、詳細がわからなくて進めないと行った場合にはインストールの詳細などに関して以下のサイトが詳しいです。
Stable Diffusionをローカル環境のラズパイで動かす方法(苦行)
処理時間に関して
Ryzen 5 4000番台で6コア8Gメモリ処理になりまして15分かかりました。スワップしているので多少は遅くなってると思います。しかしながらある程度の低スペックでも処理ができる素晴らしさがありますので、動くだけでもありがたやでしょう。皆様面白いのでぜひ自分の手で動かしてみてくださいませ。それではまたお会いしましょう。