Jupyter NotebookでStable Diffusionを遊びたい(その1:ChilloutmixのNotebookを読んでみよう)
いま巷で話題のStable Diffusionですが、私もこれで遊んでみたいなと最近になって思い、お手軽にGoogle Colaborateでいろんな画像を出して遊んでいました。
ところが、今日も遊んでみようとGoogle Colaborateを開いたら と、GPUの使用料上限を超えてしまっており、Stable Diffusionで遊べませんでした。 (右下の「GPUなしで接続」をクリックして、GPUなしでソースコードを動かそうとしても、途中で「GPUがないよ!」とエラーが出てしまい、動かすことができません。)
GPUを使うためには、Google ColaborateのGPU制限が解除されるまで待つしかありませんが、いつ解除されるのか、そのルールはGoogleからは明示されていません。非公式情報では、24時間程度までば解除されるとありますが、よくわからないというのが正直なところです。
幸いにして私のノートPCはゲーミングPCなので、貧弱ではありますが一応GPUが積んであります。なので、Google ColaborateのGPU制限を気にせずにStable Diffusionで遊べるように、ローカルのJupyter NotebookでStable Diffusionを動かせる環境を作ってしまおうと思います。
コードは以下のGitHubからDLしておきます。 github.com
私はChilloutmixを使うので、chilloutmix.ipynbを実行しようとしましたが、Google Colaborateでは何の問題もなく実行できたのが、ローカルのJupyter Notebook (anaconda 3)ではエラーで止まってしまいました。
仕方ないので、Notebookの内容をひとつひとつ追ってみます。
最初の行の
!curl -Lo memfix.zip https://github.com/nolanaatama/sd-webui/raw/main/memfix.zip
は、Linixのcurl
コマンドと呼ばれるもので、client for URLからきています。
上のcurl
コマンドはオプションで
-L:リダイレクトに対応し
-O:URL先をダウンロードする(ここではmemfix.zip
というファイル名でダウンロードする)
と指示されているので、そのとおりに実行されます。
次の
!unzip /content/memfix.zip
も、Linuxコマンドunzip
で、先ほどダウンロードしたZIPファイルを解凍しています。
このNotebookはGoogle Colaborate用ですので、ダウンロードしたファイルは/content
ディレクトリの下にいます。
次の
!apt install -qq libunwind8-dev
は、apt
を使ったlibunwind8-devのインストールです。
オプションで-qq
が使われているので、ログの表示が最小限に抑えられています。
そのあとの
!dpkg -i *.deb
で、ダウンロードしたファイル内に含まれるすべtのdevファイルについてdpkg -i
でインストールをしています。
%env LD_PRELOAD=libtcmalloc.so
で環境変数をとおして、最後に
!rm *
でダウンロードしたファイルをすべて削除しています。