MacBook Pro (Retina, Mid 2012)に、Stable Diffusion Web UIをインストールする。- 後編 -
前回、我が Macbook Pro (Retina, Mid 2012) に、画像生成AI Stable Diffusion Web UI をインストールしようということで、コリコリ動いていたのだが、インストールの前段階で、その処理に恐ろしいほど時間がかかったので、いったん区切りをつけた。
だから、今回はその続きであり、まず結論からいうと、我が Macbook Pro にも Stable Diffusion Web UI をインストールすることが出来ることがわかり、かつ正常に稼働する。では簡単に、続きの道のりをたどろう。
- Github のリポジトリをクローンする
- 作成されたstable-diffusion-webui フォルダに「学習モデル」を追加する
- 実行とインストール
- エラーの対処法
- 画像生成の実行
- Half floatsの計算に対応してないエラー
Github のリポジトリをクローンする
前編において、Stable Diffusion のフォルダをインストールしたい場所を指定し、Github のリポジトリをクローンし始めたのだが、かなりの時間を要した。ターミナルがフリーズしたのかと思い、何度かリセットを試みようと思ったのだが、そこをグッと堪えて待つことおよそ5時間、いや6時間くらい経った頃、次の段階へ進むためのチケットがテーブルの上に置かれていた。
もしかするとぼくと同様の環境で Stable Diffusion Web UI をインストールしようと思っている方がいるかもしれないので、念のためここに記す。この段階の処理に、とてつもなく時間がかかることを念頭に置いておいて欲しい。
途中で諦めてはいけない。ぼくは何度も諦めかけた。でも必ず道は開かれるはずだ。
作成されたstable-diffusion-webui フォルダに「学習モデル」を追加する
stable-diffusion-webui フォルダが作成されたら、画像生成のための学習モデルをダウンロードして、追加してゆく。
Stable Diffusionの学習モデルデータを配布しているWEBサイトには、ぼくの知る限りだと以下の2つ、このWEBサイトでモデルを選び、ダウンロードすることができる。
・CIVITAI
・Hugging Face
WEBサイトからダウンロードした .ckpt ファイル、または .safetensors ファイルを stable-diffusion-webui/models/Stable-diffusion フォルダに移動する。
これで準備は整った。
実行とインストール
まずターミナルで stable-diffusion-webui フォルダに移動し、
cd ~/stable-diffusion-webui
実行してインストールする。初回はインストールされるので少し時間がかかる。
./webui.sh
出力が止まって 「http://127.0.0.1:7860/」 と表示があれば、ひとまず成功。おそらくだが自動でブラウザが起動し、Stable Diffusion Web UI が立ち上がる。しかしながら道のりに困難はつきもので、実行中にエラーが発生して、インストールが止まってしまう。
エラーの対処法
エラーの対処方法を探して海外のサイトを見まくっていたのだけれど、なかなか解決せずワインを飲み出すことに。
とあるサイトに「ターミナルに以下のコードを入力すれば、いけるよ」とひとこと書かれていたので、それを実行したところ、ついに Stable Diffusion Web UI が立ち上がる。
ただ、かなりワインを飲んだ後にそのサイトを見つけて実行したので、どんな検索ワードでどこのサイトを見たのかが、数日たった今まったく思い出せない・・・。ターミナルに表示されたエラーコードをもとに検索していたので、たぶん誰でも解決策は見つけられるだろう、たぶん。
画像生成の実行
そんなわけで、当初自分の環境では Stable Diffusion Web UI のインストールは無理なんだろうなあと思っていたのだが、いくつかの困難の末、インストールを完了することができて、ワインを飲んでいる勢いも加わり、しばらくかなり高いテンションで喜ぶ。
早速、そのままの勢いで画像生成に取り掛かるが、ここでまたエラー・・・。
Half floatsの計算に対応してないエラー
このエラーも、ワインのおかげで詳細を忘れてしまったのだが、おそらく以下のものだと記憶している。
RuntimeError: “LayerNormKernelImpl” not implemented for ‘Half’
つまりぼくの環境のグラフィックカードがhalf floats(半精度浮動小数点数)の計算に対応してないらしい。ということで、webui-macos-env.sh の COMMANDLINE_ARGS に以下を追加する。
--precision full --no-half
すると、なんと、我が環境で Stable Diffusion が動き出す。
感動だった。
ただし、やはりマシンスペックの低さ問題があり、小さな画像生成にも軽く10分20分を要する。
短編映画を制作するためには、やはり新たにハイスペックのMacbook Pro 購入を検討しなくてはいけないか。しかしひとまず、初めの一歩は踏み出せたので、さらに先に進もう。今回は、別途進めている短編映画の構築段階の初期プロットをもとに画像を生成したので、最後に公開しておきたい。