Google ColabでStable CascadeのImage Variationを動かす
2024/2/13にStabily AIから新しいアーキテクチャ「Würstchen」を用いた画像生成モデル「Stable Cascade」がリリースされました。
text-to-imageのコードは公式や他の方が紹介していますので、image-to-imageの新機能であるImage Variation(画像から別の画像を生成)をColab環境で試してみます。
モデルの準備
新機能を使用する為のコードはgithubのリポジトリ内のnotebookとして存在している為、まずは新しいノートブックを作成しGoogle Driveに接続します。この時はGPUの選択なしで大丈夫です。
# Google Driveのマウント
from google.colab import drive
drive.mount('/content/drive')
%cd '/content/drive/My Drive/'
次のコマンドでリポジトリをクローンします。
!git clone https://github.com/Stability-AI/StableCascade.git
次にmodelsフォルダに移動してモデルのダウンロードを行います。
%cd '/content/drive/My Drive/StableCascade/models'
!bash download_models.sh essential big-big bfloat16
現時点ではbfloat16かfloat32しか対応しておらず、ColabのGPUはA100がbfloat16に対応しているのみです。float32はT4、V100でモデルのセットアップ時にTensorのフォーマットサイズが違うと怒られて使えませんでした。詳細はGithubのReadMeを参照してください。
https://github.com/Stability-AI/StableCascade/tree/master/models
クローンしてきたノートブックから実行
続いてColabのメニューから「ファイル」→「ドライブで探す」でStableCascadeフォルダ→inferenceフォルダに移動し、「text_to_image.ipynb」を選択します。
GPUはA100を選択してください。
※要Colab Pro/Pro+
ノートブックが開いたら次のコードを先頭に追記します。
# Google Driveのマウント
from google.colab import drive
drive.mount('/content/drive')
%cd '/content/drive/My Drive/StableCascade'
# 必須ライブラリのインストール
!pip install -r requirements.txt
torch関係の依存関係がどうとか出てきますがこれは無視して大丈夫です。
次のコマンドで元のフォルダに戻っておきます。
# 元のコードを動作させる為にinferenceフォルダに戻る
%cd 'inference'
これ以降は元のコード(「import os」以降)を順次実行していくことになります。
ただし実行は「Load Config」「Load Extras & Models」までとし、「Optional: Compile Stage C and Stage B」のセルは実行しないでください。
このコードは推論速度を2倍にしてくれるらしいですが「torch.compile」を使用することでtritionとtorchのVerの相性(?)が問題で実行できなくなります。
「Load Extras & Models」まで実行したら「Image Variation」のセルを実行します。1つ目のセルが画像の読み込みで、2つ目のセルが実行です。
試しに私のX(旧Twitter)アイコンを変換してみましょう。
URL以外は受け付けてくれないようなので注意してください。
それでは2つ目のセル「caption = ""」以降のコードを実行します。デフォルトのサイズ(1024 x 1024)以外のサイズで実行する時は「height, width」の変更を忘れないようにしてください。
無事実行できました。
お疲れ様でした。