詩と創作・思索のひろば

ドキドキギュンギュンダイアリーです!!!

Fork me on GitHub

Stable Diffusion を Colab で Web アプリ化する

Stable Diffusion が来てるねってことで貧者の GPU であるところの Colaboratory でいろいろ試したいのだけどノートブック上で Python のコードをこまごまいじりながら試行錯誤するのは微妙に体験が悪い。

ちょっとしたウェブサービスとして立てて実行できるとよいけれど、なかなかクラウドサービスも帯に短し襷に長しという感じで GPU を気軽に借りられるところはなさそうだ……と思ったら、Colab 上に HTTP サーバを立てられることを知ったので、その方法でやってみることにする。

やってみたソースは以下。

GitHub - motemen/stablediffusion-server-on-colab

README にあるノートブックを開いて Huggingface のトークンを埋め、GPU を選択して実行するとサーバが起動する。サーバが起動する前のセルに表示される https://localhost:5000 のようなリンクをクリックすると、簡単なウェブアプリケーションが起動して、入力した prompt から生成した画像を表示してくれる。画像をクリックすると prompt をファイル名とした画像をダウンロードできるので、ここから気に入ったやつだけ保存しておけばよい。

Colab の HTTP プロキシ機能は当該のリンクをクリックしたノートブックのユーザのみに見られるようにしているようなので、不用意にリロードしたりプロキシしたり他のユーザに見せたりすると 403 になってしまうのに注意。そうなってしまったら、port を変えて再実行するとよさそうである。手元で開発してたときに API だけサーバにプロキシしてたら突然 403 になってしまってハマった。

性質上、ノートブックを開いてる間しか使えません。取り急ぎ作ったものなので、ロード中の進捗表示やステップ数の調整機能くらいはつけたいですね。

はてなで一緒に働きませんか?