GPUの無いPCでStableDiffusionのインストールと実行時間の比較(AMDでもOpenvinoは動作しました)
開発環境の整っていない状態でインストールするのは手間がかかるので、ちょっと使うだけならwebサービスやアプリの方がいいと思っていますが、興味を満たすためだけにStableDiffusionをインストールしました。
現在の実行環境
その際に、Cudaを使わずCPUでの実行やOpenvinoのインストールを試した内容を備忘録として公開します。
GPUの無い環境の場合、Google Colaboratorを使うかOpenvino版を使うのが現実的です。
GPU無しでの環境構築
必要なアクセストークンの取得は事前に済ませて下さい。
Google Colaboratorを使った実行環境の構築
GIGAZINEに書かれている通りで何の問題も無く構築できます。
pip install diffusers==0.2.4 transformers scipy ftfy
YOUR_TOKEN="アクセストークン"
from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", use_auth_token=YOUR_TOKEN)
pipe.to("cuda")
prompt = "呪文"
image = pipe(prompt)["sample"][0]
image.save(f"ファイル名.png")
繰り返して作成(5回)
prompt = "呪文"
i = 0
while i < 5:
image = pipe(prompt)["sample"][0]
image.save(f"ファイル名" + str(i) + ".png")
i = i + 1
ローカルと違って、一度切断すると毎回モジュールのインストールが必要なので、頻繁に使う場合は少し手間がかかります。
cudaを使わずCPUにpipeして実行
「Google Colaboratorを使った実行環境の構築」と同様ですが、pipe.to(“cuda")をpipe.to(“cpu")に変更します。
pip install diffusers==0.2.4 transformers scipy ftfy
YOUR_TOKEN="アクセストークン"
from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", use_auth_token=YOUR_TOKEN)
pipe.to("cpu")
prompt = "呪文"
image = pipe(prompt)["sample"][0]
image.save(f"ファイル名.png")
ただし、実行時間がものすごく長くなります。
Openvino版のインストール方法(2022.9月時点)
Openvino版はアクセストークンが不要のため手軽に使えます。後、CPUはIntelでなくても使えます(うちはRyzen7 4800Hで問題なく動きました)。
GitはインストールしていないのとDockerを使うのも手間だったので、ここではそのままインストールしています。
Python 3.8のインストール
Openvinoが使えるPythonは3.8が最新のため、まずはMicrosoft StoreからPython 3.8をインストールします。
ファイルダウンロード
Gitを入れていないので、Zipファイルでダウンロードします。
Python 3.8で仮想環境構築・インストール
PowerShellで入力
#ワーキングディレクトリに移動
cd ワーキングディレクトリ
#pipのアップデート
python3.8 -m pip install --upgrade pip setupstools
#仮想環境構築
python3.8 -m venv .openvino
ダウンロードしたファイルの中身を仮想環境フォルダに移動
エクスプローラーで移動するだけです。
再びPowerShellで作業
#powershellの実行ポリシー変更(一時的・管理者権限不要)
Set-ExecutionPolicy RemoteSigned -Scope Process
#仮想環境に入る
.\Scripts\Activate.ps1
#*プロンプトが変わる
#PS C:\Users\○○○○\python\env\.openvino>
#↓
#(.openvino) PS C:\Users\○○○○\python\env\sd.openvino>
#モジュールインストール
python3.8 -m pip install -r .\requirements.txt
#実行(最初は時間かかる)
python3.8 demo.py --prompt "呪文" --output "出力ファイル名"
疑問点としては、モジュールが何故か仮想環境内にインストールされません…。なんででしょうか?
とりあえず使えるので気にせずこのままにしています。
注意点
NSFWフィルタを無効化できるかどうかは不明です。
おおよその実行時間(1枚あたり)
Google Colaborator:30秒
GPUはあってもメモリが少ない場合(単精度モデルを使用):15秒
cudaを使わずCPUにpipeして実行:50分!(CHUWI CoreBox)、35分(Ryzen7 4800H)
stable_diffusion.openvino:5分(CHUWI CoreBox)、3分(Ryzen7 4800H)
結論
cudaを使わずCPUで実行は、とんでもなく時間がかかるので実用性としては…?です。
Openvinoを使うと10倍高速になるので、GPUが無い場合はこちらが現実的だと思います。ただ、注意点に書いたようにNSFWフィルタを無効化できるかどうかは不明です。
その場合はGoogle Colaboratorを使っても一緒かな?とは思います。
ディスカッション
コメント一覧
まだ、コメントがありません