初めてNxバックエンド勉強会で発表したのでその内容をまとめる。
Stable Diffusion(画像生成AI)をローカルインストールして実行してみた
実行した環境は
- windows11 pro
Intel(R) Core(TM) i9-12900
GPU なし - mac book pro
2019 model intel core i9
GPU なし - ubuntu20.04
GPU Nvidia GeForce RTX 3070
以上の三つの環境でStable Diffusionを動かした。
用いたgithub
こちらのgithubを使って実行した。詳しい説明はしないが、README.mdの通りにやっていきながらエラーが出たらpipやcondaでインストールをしていきながら進むと実行できる。
私の環境だと、windowsとmacはpipでインストールをしてubuntuではcondaでやっていくとうまくいった。
またubuntuでGPUを使うときはcudaをインストールして実行する。
実行結果
実行したコマンドは忘れてしまったがだいたいイメージとあった画像が出てきてくれている!
精度良い画像をだしたかったので以下のサイトを使った。
ここで気になったのが実行スピードだ。
実行結果比較
-
windows11 pro Intel(R) Core(TM) i9-12900
2分45秒 -
mac book pro 2019 model intel core i9
7分30秒 -
ubuntu20.04 GPU Nvidia GeForce RTX 3070
20秒
この結果を見るとGPUの凄さがわかる。
なぜNx勉強会に参加したか
このStable Diffusionをelixirで実行してみようとしているからだ。
Axonを使ってみたところ出来そうだと感じた。
このようにモデルを簡単に可視化できるのでとても便利だ。
model =
input
|> Axon.dense(128, activation: :relu)
|> Axon.batch_norm()
|> Axon.dropout(rate: 0.8)
|> Axon.dense(64)
|> Axon.tanh()
|> Axon.dense(10)
|> Axon.activation(:softmax)
またこのようにmodelをパイプラインで繋ぐことができるのでとても気持ちがいい。
そしてAxonOnnxというライブラリがあり、onnxの学習済みデータがあるので実行してみたいという発表で終わった。