絵描き界に革命が起きようとしている。AIお絵かきが誰でも利用できるようになって、しかもローカルで動かせるようになるなんて・・・・。stable-diffusionがすべてのセンスなし絵下手マンを救済してくれる。このビッグウェーブに乗らないわけには行かないでしょう!ということで、PCは主にSteamゲームとYoutubeにしか使わない人間が、ローカルでAIを動かすまでをまとめました。
購入から10年使ってるPCですがちゃんと動いている!前置きは短くしますが意外と簡単でした。
ハードウェア環境
・CPU:Intel Core i7-4790 3.60GHz
・メモリ:DDR3 16GB
・ディスク:Samsung SSD860 240GB,WDC HDD 1TB
・GPU:NVIDIA GTX 1660 SUPER(メモリ6GB)
ミドルレンジくらいかな?とか思っていたけど。今回の導入でいろいろ動かしてみると低スペックだなと感じた。
それでも十分なほどに出力できるのがすごい。
※CompVis版はGPUのメモリは10GB無いとエラー吐いて動きませんが、basujindal版はメモリを抑えた稼働をしてくれるのでbasujindal版を使用しています。CompVis版でもfloat16で実行することでこのメモリ制限を回避できますが、ライブラリ入れるのとかだるかったので使ってません。
ソフト環境
・OS:Win10
・ Git
・ anaconda
・ GitHub-stable-diffusion(CompVis)
・ GitHub-stable-diffusion(basujindal)
うーん。どれも聞き慣れない!パイソン開発やデータサイエンスでバリバリやっていれば当たり前なのでしょうが・・・・って感じの人でも、どれもわかりやすくて導入簡単でした。早速ですが順を追って見ていきましょう。
インストール手順
基本的にはGitHubのReadmeを読めばその流れの通りなんですけど、当然ながらGitコマンドが使える前提だったり、パイソン実行環境が整っている前提なので、無い無い尽くしの人にはちょっと足りてない。ざっくり順番をまとめると
1⃣Gitのインストール(anacondaでインストールすれば飛ばしていい)
2⃣anacondaのインストール
3⃣stable-diffusionの展開
といった感じです。わかっていれば簡単ですが、初めてだとちょい詰まる。
1⃣Gitのインストール
インストーラーをダウンロードしてデフォルト設定でインストールしました。
内容はよく読んでからインストールしてねってお決まりの注意をいれつつ、ググればインストール方法を解説しているところが多いので参考にしてください。
2⃣anacondaのインストール
上のリンクの手順でインストールすれば簡単に終わります。
Dataspell for Anacondaをオプションで追加したかというと、してません。
今後はAnacondaPromptで環境準備していきます。
まずはBaseポジションを確認します。
conda info –envs を実行します。
*がついてるところが現在使用している環境です。画像のようにbaseじゃないときは
conda activate
を実行するとBaseへ戻ります。
ここでgitコマンドが使える確認します。すると私はエラーになってしまいました。環境変数にPATH入れてるのに・・・
ということで、AnacondaPrompt上でGitインストールをしました。
conda install git
これでひとまず完了。
次にstable-diffusionを展開していきます。
3⃣stable-diffusionの展開
まずGitHubからダウンロードします。
Zipを展開して、AnacondaPromptのBase直下へ展開したものをすべて置きます。
そしたらやっとReadMeに従うことができます。長かった・・・
conda env create -f environment.yaml
実行が終わるまでしばし待つ・・・
完了するとldmフォルダが作られるので一旦終了。
つぎに学習モデルの配置を行います。ReadMeでいうところのWeightの入手です。
Hugging Face CompVis
※私はstable-diffusion-v-1-4-originalを入手しました。
※ダウンロードにはHugging Faceのアカウントが必要です。
ダウンロードしたXXXXXXX.ckptファイルを以下のパスに置きます。
C:\Users\Username\models\ldm\stable-diffusion-v1\model.ckpt
※stable-diffusion-v1フォルダは手動で作成しました。
※ダウンロードしたXXXXXXX.ckptはmodel.ckptにリネームしました。
※ReadMe的にはダウンロードしたファイルにlnコマンドでリンクして実行できるようにしてますが、面倒なので直接ファイルを置いてます。
これで画像生成のコマンドが実行できます!!!!!!!
と思いきや、実行しても私はGPUのRAMが少ないのでエラー・・・
④RAM少ない人向け:basujindalの導入
導入もくそも無いのですが、 GitHub-stable-diffusion(basujindal)からダウンロードしてZipを展開して、AnacondaPromptのBase直下へ展開したものをすべて置きます。
この作業、上で1回やってますのですべて上書きです。
これで準備完了!お疲れ様でした。
○その他1
出力が緑画像しか出ない。。。。そんな方は–precision fullを付加するとよい。
python optimizedSD/optimized_txt2img.py –prompt “Cyberpunk style image of a Telsa car reflection in rain” –H 512 –W 512 –seed 27 –n_iter 2 –n_samples 10 –ddim_steps 50 –precision full
○その他2
私の環境では256×256のサイズで20枚の画像生成がおよそ8分
512×512で20分かかります。
以下が生成結果です。なんかの出土美術品みたいですごいです!