概要
前回はローカルでCPUを使って動かしたが、1枚に3分程度かかってしまい、数をこなすのは向いていなかった。
今回は、速度改善を目指して、Google ColabでAIイラスト作成を行う。
用語 | 説明 |
---|---|
Google Colaboratory | Pythonの実行環境を用意してくれており、ノートブックの単位でソースを管理できる。 |
ノートブック | 実行可能コードとリッチテキストを1つのドキュメント上で表したもの。GoogleDriveの「Colab Notebooks」ディレクトリに保存される |
Stable Diffision | AIお絵描きツール |
AUTOMATIC1111 | Stable Diffisionのパラメータ入力などを行いやすくしたWebGUI |
SukiyakiMix-v1.0 | StableDiffusionのおすすめモデルを紹介 | アニメ調イラストのクオリティを劇的に向上させるカスタムモデル より、今回使用した学習model |
Google Colabへの登録
画像生成AI「Stable Diffusion」を低スペックPCでも無料かつ待ち時間なしで使う方法まとめを参考にしていく。
Google Colaboratoryへアクセス。
公式サイトへアクセス
https://colab.research.google.com/?hl=ja
ログイン
ノートブックの環境確認
ノートブックを触るのは初めてなので、動作確認をした。
興味がない人は読み飛ばしても構わない。
ノートブックを新規作成
ノートブックの設定
- GPUを使用するように設定
ノートブックの位置確認
Googleドライブの「Colab Notebooks」ディレクトリに保存される。
環境の確認
動作確認として、下記コードを実行。Tesla T4
であることを確認。
書いたコードにマウスオーバすると出てくる 実行ボタンをクリックで起動できる。
同じノートブック上で行った環境設定はコードブロックが別でも引き継がれる。ランタイムのメモリサイズに注意。
!nvidia-smi
Sun Feb 26 04:12:54 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.85.12 Driver Version: 525.85.12 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 Tesla T4 Off | 00000000:00:04.0 Off | 0 |
| N/A 60C P0 28W / 70W | 0MiB / 15360MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
modelのダウンロード
StableDiffusionのおすすめモデルを紹介 | アニメ調イラストのクオリティを劇的に向上させるカスタムモデル より、Sukiyaki モデルを選んだ。
fp16とfp32があるが、Colabはメモリ制限があるため、fp16のほうを使用することとする。
GoogleDriveの MyDrive/StableDiffision/models/SukiyakiMix-v1.0-fp16.ckpt
にダウンロードしたファイルを保存した。
AUTOMATIC1111の準備
AUTOMATIC1111をGoogle Colabで使用する方法
より
完成したノートブック
Colab Note の確認
AUTOMATIC1111の公式リポジトリからmaintained by Akaibuのノートブックをコピーする。
Goolgle Driveの許可
コピーしたノートブックに追記していく。
GoogleDriveに保存したmodelを使うため、まずはノートブックからGoogleDriveへのアクセスを許可する。
下記をノートの先頭に入力して実行。
from google.colab import drive
drive.mount('/content/drive')
実行すると許可を求められるので、承認していく。
フォルダを確認すると、 drive
というフォルダが作成されていることが確認できる。
WebUIのダウンロード
GITHUBからAUTOMATIC1111のダウンロードを行う。
元のノートブックはmodelをダウンロードする設定となっているが、今回はGooleDriveに保存済なので、最後の3行をコメントアウトして実行する。
!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
%cd stable-diffusion-webui
#@title SD1.5
# get a token from https://huggingface.co/settings/tokens
#user_token = "" #@param {type:"string"}
#user_header = f"\"Authorization: Bearer {user_token}\""
#!wget --header={user_header} https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned.ckpt -O /content/stable-diffusion-webui/model.ckpt
Google Drive からmodelをコピー
下記を追記して実行
!cp /content/drive/MyDrive/StableDiffision/models/SukiyakiMix-v1.0-fp16.ckpt /content/stable-diffusion-webui/models/Stable-diffusion/
起動
なんとなくme:qwerty
(user:password
)を書き換えたが、これはどっちでもいいと思う。
!COMMANDLINE_ARGS="--share --gradio-debug --gradio-auth hoge:hugaHuga!" REQS_FILE="requirements.txt" python launch.py
実行すると、リンクが表示されるのでクリック。
AUTOMATIC1111のページが表示される。
画像の生成
パラメータの設定
パラメータの設定を参考に、パラメータを設定する。
項目 | 日本語 | 説明 |
---|---|---|
Sampling method | サンプラー | サンプラーを変更することで、ニュアンスの異なる画像を生成 |
Sampling steps | ステップ数 | 設定値が高いほど高精細な画像になりますが、生成時間が長くなります。100~120程度に設定するのが時間、精度を考慮するとバランスが良い |
Batch count | 生成枚数 | 枚数 |
CFG Scale | スケール | Guidance Scale(ガイダンススケール)。画像生成プロセスが入力されたプロンプト(呪文)にどれくらい忠実に描画を行うかを制御する.デフォルト値は7.5。1が設定された場合は、プロンプトは完全に無視。 |
Seed | シード | 同じパラメーター、プロンプト、シードを設定すると同じ画像が生成される。-1だとランダム |
パラメータ解説より。
実行
パラメータを下記のように入力し、「Generate」ボタンを押した。
30秒程度で1枚が出力された。
項目 | 値 |
---|---|
プロンプト | takamori aiko |
Sampling method | Euler a |
Sampling steps | 20 |
Batch count | 1 |
CFG Scale | 7 |
Seed | 10 |
以上!
2023.03.21 追記 LoRAを試す。
ソースコード修正
【保存版】Kohya版LoRAインストール&設定、WebUIでの使用法まで解説 キャラ学習手順備忘録 - 完成品を使用してみるを参考に、高森藍子さんのLoRA(AikoTakamoriV1.safetensors*)を設定してみた。
safetensors
ファイルをダウンロード後、グーグルドライブに配置。
modelのコピーに追記。
!cp /content/drive/MyDrive/StableDiffision/models/SukiyakiMix-v1.0-fp16.ckpt /content/stable-diffusion-webui/models/Stable-diffusion/
+ !mkdir -p /content/stable-diffusion-webui/models/Lora/
+ !cp /content/drive/MyDrive/StableDiffision/AikoTakamori/AikoTakamoriV1.safetensors /content/stable-diffusion-webui/models/Lora/
LoRAを使う
AUTOMATIC1111を再起動する。
Generateの下の花札ボタンを押すと、Loraを選べるようになるので、タブを選択。表示されているAikoTakamoriV1
をクリックすると、プロンプトに<lora:AikoTakamoriV1:1>
が入力される。最後の:1>
が強度で、ここを:0.8>
などにすることでLoRAの影響力をコントロールできる。
出力
後は通常通り、「Generate」ボタンをクリックで生成できる。
出力してみた結果とプロンプトを書いておく。
項目 | 値 |
---|---|
プロンプト | <lora:AikoTakamoriV1:0.8>, 1girl, single hair bun, brown hair, Long side locks, long bangs, black eyes, flat chest, soft expression smile, white background, simple background, blank background, simple flat background, green frills cardigan |
ネガティブプロンプト | nsfw, lowers, bad anatomy, bad hands, text error, bad hands, missing fingers, extra digits, fewer digits, cropped, worst quality, low quality, standard quality, signature, watermark, username, blurry, jpeg artifacts, Humpbacked , more than 2 thighs, The background is incoherent, disappearing arms, extra legs, mutation, {{bare shoulders}}, duplicate, cloned face, artifacts |
Sampling method | Euler a |
Sampling steps | 50 |
Batch count | 1 |
CFG Scale | 7 |
Seed | 74607907251615542 |
width | 512 |
Height | 730 |
参考
WindowsでPython知らないレベルの私でもStable Diffusionを動かせたメモ
画像生成AI「Stable Diffusion」をGoogle Colabで動かしたメモ
colab:AUTOMATIC1111で高速にモデルを切り替える
Google Colab で Stable Diffusion 2.0 を試す - diffusers版
Stable DiffusionをGoogle Colaboratoryで動かしてAI画像生成を試す
[Pythonプログラミング]Google Colabでstable diffusionを便利に使うテクニック
Colab版導入