Jetson Nano 2GBで Stable Diffusion ~技術スタック編~
はじめに
最初にお伝えしますが、この記事は技術スタックについて書いており、Stable Diffusion を実行できる環境は構築できていません。
この記事ではStable Diffusion を使用する上での問題点。改善点を書いています。
前提
前提としてこの記事でのセットアップを前提としています。特にJetpack4.6.1
を使用していることに注意してください。
方針
Jetson Nano 2GB での環境構築は基本的にはdocker
を使用します。
動かすモデルは以下のモデルです。
https://huggingface.co/andite/pastel-mix
このモデルを動かすには次のライブラリが必要です。
- transformers
- diffusers
お互いに対応するバージョンをインストールする必要があります。今回はバージョンを固定します。
- transformers=0.12.0
- diffusers=4.19.2
問題点
以下に具体的な例を示していますが、実際にStable DiffusionをDocker
のJupyterLab
で使用してみてわかったことですが、使用できるDocker
が見つからない!
失敗例1
Docker
のイメージは以下のものを使用しました。
https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-ml
このイメージはここに書かれている通り、以下のライブラリが初めからインストールされています。
- TensorFlow 1.15.5
- PyTorch v1.10.0
- torchvision v0.11.0
- torchaudio v0.10.0
- onnx 1.11.0
- CuPy 9.2.0
- numpy 1.19.5
- numba 0.53.1
- OpenCV 4.5.0 (with CUDA)
- pandas 1.1.5
- scipy 1.5.4
- scikit-learn 0.24.2
- JupyterLab 2.2.9
JupyterLabがインストールされているためWebで実行できることがわかります。
しかし、このバージョンではtransformers=0.12.0
、diffusers=4.19.2
がインストールできるPythonのバージョンではないため実行することはできませんでした。
失敗例2
Docker
のイメージは以下のものを使用しました。
https://catalog.ngc.nvidia.com/orgs/nvidia/resources/merlin_pytorch
今回はtransformers=0.12.0
、diffusers=4.19.2
をインストールできました。しかし、実行してみるとCUDA
実行することができませんでした。
Dockerイメージの説明ページをみるとJetpackに関する記載や環境変数に関する情報がありませんでした。
おそらくdocker
のイメージがJetpack4.6.1
に対応していないためであると思われます。
今後の方針
今回でStable DiffusionをJetson Nano 2GBで実行するために必要なことが明確になりました。
transformers=0.12.0
、diffusers=4.19.2
がインストールできるPythonのバージョンCUDA
が実行できるようなDocker
の設計(環境変数、NVIDIA Driverなど)
自分にはDockerの知識が欠けているのでDockerをマスターすれば以上のことが解決しそうです。