Stable Diffusionのサンプルコード(text2img/img2img)をGoogle Colabで動かす方法
追記:簡単に動かせるNotebook作りました
より簡単に動かせるColab Notebookを作っています。Hugging Faceのアクセストークンさえあれば、手軽にWebアプリ感覚で使えます。以下GitHubリポジトリのリンクからどうぞ。
解説ブログは以下です。
Stable DiffusionをGoogle Colabで動かす
Stable Diffusion大人気ですね。公式が提供しているGoogle Colabノートブックで手軽に楽しむこともできます。
GitHubのStable Diffusionの公式のリポジトリを見ると、テキストから画像を生成するtext2img.pyの他ににも、画像からテキストの指示をもとに画像を生成(変換)するimg2img.pyなど色々なスクリプトがあります。
というわけで、これらのスクリプトをローカルPC無しでも自由自在に動かせるようなGoogle Colab環境を構築してみたいと思います。
Stable DiffusionをGoogle Colabで動かす
最初にHugging Faceの登録して、一度Google ColabでStable Diffusionを動かしてみましょう。以下のnote記事が分かりやすいので参考にして一通り実施しておいてください。これが動かせないと、この先は厳しいかもしれません。
Google Colabの詳しい使い方やテクニック等に関しては、以下記事も参照すると良いかもしれません。
Stable DiffusionモデルのGoogle Driveへのアップロード
Stable Diffusionモデルをダウンロードします。ダウンロードする方法は、Model Cardからダウンロードする方法と、gitを使う方法の2つがあります。Model Cardを使う方法が簡単です。
どちらの方法でも、あらかじめHugging Faceにユーザー登録をする必要があります。ユーザー登録はGigazineの記事がスクリーンショットが多く分かりやすいと思います。
Model CardからダウンロードDownload
ブラウザでアクセスします。
Download the weightsからsd-v1-4.ckptをクリックします。登録したHugging Faceのアカウント名とパスワードを入力したらダウンロードができます。
gitを使ってダウンロード
WindowsのWSL2環境かLinux、macOSのターミナルで実行してください。
最初にgit-lfsをインストールします。WSL2かLinuxなら以下コマンドを実行してください。
$ sudo apt update
$ sudo apt install -y git-lfs
Macの場合は以下コマンド実行してください。
$ brew install git-lfs
$ git lfs install
続いて、gitでモデルをリポジトリごとダウンロードします。モデルが大きいのでかなり時間かかります。
$ git clone https://huggingface.co/CompVis/stable-diffusion-v-1-4-original
以下のように4GBのモデルがダウンロードできていたらOKです。
$ ls -lh
total 8356136
-rw-r--r-- 1 karaage staff 11K 8 24 21:18 README.md
-rw-r--r-- 1 karaage staff 4.0G 8 24 21:25 sd-v1-4.ckpt
-rw-r--r-- 1 karaage staff 70K 8 24 21:18 v1-variants-scores.jpg
もし容量が小さかったらgit-lfsでバイナリをダウンロードできていません。冒頭のコマンドでgit-lfsをインストールして、以下コマンド実行することでモデルをダウンロードします。
$ cd stable-diffusion-v-1-4-original
$ git lfs pull
Google Driveへのアップロード
モデル(sd-v1-4.ckpt
)をダウンロードした後、Google Driveにアップロードします。場所はどこでも大丈夫です。ドラッグアンドドロップでアップロードしてください。
便宜上、この後は、Google Driveのトップフォルダにstable_diffusion
というフォルダを作成して、その直下にモデルを置いた前提で説明します。
Google Colabでサンプルソフトを動かす
リポジトリのサンプルコードを動かすためのGoogle Colabのノートブックを準備しました。
以下のGoogle Colabのノートブックを開いて、上から順に実行していくと、テキストからの画像生成や、画風変換ができます。
以下実行結果の抜粋です。
テキストからの画像生成
テキストでの画風変換
元画像
ゾンビ風(zombie)
浮世絵風(ukiyoe)
まとめ
Stable DiffusionをGoogle Colabで使い倒す方法をまとめてみました。すでにやっている人多いと思いますが、まともに手軽に動く手順とノートブックが見つけられなかったので自分でやってみました。
単純に画像やプロンプトを変えるだけでも遊べるのではないかと思います。コードが書ける人はこれをベースに便利に改造したり、新たなスクリプトを作成したりして遊べると思います。
公式の他のスクリプトや、新たに追加されるスクリプトも手軽に楽しめそうですね。私も色々試してみたいと思います。
参考リンク
関連記事
変更履歴
- 2022/08/28 Notebookに関して追記
- 2022/08/05 モデルのダウンロード方法に、Model Cardを使った方法を追記
Discussion
ありがとうございます!楽しいです!次はimage to image にもチャレンジしようと思います!