Stable Diffusion (2)

メモリー不足でStable Diffusionの実行が失敗した前回のWindows PCですが、Apple Siliconに変えて再びチャレンジです。

Stable Diffusion

まず、https://huggingface.co/ でアカウントを登録してTokenを取得します。

下記コードを参考にさせていただきました。

https://zero-cheese.com/10285/


512x512で出力されます。一枚出力するのに、大体1分ほどかかりました。気に入る画像が出力されるまで、待つ必要があります。

初期化時はmps(Metal Performance Shaders)を指定していますが、autocastは、cpuまたはcudaの対応であるためcpuにしています。
PyTorchは、mpsに対応しているのでMacで機械学習をするとき便利です。この世界nVIDIAの一強のためWindowsのみの選択肢になってしまいますが、わざわざ高価で消費電力も多い専用マシンを購入するまでもない場合、Macはいい選択肢になると思います。
前回、一応GeForce搭載のPCだったにもかかわらすメモリー不足で動かないことを思えば、遅くても動作する方がいいですね。

下記環境ですが、いろいろいじった結果ですので、不要のものもある可能性があります。(anaconda使用)

% pip list
Package Version
------------------------ ------------
accelerate 0.20.3
anyio 3.6.2
appdirs 1.4.4
appnope 0.1.3
argon2-cffi 21.3.0
argon2-cffi-bindings 21.2.0
arrow 1.2.3
asttokens 2.2.1
attrs 23.1.0
audioread 3.0.0
backcall 0.2.0
beautifulsoup4 4.12.2
bleach 6.0.0
boltons 23.0.0
certifi 2023.5.7
cffi 1.15.1
charset-normalizer 3.1.0
colorama 0.4.6
comm 0.1.3
conda 23.3.1
conda-package-handling 2.0.2
conda_package_streaming 0.7.0
contourpy 1.1.0
cryptography 40.0.2
cycler 0.11.0
debugpy 1.6.7
decorator 5.1.1
defusedxml 0.7.1
diffusers 0.16.1
executing 1.2.0
fastjsonschema 2.17.1
ffmpeg 1.4
filelock 3.12.0
fonttools 4.40.0
fqdn 1.5.1
fsspec 2023.5.0
gdown 4.7.1
huggingface-hub 0.14.1
idna 3.4
importlib-metadata 6.6.0
importlib-resources 5.12.0
ipykernel 6.23.1
ipython 8.13.2
ipython-genutils 0.2.0
ipywidgets 8.0.6
isoduration 20.11.0
jedi 0.18.2
Jinja2 3.1.2
joblib 1.2.0
jsonpatch 1.32
jsonpointer 2.0
jsonschema 4.17.3
jupyter 1.0.0
jupyter_client 8.2.0
jupyter-console 6.6.3
jupyter_core 5.3.0
jupyter-events 0.6.3
jupyter_server 2.5.0
jupyter_server_terminals 0.4.4
jupyterlab-pygments 0.2.2
jupyterlab-widgets 3.0.7
kiwisolver 1.4.4
lazy_loader 0.2
librosa 0.10.0.post2
llvmlite 0.40.0
lmdb 1.4.1
MarkupSafe 2.1.2
matplotlib 3.7.1
matplotlib-inline 0.1.6
mistune 2.0.5
mpmath 1.3.0
msgpack 1.0.5
nbclassic 1.0.0
nbclient 0.8.0
nbconvert 7.4.0
nbformat 5.8.0
nest-asyncio 1.5.6
networkx 3.1
ninja 1.11.1
notebook 6.5.4
notebook_shim 0.2.3
numba 0.57.0
numpy 1.24.3
packaging 23.1
pandocfilters 1.5.0
parso 0.8.3
pexpect 4.8.0
pickleshare 0.7.5
Pillow 9.5.0
pip 23.1.2
platformdirs 3.5.1
pluggy 1.0.0
pooch 1.6.0
prometheus-client 0.16.0
prompt-toolkit 3.0.38
psutil 5.9.5
ptyprocess 0.7.0
pure-eval 0.2.2
pycosat 0.6.4
pycparser 2.21
pydub 0.25.1
Pygments 2.15.1
pyOpenSSL 23.1.1
pyparsing 3.1.0
pyrsistent 0.19.3
PySocks 1.7.1
python-dateutil 2.8.2
python-json-logger 2.0.7
python-osc 1.8.1
PyYAML 6.0
pyzmq 25.0.2
qtconsole 5.4.3
QtPy 2.3.1
regex 2023.5.5
requests 2.31.0
rfc3339-validator 0.1.4
rfc3986-validator 0.1.1
ruamel.yaml 0.17.26
ruamel.yaml.clib 0.2.7
scikit-learn 1.2.2
scipy 1.10.1
Send2Trash 1.8.2
setuptools 67.7.2
six 1.16.0
sniffio 1.3.0
soundfile 0.12.1
soupsieve 2.4.1
soxr 0.3.5
stack-data 0.6.2
sympy 1.12
terminado 0.17.1
threadpoolctl 3.1.0
tinycss2 1.2.1
tokenizers 0.13.3
toolz 0.12.0
torch 2.0.1
torchvision 0.15.2
tornado 6.3.2
tqdm 4.65.0
traitlets 5.9.0
transformers 4.29.2
typing_extensions 4.6.0
uri-template 1.2.0
urllib3 2.0.2
wcwidth 0.2.6
webcolors 1.13
webencodings 0.5.1
websocket-client 1.5.2
wheel 0.40.0
widgetsnbextension 4.0.7
zipp 3.15.0
zstandard 0.19.0