Stable Diffusionの導入

https://togetter.com/li/1934571

hugging face

たぶん、Githubみたいなものだと思うのだけど、アカウントを作ってアクセストークンを作った。

Pythonのインストール

Pythonをインストールする。3.10.6のパッケージを実行するだけ。
パスも通してくれる。
コマンドプロンプトで「python」と入力して、バージョンが表示されたら成功。
PowerShellにスクリプトの実行を許可するコマンドを入力する。これは、成功したのかどうかよくわからない。

GeForceのドライバをインストールする

これは、記載されている方法ではなく、すでにインストールされているGeforceのツールを経由してインストールを行う。
このあたりから怪しくなってくるなあ。案の定、最新のドライバーのダウンロードに失敗する。原因はまったくわからない。
調べると、NVIDIAサイトからダウンロードすれば大丈夫っぽいのでそのようにしてみる。不安がつのる。
784MBのダウンロードを3分ほどかかって実行している。
GeForceのドライバは更新された。

CUDA ToolKitをインストールする

激しく自信がない工程だ。GPUを使えるようにするツールキットだと思う。
2.5GBもある。まじか。
CUDAのインストール完了。パスが通っていることも確認できた。
コマンドで試してみるとパスが通ってなかったので環境変数に追加する。通った。もうほとんど奇跡だ。

cuDNNをインストールする

さっぱりわからんけど、Geforceがらみのなにからしい。
ダウンロードするためにNVIDIAのDeveloper登録が必要だった。zipファイルをダウンロードしている。
環境変数の設定でパスを通して、とりあえずここまでは完了。

Anacondaをインストールする

いよいよ、やばい所に入ってきた。
Anacondaはpythonのパッケージマネージャーということだけど、ここまではうまくいってほしい。
コマンドプロンプトでPythonのバージョンを確認する。3.10.6でした。
ネットの情報でも、Anaconda3のインストーラーでも、Python3.9じゃないとダメっぽいようなことが書いてある。
実に怪しい。

Anaconda3がインストールできた。
Anaconda PowerShell Promptというものが導入されている。これは、仮想環境的なもの。

Anacondaにpytorchの仮想環境をインストールする。このあたりになるともう目的もわからなくなってくる。
conda create -n pytorch python=3.7
このコマンドでできたみたい。
起動するときは:conda activate pytorch
終了する時は:conda deactivate
試しにアクティベートしてみると、ユーザー名がpytorchに変わった。

Pytorchのインストール

pytorchのインストールの際には、cudaのバージョンを聞かれるわけなんだけど、11.7は選択肢にない。
11.3がどうやら標準のようで、このままcuda toolkit11.3用のPytorchを導入して大丈夫なのか、不安が膨らむ。
インストールが始まった。Pytorchは1.9GBもある。

インストール完了。PytorchからGPUが認識できていることを確認する。
import torch
torch.cuda.is_available()
AnacondaプロンプトからPythonを起動して、上のコマンドを入力する。trueが返ってきたらGPUが認識できているらしいんだけど、一応Trueが返ってきている。すごい。これは奇跡。

stable diffusionのインストール

いよいよ、stable diffusionのインストールを行う。ほんまかいな。まだ半信半疑だ。あまり希望を持たない方がいい。
ここまでこれただけでも僥倖と思っておかないと。だいたいいつも最後の方で希望がくだかれるのだ。

Anacondaでpipを実行する。
pip install diffusers==0.2.4 transformers scipy ftfy

ここまではOKで、stable diffusionを実行しようとしたら大量にエラーがでた。
泣きそうになったけど、どうやら管理者権限でAnacondaを実行していないのが原因のようだったので、一度Anacondaを切って再度管理者権限で実行する。Pytorchが管理者権限のAnacondaには入ってみたいな雰囲気だったのでもう一度入れる。
1.9GB を2個いれたけど大丈夫なのか?

もう一度stable diffusionを実行。取得したトークンをいれて何かを実行すると、ダウンロードが始まっている。

from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_pretrained(“CompVis/stable-diffusion-v1-4″, revision=”fp16″, torch_dtype=torch.float16, use_auth_token=”*************token”)

前の記事

LINE ビジネス (MessageAPI)

次の記事

Google広告