まぁまずはこいつを見てくださいよ旦那
左の自作画像が右に大変身
こういうこともできちゃうんですよねStableDiffusionならね
というわけでローカルにインストールするときに自分がやった方法を書いていきたいと思います
参考にしたページ
https://zenn.dev/koyoarai_/articles/02f3ed864c6127bb2049#comment-7a470dc767d8c8
前提としてエヌビディアのGPUが必要になるので持ってない人はgoogleのサービスなどを利用しましょう
ローカルで利用する場合CUDAのインストールとcudnnも必要になるのでこちらもインストール。(何も入れてないならバージョンは11.6がよろしいかと)
それとcondaが使えるアプリケーション自分はAnacondaを使いました
Pythonも入っているので別に用意する必要がありません
(と言うよりconda内のgitでのDLシステムが必要になります)
gitHubのStableDiffusionにいってデータをCodeボタンからDownload zipで落としてきます
https://github.com/CompVis/stable-diffusion
解凍してアクセスしやすい位置においておいてください
そして学習ファイルを用意します(重み)
https://huggingface.co/
このページからDLできるはずです
参考にしたページの通り進めれば問題なく学習ファイルを設置できるはずです(丸投げとも言う)
コマンドプロンプトを起動して解凍したフォルダに移動します
そしてコマンドで仮想環境を作ります
conda env create -f environment.yaml
conda activate ldm
次にその仮想環境にpytorchとtransformersをインストールします
pytorch
https://pytorch.org/
pytorchのホームページに行って自分の環境にボタンを合わせるとCUDA対応のpytorchをインストールするコマンドが出てきますのでそれをコマンドプロンプトへ打ち込んでpytorchをインストールします
ホームページに乗ってる方法ではCPU版しかインストールされません
そして次のコマンドでtransformersをインストールします
pip install transformers==4.19.2 diffusers invisible-watermark
pip install -e .
2番めのは何なのかわかりませんがホームページに書いてある動作なので一応やっておきましょう
その後は解凍したStableDiffusionフォルダの中にあるenvironment.yamlというファイルの中に必要なモジュールが書かれています(pipの欄)
pip install で次々とインストールしていきましょう
下から3番めと2番めに書かれているやつはインストールするのにgitが必要になるのでcondaにインストールしてしまいましょう
conda install git
pip install -e git+https://github.com/CompVis/taming-transformers.git@master#egg=taming-transformers
pip install -e git+https://github.com/openai/CLIP.git@main#egg=clip
pip install -e .
このコマンドでインストールできるはずです
インストールが済んだら次のコマンドで画像作成です
python scripts/txt2img.py --prompt "a photograph of an astronaut riding a horse" --plms
がほぼ確実にメモリが足りないというエラーが出てしまうでしょう
(グラボのメモリ12Gあってもだめだった)
それを回避するバージョンがあります
https://github.com/basujindal/stable-diffusion
からCode>Downloadzipでファイルをダウンロードしてきます
optimizedSDフォルダ以外は同じものなのでoptimizedSDフォルダのみDiffusionを解凍したフォルダに入れます
そして次のコマンドを実行
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
エラーなく進めばoutputsというフォルダが新しくできているはずなのでそこを辿っていくと画像ができています(エラーが出る場合はエラーの内容に足りないモジュールが出るのでenvironment.yamlの中身と合わせてインストールしていきましょう)
画像ができていたらおめでとうございます無事インストールは完了しました
--promptの内容を変更して好きな絵を作り出してください
StableDiffusionには面白い機能があって予め用意したイメージに肉付けを行うといったようなこともできます。一番最初に話した画像の変換ですね
python optimizedSD/optimized_img2img.py --prompt "Austrian alps" --init-img input.jpg --strength 0.8 --n_iter 2 --n_samples 10 --H 512 --W 512
予めinput.jpgを同フォルダに用意しておき肉付けを--promptで指定してやって作成します
以上がStableDiffusionをローカルで使うにあたって私が行ったことです
多分抜けはないと思いますがもし間違いがあったらすみません
それにしてもすごい時代になったものだなぁ
追記
こちらの手順はブラウザで操作できる上一つ一つインストールする必要もなく簡単です
おすすめ
https://note.com/abubu_nounanka/n/na91126d8c2d6
追記2
12GメモリでStableDiffusionをデフォルトのまま使うオプション
--n_samples 1 or 2
--H 768 --W 512 もしくは --H 512 --W 768 が最大解像度の模様
デフォルトは--H 512 --W 512