噂の画像生成AIソフト「Stable Diffusion」のインストール方法と使用例
デモサイトもある
セットアップが面倒な方、そもそもNVidiaのVGAを持っていない!等の方はこちらのデモサイトを利用すると良いでしょう。ただ混み具合によっては時間がかかることがあります。
Stable Diffusion - a Hugging Face Space by stabilityai
インストール
前提条件としてNVidiaのグラフィクスカードが必要なようです
ドキュメントURL
hugging faceのアカウントでのログイン(持っていない場合は作成)
「Usage」のセクションにある、以下の文章の中の「its card」というリンクをクリックする。
In this post we'll use model version v1-4, so you'll need to visit its card, read the license and tick the checkbox if you agree.
もしくは以下のページに直接飛ぶ。
CompVis/stable-diffusion-v1-4 · Hugging Face
飛んだ先にあるページの「Access repository」ボタンを押下する。
飛んだ先にあるページhugging faceにログインする。
(アカウントがなければここで作成してください)
アクセストークンの作成
このページに飛ぶ。
CompVis/stable-diffusion-v1-4 · Hugging Face
右上のアイコンから→Settingsを選択する。
左のメニューからAccess Token→New Tokenを選択。
Nameには適当な名前をつけ、Roleはreadのままトークンを作成する。
Pythonのインストール
最新版Python(現時点では3.10.6)をインストールする。
Download Python | Python.org
以下のページを参考にインストールする。
Windows版Pythonのインストール: Python環境構築ガイド - python.jp
Anacondaもインストールする必要があるかも?
Windows版Anacondaのインストール: Python環境構築ガイド - python.jp
CUDA Toolkit, cuDNN, pytorchのインストール
以下のページを参考にインストールする。
CUDA+cuDNNをインストールしPyTorchでGPUを認識させるまでの手順(Window11)
CUDA Toolkit(2022/8/24時点で最新11.7)はこちら。
cuDNNのインストール(CUDAと同様のバージョンを選択してインストールする)
ここはNVIDIAのアカウントが必要になるので、必要に応じて作成する。
https://developer.nvidia.com/rdp/cudnn-download
こちらも参考にしてください。
【NVIDIA】CUDAとcuDNNの導入手順(インストールとダウンロード) : ひまチュンの機械ブログ
CUDAが11.7なのでcuDNNも11.xを選択します。
上記ページの通りC:\tool\cuda配下に「bin」などのフォルダが来るように配置したら、環境変数Pathにパスを通します。
以下をコマンドプロンプトで実行して正しい結果が返るか(エラーにならないか)を確認しましょう。
where cudnn64_8.dll
PyTorchはCUDA 11.6を選んだんですが、なんかうまくいかないので11.3を選択。
以下のコマンドを実行する。
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
PyTorchがGPUを認識しているかどうかを確認するため、コマンドプロンプトで以下を順番に入力する。
conda activate pytorch
import torch
torch.cuda.is_available()
結果がTrueとなれば成功。
#True
必要なパッケージのインストール
以降、管理者権限のコマンドプロンプトでconda activate pytorchした上で、以下を実行する。
pip install diffusers==0.2.4 transformers scipy ftfy
Pythonのコード入力
import torch from diffusers import StableDiffusionPipeline pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", revision="fp16", torch_dtype=torch.float16, use_auth_token="上記で作成したアクセストークン")
初回はダウンロードでしばらく時間がかかる。
続いて
pipe = pipe.to("cuda") prompt = "a photograph of an astronaut riding a horse" from torch import autocast with autocast("cuda"): image = pipe(prompt)["sample"][0]
「a photograph of an astronaut riding a horse」の部分が生成したい画像の説明を入れる箇所。
imageの行は行頭にスペースが必要なので注意(pythonの文法上)
imageの行を入力してEnterを押した後、さらにEnterを押すと画像の生成が始まる。
当方Geforce 1060 (6GB)のため、かなり時間がかかった・・・。(2分くらい?)
画像の保存は以下のコマンドで行う。カレントディレクトリの画像が保存されます。
image.save(f"ファイル名")
再度画像を生成するときには
prompt="a beautiful mountain landscape" pipe = pipe.to("cuda") with autocast("cuda"): image = pipe(prompt)["sample"][0]
生成された画像
ただの宇宙飛行士が生成されてしまった。馬はどこへ?w
もう一つ、「a beautiful mountain landscape」で出力されたものがこちら。