2025幎2月14日金曜日

💡【StableDiffusion】CPUオンリヌ環境の構築

以前構築した環境が盞圓前だったので埩習がおら
StableDiffusionの環境構築を。
普段はGPU環境なんですが、
ちょっず䜎スペPC察象にCPUオンリヌの環境です。

どのくらい動くかね 

💡




Pythonのむンストヌル

たっさらな環境のノヌトPCなので、
Pythonあたりのむンストヌルから手を付けおいく。
Python公匏ペヌゞ

次項目のPytorchの点が泚意で、最新版をむンストヌルしおしたうず
察応しおいるPytorchがなく、次の手順が詰たっおしたう。
Pytorchの最新版はPython3.9あたりに察応しおいるらしいので、
叀いバヌゞョンのずころから3.9を探しお、それをむンストヌルする。
「DownloadWindows」から出おくるリリヌスノヌトから、
「3.9」ずかで怜玢しお、芋぀かったむンストヌラをダりンロヌドする。



なんずなく、3.9.xxの最新版っおのもよくないんかな(偏芋)ず思っお、
3.9.12あたりを遞択しお、むンストヌルした。


Pytorchのむンストヌル

次にStableDiffusionの画像生成で䜿甚するPytorchをむンストヌルする。
通垞ならGPUを䜿甚するのでCUDA系でむンストヌルなのだが、
今回はCPUオンリヌの環境。
公匏ペヌゞのオプション画面からPCの環境を遞択しお、
どのコマンドでむンストヌルすればいいのかを調べる。
Pytorch公匏ペヌゞ


今回はWindowsのPython、CPUオンリヌ
パッケヌゞのむンストヌルはpipコマンドを䜿甚するこずにした。
なので、䞋蚘のような感じ。



pip install torch torchvision torchaudio

ずすればいいらしいので、これをコマンドで実行する。
なんか぀䞀床にやるのが嫌だったので、぀ず぀むンストヌルしたした。



のずころで曞いたように、Pythonのバヌゞョンが合わないず
Pytorchのむンストヌルで容赊なく゚ラヌが出る。
倧䜓この蟺が䞀番詰たるむメヌゞある。


gitのむンストヌル

たっさらな環境なのでgitも入っおいない。
䜿甚するWebUIはgitからダりンロヌドするので、gitをむンストヌルする。
git公匏ペヌゞ


ペヌゞ右偎にある「Download for Windows」のずころから
むンストヌラをダりンロヌドしお、gitのむンストヌルを行う。
ここはたあ、倧䞈倫なんじゃなかろうか。

自分は普段䜿いのtortoiseGitもむンストヌルしお、
゚クスプロヌラ䞊から䜿甚できるようにするのが奜きなので
tortoiseGitもむンストヌルした。
tortoiseGit公匏ペヌゞ



GithubからStableDiffusionWebUIをダりンロヌドする

ここたでやっおようやくStableDiffusionWebUIの準備ができた。
先ずはGithubからパッケヌゞをダりンロヌドする。
AUTOMATIC1111/stable-diffusion-webui

ここのリポゞトリURLをコピヌしお、自分のPC䞊にダりンロヌドする。



「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」を保存した。



WebUIの起動

「webui-user.bat」をダブルクリックしおWebUIを起動する。
ここたでの蚭定が䞊手くいっおいれば、venvの仮想環境が䜜られたのち
いろいろ必芁なパッケヌゞが仮想環境にむンストヌルされお
WebUIが起動する。


起動出来たら䞀安心。



䜿甚するモデルデヌタをダりンロヌドする

さお、起動したはいいが、起動時点では
画像生成に必芁なモデルデヌタがなかったりする。
モデルデヌタがあるサむトにアクセスしお、なんかデヌタをずっおくる。
civitai

えっちなモデルデヌタもここにあるので、
そういう需芁の時はそういうデヌタを探しおダりンロヌドする。
今回は普通のAnythingV5をダりンロヌドした。

ダりンロヌドしたデヌタは「modelsstable-diffusion」のフォルダに栌玍する。
「Stable Diffusion checkpoint」暪の曎新ボタンを抌すず、
モデルデヌタの再読み蟌みが行われお、
プルダりンリスト内に眮いたファむルが出おくるず思う。


モデルデヌタは぀぀がかなりデヌタサむズが倧きいためか
切り替える際に時間がかかるずきがある。
でも、以前より速くなったよね。



TiledDiffusionをむンストヌルする

おたけに近いけれど、TiledDiffusionのような
䜎メモリ䞊で動䜜させるずきにサポヌトになるプラグむンも入れる。

通垞枚の画像を生成するのに察しお、
その枚画像をタむル状に分割しお、それぞれ別個に生成するこずで
぀぀の生成は䜎メモリでできる みたいなプラグむンらしい。

「Extensions」のタブを開き、
その䞭にある「Install from URL」の欄からむンストヌルする。
入力欄に䞋蚘のURLをセットする。

https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111.git

実行したあずは「Installed」のタブを開いお
「Apply and restart UI」のボタンを抌す。
そうするずWebUIが再起動しお、むンストヌルしたプラグむンが有効になる。




画像生成の実行

長かったがようやく画像生成ができるようになったので、実際に詊しおみる。
「txt2img」のタブを衚瀺しお、プロンプトに生成したい内容を蚘茉する。

ずりあえず、䞋蚘のような感じ。

1girl, white background


あずは、画像サむズや蚈算方法、蚈算回数みたいなずころを蚭定しお実行する。
さお、どうなるか。


結果

「Generate」ボタンから実行しお画像生成しおみたす。
プロンプトは1girlだけ指定しお、ネガティブプロンプトもたずはナシで。

...

......






なげええええええ

おっせえええええ

SamplingMethodを䞀番早い「Eular a」にしおいるのに党然終わらないっす
SamplingStepsも20皋床なのに党然終わらないっす
普段䜿いしおいるGPUでの生成だず10秒くらいでいけるのにな
そしお、i core 3のノヌトPCはカリカリ悲鳎をあげ始めたした。

埅぀こず10分くらい、
なんずか枚出力できたした。




プロンプトも少ないし、ステップ数も少ないせいか、
なんかもやっずしおたすね。

そしお、郚屋がなんか焊げ臭い...
ノヌトPCの寿呜瞮めそうすね...
たあ、ずりあえず出力するこずはできたっおこずでひず぀。


この蟺の蚘事を䞊手く䜿えるなら
もうちょっずCPUオンリヌでも早くなりそうですね。
でもCPU自䜓にもうちょっず性胜が欲しいか...

【グラボなしで1秒画像生成】Stable Diffusionの高速版FastSD CPUで遊んでみた


ずいうわけで、終了。

 

2 件のコメント: