Windowsに素のStable Diffusion 2.X系をインストール

本記事では、Web UIやEasyDiffusionなどを使わずに素のStable Diffusionをインストールします。
許されるならば初心者の方は上記のツールなどを使用することをオススメします。
ちょっと難易度高めです。

ざっくり手順

  • NVIDIAドライバーのインストール
  • Anacondaのインストール
  • Stable Diffusionに必要なPythonモジュールのインストール(PyTorch等)
  • CUDAのインストール
  • CUDAの有効化
  • PyTorchとCUDAの動作状況確認
  • Modelファイル(.ckpt)のダウンロードと配置
  • Stable Diffusionの起動

詳細手順

NVIDIAドライバーのインストール

※既にNVIDIAのドライバーが入ってる人はこの手順は特に必要ありません。

まず、GPUのバージョン確認です。タスクマネージャーを開きます。

GPUのバージョンが確認できたらドライバーを取りに行きます。

ダウンロード元:
https://www.nvidia.com/Download/index.aspx

Download TypeはGame Ready Driver(GRD)とStudio Driver(SD)と2種類ありますが、
どちらでもよいです。本記事はStudio Driverで行きます。

ダウンロード

ダウンロードの同意

インストーラーを起動

はい

OK

しばし待つ

まだ待つ

NVIDIAグラフィックスドライバーを選択

同意して続行する

次へ

しばし待つ

閉じる

コントロールパネルを確認すると以下のものがインストールされています。

これでNVIDAのグラフィックボードのドライバーのインストールは終了です。

Anacondaのインストール

Anacondaをインストールします。

インストーラーダウンロード元:
https://www.anaconda.com/products/distribution

Download

インストーラーの起動

Next

I Agree

All Users(requires admin privileges)

はい

Next >

Install
Clear the package cache upon completion(完了時にパッケージキャッシュをクリアします)にチェックをつけても良い。

しばし待つ

Next >

Next >

Finish

Stable Diffusionに必要なPythonモジュールのインストール(PyTorch等)

GitHubからStable Diffusion一式を取ってくる

https://github.com/Stability-AI/stablediffusion

任意の場所に解凍します。
本記事では以下の場所に置いてます。
以降(StableDiffusionフォルダ)とした場合、以下です。

C:\stablediffusion-main\stablediffusion-main

Stable Diffusionフォルダに移動

cd (StableDiffusionフォルダ)

environment.yamlファイルの実行

conda env create -f environment.yaml

結構待ちます(環境によっては10分とか?)。

見えてる範囲が全部100%になってもかなり待たされます。

完了しました。

バージョンの確認

pip list

CUDAのインストール

CUDAをインストールします。

ダウンロード元:
https://developer.nvidia.com/cuda-11-8-0-download-archive

お使いの環境に合わせて選択します。

ダウンロード

インストーラーを実行

はい

OK

しばし待つ

スプラッシュ画面、しばし待つ

同意して続行する

次へ

しばし待つ

しばし待つ

閉じる

コントロールパネルを確認すると以下のものがインストールされています。
必要最小限かと言われたらたぶん違うと答えます。

CUDAの有効化

以下の場所でCUDAを有効にするコマンドを取得します。

https://pytorch.org/get-started/locally/

お使いの環境に合わせて以下を選択し、Run this Commandをコピーします。

  • PyTorch Build
  • Your OS
  • Package
  • Language
  • Compute Platform

Anaconda Promptを管理者権限で実行します。

はい

さきほどコピーしたコマンドを実行。
以下は僕の環境のもののため、ご自身の環境に合わせたものを実行してください。

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

y

しばし待つ(かなり長い、10分くらい?)

有効化が完了しました。

PyTorchとCUDAの動作状況確認

GPUがPyTorchとCUDAによってうまく使用されているかを確認します。

任意の場所に以下の内容を記載したファイルを配置します。
本記事は以下の場所に配置します。

C:\stablediffusion-main\gputest.py

記述内容(丸パクリです。オリジナルの記事も是非ご訪問ください。)

import torch

print(torch.__version__)
print(f"cuda, {torch.cuda.is_available()}")
print(f"compute_{''.join(map(str,(torch.cuda.get_device_capability())))}")
device_num:int = torch.cuda.device_count()
print(f"find gpu devices, {device_num}")
for idx in range(device_num):
    print(f"cuda:{idx}, {torch.cuda.get_device_name(idx)}")

print("end")

参考:Qiita([PyTorch] GPUの動作確認セット)

Anaconda Promptで実行します。

cd C:\stablediffusion-main
python gputest.py

うまく行けば以下のような感じ

うまく行ってなければ以下

うまく行かない場合はPyTorchとCUDAのバージョンがずれている可能性が高そうです。
それぞれのバージョンを確認してCUDA有効化のコマンドを再度実行しましょう。
それでもダメなら、Anaconda再インストールが近道です。

CUDAのバージョン確認

nvcc -V

PyTorchのバージョン確認

pip list

または

python
>>> import torch
>>> torch.__version__
'1.12.1'

Modelファイル(.ckpt)のダウンロードと配置

Stable Diffusionにはモデルファイルが必要です。
以下の場所から取得します。

ダウンロード元:
https://huggingface.co/stabilityai/stable-diffusion-2-1-base

直接ダウンロード(ダウンロードが始まります):
https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.ckpt

以下の場所に、ダウンロードしたv2-1_512-ema-pruned.ckptを配置します。

(StableDiffusionフォルダ)\checkpoints

Stable Diffusionの起動

Anaconda Promptを管理者権限で実行します。

はい

(StableDiffusionフォルダ)へ移動

cd (StableDiffusionフォルダ)

ldmのアクティベート

conda activate ldm

python scripts/txt2img.py --prompt "a cute himalayan cat" --ckpt checkpoints/v2-1_512-ema-pruned.ckpt --config configs/stable-diffusion/v2-inference.yaml --H 512 --W 512 --n_iter 10 --n_samples 1 --device cuda

以下の場所に画像ファイルを生成してくれます。

(StableDiffusionフォルダ)\outputs\txt2img-samples\samples

まとめ

道のりは長いです。

余談ですが、以下の文言が出てるのでxformersをpipでインストールしたら、PyTorch2.0を消されてしまい環境が死にました。
Anacondaから入れなおして復旧しましたがまた後日xformerのインストールについても見ていこうかと思います。なんかメモリの使用量が減るらしいので。

No module 'xformers'. Proceeding without it.'

おわり

PR

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です