🎨

Stable Diffusionのサンプルコード(text2img/img2img)をGoogle Colabで動かす方法

2022/08/25に公開
1

追記:簡単に動かせるNotebook作りました

より簡単に動かせるColab Notebookを作っています。Hugging Faceのアクセストークンさえあれば、手軽にWebアプリ感覚で使えます。以下GitHubリポジトリのリンクからどうぞ。

https://github.com/karaage0703/stable-diffusion-colab-tools

解説ブログは以下です。

https://karaage.hatenadiary.jp/entry/2022/08/29/073000

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記事が分かりやすいので参考にして一通り実施しておいてください。これが動かせないと、この先は厳しいかもしれません。

https://note.com/npaka/n/ndd549d2ce556

Google Colabの詳しい使い方やテクニック等に関しては、以下記事も参照すると良いかもしれません。

https://karaage.hatenadiary.jp/entry/2018/12/17/073000

Stable DiffusionモデルのGoogle Driveへのアップロード

Stable Diffusionモデルをダウンロードします。ダウンロードする方法は、Model Cardからダウンロードする方法と、gitを使う方法の2つがあります。Model Cardを使う方法が簡単です。

どちらの方法でも、あらかじめHugging Faceにユーザー登録をする必要があります。ユーザー登録はGigazineの記事がスクリーンショットが多く分かりやすいと思います。

Model CardからダウンロードDownload

ブラウザでアクセスします。
https://huggingface.co/CompVis/stable-diffusion-v-1-4-original#download-the-weights

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のノートブックを開いて、上から順に実行していくと、テキストからの画像生成や、画風変換ができます。

https://colab.research.google.com/drive/1PgoWochApz8sVgh9f--geSPTDHlfiI2K?usp=sharing

以下実行結果の抜粋です。

テキストからの画像生成

テキストでの画風変換

元画像

ゾンビ風(zombie)

浮世絵風(ukiyoe)

まとめ

Stable DiffusionをGoogle Colabで使い倒す方法をまとめてみました。すでにやっている人多いと思いますが、まともに手軽に動く手順とノートブックが見つけられなかったので自分でやってみました。

単純に画像やプロンプトを変えるだけでも遊べるのではないかと思います。コードが書ける人はこれをベースに便利に改造したり、新たなスクリプトを作成したりして遊べると思います。

公式の他のスクリプトや、新たに追加されるスクリプトも手軽に楽しめそうですね。私も色々試してみたいと思います。

参考リンク

https://zenn.dev/mosku/articles/78a457bf12d925

関連記事

https://karaage.hatenadiary.jp/entry/2020/12/11/073000

https://karaage.hatenadiary.jp/entry/2022/08/19/073000

https://zenn.dev/karaage0703/scraps/f84c98a8b78290

変更履歴

  • 2022/08/28 Notebookに関して追記
  • 2022/08/05 モデルのダウンロード方法に、Model Cardを使った方法を追記

Discussion

toshi0830toshi0830

ありがとうございます!楽しいです!次はimage to image にもチャレンジしようと思います!