
今話題のAIに絵を描いてもらう為に、私のPCに環境を作った時の手順の備忘録だ
失敗した過程も含めて全部書いていく
Stable Diffusionについては深津さんのnoteがわかりやすい

なんだか凄そうですね

注意事項だが、私はAIの専門家では無い。ゲーマーだ
公式の情報やネットで集めた情報を元に雰囲気で設定したので、参考程度にして欲しい
私のPCの環境について説明しておく
OS | Windows 10 Home Edition |
CPU | Intel(R) Core(TM) i9-9900 CPU @ 3.10GHz 3.10 GHz |
メモリ | 32.0 GB |
GPU(グラボ) | NVIDIA GeForce RTX 3060 Ti 8GB |
HDD | 2.72TB ※ゲーム等が入っている |
SSD1 | 237GB ※OS等が入っている |
SSD2 | 929GB ※ゲーム等が入っている |


HDDかつかつですね

Eドライブが空いているのでそこに環境を作る
私のPCにインストール済みだったソフトウェアについて書く
ただ、これについては記憶が曖昧だ
過去にCudaをインストールしていたかもしれないがそのような痕跡は見当たらない
Python 3.8.5
git version 2.22.0.windows.1

それだけなんですね

これから手順を説明するが、すべてPowerShellを使って進める
管理者として実行しておいた方が良いと思う
まずリポジトリのクローンを作成する
cd e:\ # インストールしたいディレクトリ git clone https://github.com/CompVis/stable-diffusion.git

始まりましたね

condaというパッケージ管理ソフトを使用しているらしいのでインストールする
非営利目的の場合は無料で使えるぞ
詳しくは公式をチェックだ


Anaconda3-2022.05-Windows-x86_64.exeを
ダウンロードしたんですね

ダウンロード後はデフォルトの設定のままインストールを完了した
その後、環境変数のPATHに3つのディレクトリを追加
C:\Users\<USER>\anaconda3 C:\Users\<USER>\anaconda3\Scripts C:\Users\<USER>\anaconda3\Library\bin
PATHを追加したらPowerShellを再起動

<USER>の所は書き換えてくださいね

あとはパッケージをインストールする
cd .\stable-diffusion\ # cloneしたgitのディレクトリへ移動 conda env create -f environment.yaml # ちょっと時間かかる conda activate ldm # 必要なパッケージのインストール

ここまで順調ですね

次にモデルをダウンロードする。補足すると、これはAIの脳的なものだ
まずはHugging Faceにサインアップして欲しい

🤗

そしてモデルのクローンを作成する。。。が
ここでエラーが出た
cd e:\ # 移動 git clone https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/
(base) PS E:\> git clone https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/ Cloning into 'stable-diffusion-v-1-4-original'... remote: Enumerating objects: 26, done. remote: Counting objects: 100% (26/26), done. remote: Compressing objects: 100% (25/25), done. remote: Total 26 (delta 6), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (26/26), done. Encountered 1 file(s) that may not have been copied correctly on Windows: sd-v1-4.ckpt See: `git lfs help smudge` for more details.

困りましたね

ファイルサイズが大きいらしいので、lfsオプションをつけて再度実行する
git lfs clone https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/

うまく行きましたね

クローンしたモデルを設置する為にディレクトリを作成し、その後移動する
mkdir -p .\stable-diffusion\models\ldm\stable-diffusion-v1\ mv .\stable-diffusion-v-1-4-original\sd-v1-4.ckpt .\stable-diffusion\models\ldm\stable-diffusion-v1\model.ckpt

リンクを貼らないんですね

準備完了、セットアップした環境を使いコマンドを実行
ここでエラーが出た
cd .\stable-diffusion\ conda activate ldm python scripts/txt2img.py --prompt "a photograph of an astronaut riding a horse" --plms <# RuntimeError: CUDA out of memory. Tried to allocate 3.00 GiB (GPU 0; 8.00 GiB total capacity; 5.62 GiB already allocated; 0 bytes free; 5.74 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF #>

GPUのメモリが足りないんですね

低メモリな環境に最適化されたリポジトリを取得し、モデルをセットする
cd e:\ git clone https://github.com/basujindal/stable-diffusion stable-diffusion_b #名前が被るのでリネーム mkdir -p .\stable-diffusion_b\stable-diffusion\models\ldm\stable-diffusion-v1\ # ディレクトリ作成 mv .\stable-diffusion\models\ldm\stable-diffusion-v1\model.ckpt .\stable-diffusion_b\models\ldm\stable-diffusion-v1\model.ckpt # モデルを移動

いよいよですね

最初に作ったAnacondaの環境を削除し、環境を再構築する
conda remove -n ldm --all # 環境を削除 cd .\stable-diffusion_b\ conda env create -f environment.yaml # 環境構築 conda activate ldm # 環境を切り替え

長い戦いでしたね

さぁ、ではコマンドを実行してみよう
画像が20個作成されたぞ
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


8分くらいかかりましたね

長い道のりだったが、ゲーマーにも手が届く範囲にAIが近づいているのを実感できるよい機会だった。専門家ではないので、解答できる事には限界があると思うが、なにか間違いや気になる事があればTwitterで相談して欲しい
速度をもう少し早くしたいが今は調べる気力がない
続報があればまた追記する

ちなみに、私達はMidjournyさんに描いていただきました