どのくらい動くかね…?
1.Pythonのインストール
まっさらな環境のノートPCなので、
Pythonあたりのインストールから手を付けていく。
Python公式ページ
次項目のPytorchの点が注意で、最新版をインストールしてしまうと
対応しているPytorchがなく、次の手順が詰まってしまう。
Pytorchの最新版はPython3.9あたりに対応しているらしいので、
古いバージョンのところから3.9を探して、それをインストールする。
「Download>Windows」から出てくるリリースノートから、
「3.9」とかで検索して、見つかったインストーラをダウンロードする。
3.9.12あたりを選択して、インストールした。
2.Pytorchのインストール
次にStableDiffusionの画像生成で使用するPytorchをインストールする。
通常ならGPUを使用するのでCUDA系でインストールなのだが、
今回はCPUオンリーの環境。
公式ページのオプション画面からPCの環境を選択して、
どのコマンドでインストールすればいいのかを調べる。
Pytorch公式ページ
今回はWindowsのPython、CPUオンリー
パッケージのインストールはpipコマンドを使用することにした。
なので、下記のような感じ。
インストーラをダウンロードして、gitのインストールを行う。
ここはまあ、大丈夫なんじゃなかろうか。
自分は普段使いのtortoiseGitもインストールして、
エクスプローラ上から使用できるようにするのが好きなので
tortoiseGitもインストールした。
tortoiseGit公式ページ
4.GithubからStableDiffusionWebUIをダウンロードする
ここまでやってようやくStableDiffusionWebUIの準備ができた。
先ずはGithubからパッケージをダウンロードする。
AUTOMATIC1111/stable-diffusion-webui
ここのリポジトリURLをコピーして、自分のPC上にダウンロードする。
5.「webui-user.bat」の編集
ダウンロードしたリポジトリファイルの中から
「webui-user.bat」を開いて編集する。
ダウンロード直後の状態だと、GPUで動作する前提の設定になっているためだ。
set COMMANDLINE_ARGS=
という所を編集していく。
下記のような感じ。
set COMMANDLINE_ARGS=--skip-torch-cuda-test --upcast-sampling --no-half-vae --use-cpu interrogate --precision full --no-half --medvram --xformers
ここで重要なのが「--skip-torch-cuda-test」と「--medvram」の指定。
「--skip-torch-cuda-test」はGPUで動作させないときに使用するオプション
このオプションによって、CPUオンリーでの動作になる。
(もちろん、GPU使用時より動作は遅い)
「--medvram」は少ないメモリで動作させるためのオプション
もっと少ないメモリのために「--lowvram」というオプションもあるのだが
動くかわりに動作が遅くなるようなので、medvramの方にした。
とりあえずこんな感じに編集して、「webui-user.bat」を保存した。
6.WebUIの起動
「webui-user.bat」をダブルクリックしてWebUIを起動する。
ここまでの設定が上手くいっていれば、venvの仮想環境が作られたのち
いろいろ必要なパッケージが仮想環境にインストールされて
WebUIが起動する。
起動出来たら一安心。
7.使用するモデルデータをダウンロードする
さて、起動したはいいが、起動時点では
画像生成に必要なモデルデータがなかったりする。
モデルデータがあるサイトにアクセスして、なんかデータをとってくる。
civitai
えっちなモデルデータもここにあるので、
そういう需要の時はそういうデータを探してダウンロードする。
今回は普通のAnythingV5をダウンロードした。
ダウンロードしたデータは「models>stable-diffusion」のフォルダに格納する。
「Stable Diffusion checkpoint」横の更新ボタンを押すと、
モデルデータの再読み込みが行われて、
プルダウンリスト内に置いたファイルが出てくると思う。
モデルデータは1つ1つがかなりデータサイズが大きいためか
切り替える際に時間がかかるときがある。
でも、以前より速くなったよね~。
8.TiledDiffusionをインストールする
おまけに近いけれど、TiledDiffusionのような
低メモリ上で動作させるときにサポートになるプラグインも入れる。
通常1枚の画像を生成するのに対して、
その1枚画像をタイル状に分割して、それぞれ別個に生成することで
1つ1つの生成は低メモリでできる…みたいなプラグインらしい。
「Extensions」のタブを開き、
その中にある「Install from URL」の欄からインストールする。
入力欄に下記のURLをセットする。
https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111.git
実行したあとは「Installed」のタブを開いて
「Apply and restart UI」のボタンを押す。
そうするとWebUIが再起動して、インストールしたプラグインが有効になる。
9.画像生成の実行
長かったがようやく画像生成ができるようになったので、実際に試してみる。
「txt2img」のタブを表示して、プロンプトに生成したい内容を記載する。
とりあえず、下記のような感じ。
1girl, white background
あとは、画像サイズや計算方法、計算回数みたいなところを設定して実行する。
さて、どうなるか。
10.結果
「Generate」ボタンから実行して画像生成してみます。
プロンプトは1girlだけ指定して、ネガティブプロンプトもまずはナシで。
...
......
………
なげええええええ
おっせえええええ
SamplingMethodを一番早い「Eular a」にしているのに全然終わらないっす
SamplingStepsも20程度なのに全然終わらないっす
普段使いしているGPUでの生成だと10秒くらいでいけるのにな~
そして、i core 3のノートPCはカリカリ悲鳴をあげ始めました。
待つこと10分くらい、
なんとか1枚出力できました。
プロンプトも少ないし、ステップ数も少ないせいか、
なんかもやっとしてますね。
そして、部屋がなんか焦げ臭い...
ノートPCの寿命縮めそうすね...
まあ、とりあえず出力することはできたってことでひとつ。
この辺の記事を上手く使えるなら
もうちょっとCPUオンリーでも早くなりそうですね。
でもCPU自体にもうちょっと性能が欲しいか...
【グラボなしで1秒画像生成】Stable Diffusionの高速版FastSD CPUで遊んでみた
というわけで、終了~。
できたーー!ありがとうです!!
返信削除よかったー!
削除