SBクリエイティブ

正誤情報

画像生成AI Stable Diffuson スタートガイド

2024.05.20
対象書籍
画像生成AI Stable Diffusion スタートガイド
  • Github でのPrevier表示エラー時の対応

Github上でのjupyter notebookの表示にエラーが発生した場合Previerが正常に表示されません。

問題の解決にはGithub側の復旧対応が必要となるため、各Colabノートブックへの移動は以下のリンクから行ってください。

p14 Fooocus 日本語アニメ特化版

p42 Artist-Guide-for-SDXL

Chapter6-3 AICU版 Lora Trainer by Hollowstrawberry

 

  • 初版第1刷発行 p46 Section2-2 Google Colab での環境構築

Google Colab で Stable Diffusion を実行する

④モデル(画像生成AIの核になる巨大なファイル)をダウンロード

スクリーンショットではコードセル[Model Download/Load]の1段目が[animagine-xl-3.0]となっていますが、デフォルトの[SDXL]のまま進めて下さい。

また、環境構築のテストが終了し他のモデルを使用したい場合は以下の操作を行ってください。

 

【補足情報】Colabノートブックで使用するモデルを変更したい場合

コードセル[Model Download/Load]の3段目[MODEL_LINK]のテキストボックスに使用したいモデルファイルのリンクを入力してからコードセルを実行します。

 

例えばp84の例で使用している[animagine-xl-3.0.safetensors]はモデルが公開されているHugging Faceのページにアクセスして、モデルファイル[animagine-xl-3.0.safetensors]のリンクをコピー&ペーストして使用することができます。

 

モデルへのリンクは自身のGoogle DriveにColabノートブックをコピーして、上書き保存することで保存することができます。

また、モデルファイルそのものをGoogle Driveに保存して使用する場合はp66の手順を確認してください。

 

  • 初版第1-2刷発行 p155 Section6-3 自分の画風LoRAを作る

LoRA 学習用の環境を準備しよう

Google Colabの仕様変更に伴い、書籍で解説していたColabノートブックを現在メンテナンス中です。

当面の移行先として、AICU版 Lora Trainer by Hollowstrawberry を使用してください。ここではその操作方法を解説します。

 

上記のリンク先のGitHubページから[Open in Colab]ボタンを押し、Colab ノートブックを開きます。

 

Colab ノートブックが開いたら、まずは[ファイル]→[ドライブにコピー]ボタンを押して、自身のGoogle Driveに保存します。続いて、[ランタイム]→[ランタイムのタイプを変更]より高速な処理ができる[A100 GPU]もしくは[L4 GPU]を選択します。時間に余裕がある場合は、これまで同様に[T4 GPU]を選択したままで問題ありません。

 

コードセル[データセットの準備]では、書籍で紹介しているサンプルデータセットをダウンロードする必要がある場合に実行します。手持ちに学習させる画像がない場合はこのサンプルを使用してください。

 

サンプル以外の画像を学習させる場合は、このセルは実行せずにあらかじめ学習用の画像をGoogleドライブにアップロードし、[/content/drive/MyDrive/Loras/任意のプロジェクト名/dataset]というフォルダを作成し画像を保存しておきます。

▲[任意のプロジェクト名]はスペースを除く半角英数字で設定してください。

 

ノートブックの実行確認および、Googleドライブへのアクセスを求められた場合はどちらも許可して進めます。

 

  • コードセル[Start Here]

コードセル[Start Here]は学習に必要な設定を1つのコードセルで指定し実行します。既に奨励される設定の値が設定されているため、[Setup]の項目で学習素材のフォルダを指定して[コードセルの実行]をクリックするとすぐにLoRAファイルの作成を行うことができます。作成されたLoRAファイルの結果を確認し、細かな調整を行いたい場合は変更する設定の役割を確認しながら調整を行ってください。

▲設定の役割はここで公開している【補足情報】や書籍のコラムを参照してください。一度に複数の設定を変更するのではなく、作成したLoRAが目的にあっていない場合に調整を加えていくことをおすすめします。

 

全ての設定が完了したら[コードセルを実行]をクリックして必要なダウンロードと学習が終わるのを待ちます。学習が完了すると[/content/drive/MyDrive/Loras/任意のプロジェクト名/output]フォルダにLoRAファイルが保存されます。このファイルはSection2で使用したLoRAと同様に使用することができます。

 

【補足情報】コードセル[Start Here/Setup]

ここでは学習に利用する画像とモデルを設定します。

1段目[project_name]は学習素材を保存したファイルを指定します。 画像を保存した[/content/drive/MyDrive/Loras/任意のプロジェクト名/dataset]の[プロジェクト名]部分を入力します。

2段目[folder_structure]では学習元となる画像を保存したフォルダを指定しています。[Organize by project]のまま変更の必要はありません。

3段目[training_model]では学習時に使用するモデルファイルを選択します。イラスト/アニメ風の画像の学習には[AnyLoRA]、実写風の画像の学習には[Stable Diffusion]を選択します。

▲選択肢にないモデルを使用したい場合は、5段目[optional_custom_training_model_url]にモデルのパスを入力します。さらにそれがSD2.1シリーズの場合は[custom_model_is_based_on_sd2]にチェックを入れておきましょう。

 

【補足情報】コードセル[Start Here/Processing]

ここでは学習前の画像の正規化およびアノテーションを設定します。考え方はP154の[データセットの正規化を行おう]、P160の[学習データの前処理を行おう]を参照してください。

1段目[resolution]は学習する画像の解像度を指定しています。SD1.5シリーズの学習では512pxの画像が使用されていますが、より高解像度(~1024px)で正規化を行っている場合はこの数値をその値に合わせます。解像度が高くなると学習にかかる時間は長くなります。

2段目[flip_aug]は画像の左右反転をオンにするオプションです。学習用の画像が20枚以下で、正規化時に左右反転を行っていない場合はオンにします。

3段目[shuffle_tags]は学習時にタグ付け結果の順番を入れ替える設定です。オンにしておくことでより効率的な学習ができるようになります。

4段目[activation_tags]は3段目[shuffle_tags]に関連し、前からいくつまでのタグの順番を入れ替えないか指定します。この前に固定しておくタグはLoRA使用時に入力することでLoRAの強度を高める役割があります。

 

【補足情報】コードセル[Start Here/Steps]

ここでは学習時の繰り返し設定を指定します。考え方はP167のコラムを参照してください。

1段目[num_repeats]はEpochsあたりの学習の繰り返し数を指定します。

2段目[preferred_unit]は繰り返し数の指定単位を選択します。本書では[Epochs]を選択した場合での考え方を解説しています。

3段目[how_many]では2段目で選択した単位での繰り返し数を指定します。

4段目[save_every_n_epochs]は指定したEpochs数ごとにLoRAファイルを保存する設定です。[1]を選択すると毎Epochsごとに保管することができます。

5段目[keep_only_last_n_epochs]は直近のEpochsから指定した範囲の分までのみLoRAファイルを保管しておくか設定することができます。

6段目[train_batch_size]は同時に学習する画像の枚数(batch_size)を指定します。

 

【補足情報】コードセル[Start Here/Learning]

ここでは学習時の各ユニットへの学習率と学習に利用するノイズの設定を指定します。

1段目[unet_lr]はUnetへの学習率を設定します。

2段目[text_encoder_lr]はテキストエンコーダーへの学習率を設定します。

3段目[lr_scheduler]は学習に使用するスケジューラーを指定します。

4段目[lr_scheduler_number]はスケジューラーのリスタート数を指定します。

5段目[lr_warmup_ratio]はwarmup方式のスケジューラーを指定した際に、全ステップ数の何パーセントをwarmupにするかを指定します。

6段目[min_snr_gamma]はLoRAファイルの学習時に使用するノイズ強さのばらつきを補正するオプションオンです。

▲[lr_warmup_ratio]について詳しく知りたい場合はノートブックのリンクから確認することができます。

 

【補足情報】コードセル[Start Here/Structure]

このコードセルの設定内容は本書では取り扱っていませんので、ノートブックに記載されている奨励設定のままで使用することをおすすめします。

1段目[lora_type]ではLoRAもしくはその派生であるLoConから作成するファイルを選択することができます。

 

この記事をシェアする