見出し画像

【日記#51】「Google Colab」+「Google Drive」+「Stable Diffusion」でモデルや設定の変更を保存してAI画像生成!!!


前置き

先日「Google Colab」について書いた時は動作確認的な感じだったため、モデルや設定が保存されない比較的簡単な方法で「Stable Diffusion」を動かしていました。

今回は「Googleドライブ」から参照して「Stable Diffusion」を動かす方法について書いて行きます!


本題(「Google Colab」+「Google Drive」+「Stable Diffusion」)

以下の記事を参考にしました。


そして、今回はGPUの中でコンピューティングユニットの消費が少ない「T4 GPU」で実行しました。



Googleドライブ連携(マウント)と作業ディレクトリの作成

まず、上記の記事から引用した以下のコードを実行すると、「Google Drive」のアクセス要求画面が出て、全てチェックしないとエラーが出るため、Googleを信じて全てチェックして「許可」か「続行」をクリックしましょう。

from google.colab import drive
drive.mount('/content/drive')
!mkdir -p '/content/drive/My Drive/SDUI/'
%cd '/content/drive/My Drive/SDUI/'
色々書いてあるけど、全てチェックしないとなぜか動かなかったです。
『Stable Diffusion web UI』Google ColabとGoogle Driveを連携 | つれづれげーむず
(https://tsurezuregames.jp/stable-diffusion-web-ui-4/)より引用
上記記事に掲載されている画像を見ると、一年前はチェックボックスがなかったようです。

そして、以下のように「Google Colab」の結果が表示されると思います。



「Stable Diffusion Web UI(AUTOMATIC1111)」のインストール

次に、以下のコードを実行して、
「Stable Diffusion Web UI(AUTOMATIC1111)」をインストールします。

!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui

実行すると以下のような結果が出力されると思います。



モデル、VAE、Loraのインストール

それぞれのインストールのコードは以下になります。

モデル(Beautiful Realistic Asians v7)

!curl -Lo /content/drive/MyDrive/SDUI/stable-diffusion-webui/models/Stable-diffusion/beautifulRealistic_v7.safetensors https://civitai.com/api/download/models/177164


VAE(vae-ft-mse-840000-ema-pruned)

!curl -Lo /content/drive/MyDrive/SDUI/stable-diffusion-webui/models/VAE/vae-ft-mse-840000-ema-pruned.safetensors https://civitai.com/api/download/models/311162


Lora(miko dressing)
「Stable Diffusion Web UI(AUTOMATIC1111)」インストール直後にLoraをインストールする場合、Loraフォルダがないため、初回のみ以下のコードを実行します。

!mkdir -p '/content/drive/MyDrive/SDUI/stable-diffusion-webui/models/Lora/'

その後、モデルとVAE同様の以下のコードでインストールできます。
「Stable Diffusion Web UI(AUTOMATIC1111)」起動後、又はLoraインストール2回目以降は以下のコードのみでLoraをインストールすることができます。

!curl -Lo /content/drive/MyDrive/SDUI/stable-diffusion-webui/models/Lora/miko_v10-10.safetensors https://civitai.com/api/download/models/73764


上記の3つを同時に実行すると以下のように表示されると思います。
(動作確認だけなら、モデルのみダウンロードでいいと思います。)


ちなみに、Googleドライブで該当のフォルダに直接アップロードしても反映されます。ローカルで「Stable Diffusion 」を使っていた方はこちらの方が楽だと思います。

ここにモデルを手動でアップロードしても大丈夫!



エラー回避のために「k-diffusion」、「PyTorch 2.3.0+cu118」、「xformers 0.0.23.post1+cu118」のインストール

このまま起動すると、エラーが出るので、あらかじめライブラリをバージョン指定等してインストールします。コードは以下になります。
1行目が「k-diffusion」
2行目が「PyTorch 2.3.0+cu118」および「Torchvision 0.18.0+cu118」
3行目が「xformers 0.0.23.post1+cu118」
のインストールコードになります。
実行すると2分くらいかかるので長く感じるかもしれません。

!git clone https://github.com/crowsonkb/k-diffusion content/drive/MyDrive/SDUI/stable-diffusion-webui/repositories/k-diffusion
%pip install torch==2.3.0+cu118 torchvision==0.18.0+cu118 --index-url https://download.pytorch.org/whl/test/cu118
%pip install https://download.pytorch.org/whl/cu118/xformers-0.0.26.post1%2Bcu118-cp310-cp310-manylinux2014_x86_64.whl

結果を全文載せると長くなるので最後あたりを掲載しますが、ログは以下の画像のようになっているかと思います。

それでも「PyTorch 」と「xformers」バージョンエラーが出る場合は、以下のサイトから合うバージョンを探してインストールしていただければと思います。



「Stable Diffusion Web UI(AUTOMATIC1111)」起動

以下のコードを実行して2分くらい待つと「Running on public URL」というURLが表示されるので、それをクリックすればWebUIが表示されるのですが、出てすぐクリックすると表示が崩れたりするので、「Model loaded in 〇〇s」というログが出るまで待ってからURLをクリックした方が不具合が出る可能性が低そうです。

%cd /content/drive/My Drive/SDUI/stable-diffusion-webui
!python ./launch.py --share --xformers --enable-insecure-extension-access

以下のように表示が崩れて、正しく動作しない場合でもブラウザの機能の再読み込みで治るかと思います。


「Running on public URL」をクリックして以下のように表示されれば成功です。

もはや実家のような安心感



動作確認

以下の画像を「PNG info」から「txt2img」に送信して生成することで、動作確認してみましたが、以前「Google Colab」で実行した際に生成された画像と同じような画像が生成されたので問題なく動作していると判断できます。

以前実行した際の日記のサムネと目測99%同一のように見えます。



User interface設定例(「SD VAE」「Clip skip」項目の表示)

そして、「SD VAE」「Clip skip」項目を追加しました。
以下の記事が参考になります。

上記記事の手順に従って実行すると、画面が以下のようにバグるかもしれませんが気にせず「Reload UI」をクリックすればちゃんと反映されるので大丈夫です!(しかし、なぜバグるのでしょうか…)

「Reload UI」クリック後の画像
しっかり反映されていることが確認できます。



「ControlNet」の追加(インストール)

定番の拡張機能「ControlNet」も追加して行きましょう。
以下の記事が参考になります。

上記記事の手順通り進め、「Apply and quit」をクリックした後以下の画面で固まった場合は

「Google Colab」でWebUIの起動に使用したセルを再度実行すれば以下のように反映されます。



ランタイム削除後、再度ランタイム接続して起動する場合(一旦休んで後日使う場合など)

「 PyTorch」と「xFormers」のバージョン設定が残らないようなので下記コードのように再びインストールして起動することでエラーが出ることなく起動できます。
(もしかしたら、それもGoogleドライブを参照しているのかもしれません。参照している場合はそれを書き換えることで対処できそうであるため、調べる機会があり次第追記します。)

%pip install torch==2.3.0+cu118 torchvision==0.18.0+cu118 --index-url https://download.pytorch.org/whl/test/cu118
%pip install https://download.pytorch.org/whl/cu118/xformers-0.0.26.post1%2Bcu118-cp310-cp310-manylinux2014_x86_64.whl
%cd /content/drive/My Drive/SDUI/stable-diffusion-webui
!python ./launch.py --share --xformers --enable-insecure-extension-access



No such file or directory: '/content/drive/My Drive/SDUI/stable-diffusion-webui'と表示される場合

ファイルタブを表示して、下記画像のGoogleドライブのロゴが描かれたフォルダのようなマークをクリックして手動でマウントすることで解決できると思います。

クリックすると以下のように、ポップアップが表示されるため「Google ドライブに接続」をクリックするとファイルタブに「drive」フォルダが表示されます。

これで再度実行すればエラーが出ないかと思います。



おまけ

今回、動作確認のために初めてLoraを使用しました。その際に生成した画像が以下になります。

思ったより調整が難しそうですが、しっかり巫女風Loraの影響を受けて巫女風の衣装になっております!
以下の記事を参考にしました。



あとがき

こんなに投稿が遅くなった理由は以下のエラーです。

WebUI起動時エラー

WARNING:xformers:WARNING[XFORMERS]: xFormers can't load C++/CUDA extensions. xFormers was built for:
    PyTorch 2.3.0+cu118 with CUDA 1108 (you have 2.3.0+cu121)
    Python  3.10.14 (you have 3.10.12)


xformersのエラー

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
xformers 0.0.23.post1+cu118 requires torch==2.1.2, but you have torch 2.3.0+cu118 which is incompatible.


PyTorchのエラー

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
torchaudio 2.3.0+cu121 requires torch==2.3.0, but you have torch 2.1.2 which is incompatible.
torchtext 0.18.0 requires torch>=2.3.0, but you have torch 2.1.2 which is incompatible.
torchvision 0.18.0+cu121 requires torch==2.3.0, but you have torch 2.1.2 which is incompatible.

上記エラーをよく読まないで、バージョンを適当に変更して何回も実行していましたら、WebUI起動時エラーを解決しようとしたらxformersのエラーが出て、xformersのエラーを解決しようとしたらPyTorchのエラーが出て、PyTorchのエラーを解決しようとしたら、WebUI起動時エラー出るみたいな感じで無限ループに陥っておりました。

https://www.playstation.com/ja-jp/games/echochrome/


以下の参考にしたサイトのバージョンのまま実行をくりかえしていたのが問題でしたね。


「エラーに詳しく書いてないだろ」と決めつけないで、しっかり読むべきでした。
反省です。


そして、実質2日分の日記になってますし、内容のフォーマットが日記っぽくないですが、そこらへんも含めて私のnoteでの日記の定義はゆるくやって行きたいと思いますので、ご了承いただければと思います。

https://undokaiwc.com/yuruverse/


それでは次の投稿もお楽しみに!!!


#日記 #note #毎日note #毎日更新 #毎日投稿 #note毎日更新
#画像生成 #画像生成AI #AI画像生成 #生成AI #AI
#StableDiffusion #GoogleColab

この記事が気に入ったらサポートをしてみませんか?