【Stable Diffusion】ローカル環境でLoRAを作成。SDXLにも対応!Kohya’s GUIの導入方法と使い方

今回はLoRAをローカル環境で訓練して学習させる方法について解説します。今最もメジャーでトラブルの少ないKohya’s GUIを使ってLoRAを作成していきます。Kohya’sはSDXLにも対応していて訓練時の設定を変更するだけでv1.5や2.0など簡単にバージョンの切り替えができるので本記事を読むことですべてのバージョンに対応したLoRAの作成方法について理解できることでしょう。

Kohya’s GUIとは?LoRAを訓練させるツール。SDXLにも対応!

Kohya’s GUIはLoRA学習用のツールです。LoRAの学習といえばKohyaさんというぐらいに著名な方が作ったツールです。ちなみにKohyaさんは日本人みたいです。Kohya’s GUIはStable Diffusion v1.5や2などの従来のStable Diffusion ModelだけではなくSDXLにも対応しています。Kohya’s GUIはStable Diffusion Web UIと外観は似ていますが独立したツールです。インストールは、とても簡単です。

Kohya’s GUIのインストール

まずはコマンドプロンプトを開きます。そしてKohya’sをインストールするフォルダへ移動します。

cd C:\Users\<ユーザー名>\<適当なディレクトリ>

そしてKohya’s GUIのソースコードを取得します。

git clone https://github.com/bmaltais/kohya_ss.git

kohya_ssのフォルダに移動してインストーラー(setup.bat)を起動します。インストーラーはkohya_ssの仮想環境を作成して、仮想環境内にkokya_ssに必要なソフトウェア群をインストールします。仮想環境とはKohya’s GUIだけが利用できる環境のようなものです。仮想環境作成するとローカル環境に変更を加えることがないため安心です。

cd kohya_ss
.\setup.bat

setup.batを起動すると次のような画面が表示されると思います。

まずは1を選択します。1はkohya_ss guiに必要なソフトウェア群が仮想環境にインストールするという選択肢です。するとPytorchのバージョンを聞かれるので2の(Torch 2)を選びましょう。するとインストールが開始されます。10分程度でインストールが完了するので待ちましょう。

インストールが完了したら次のようにメニュー選択に戻ります。

ここまででKohya’s GUIが起動可能になっています。5を起動しても良いですが、RTX30X0系やRTX 40X0系のGPUの場合2番目のcudannを利用することで効率化できるます。

選択肢2: cudannをインストール

Windows ユーザーの場合

cudannですが2を選択してもWindowsユーザーの場合は次のようなエラーが発生します。

ERROR    Installation Failed: "C:\Users\foo\kohya_ss\setup\..\cudnn_windows" could not be found.

公式サイトには次のような記載があります。

Please note that the CUDNN 8.6 DLLs needed for this process cannot be hosted on GitHub due to file size limitations. You can download them here to boost sample generation speed (almost 50% on a 4090 GPU). After downloading the ZIP file, follow the installation steps below:

bmaltais/kohya_ss (github.com)

次のファイルをダウンロードして展開するとcudann_windowsを展開してkohya_ss配下に配置します。

https://github.com/bmaltais/python-library/raw/main/cudnn_windows.zip

あとはsetup.batを起動して2を選択するとcudannがインストールできます。一瞬で完了します。

LinuxもしくはMacユーザー

LinuxやMacユーザーもcudannのインストールには準備が必要です。

  • python3.10-venvをインストールします。
apt install python3.10-venv
  • cudaNNドライバーのインストーラーを以下のリンクからダウンロードしてインストールします。

CUDA Toolkit 12.2 Update 2 Downloads | NVIDIA Developer

  • Python 3.10.6以降がインストールされていることを確認。

選択肢4: アクセラレータの設定

メニューの4番目であるアクセラレータの設定を行います。4を押します。あとは次のように設定します。

  • In which compute environment are you running?: This machine
  • Which type of machine are you using?: No distributed training
  • Do you want to run your training on CPU only (even if a GPU / Apple Silicon device is available)? [yes/NO]: NO
  • Do you wish to optimize your script with torch dynamo?[yes/NO]: NO
  • Do you want to use DeepSpeed? [yes/NO]: NO
  • What GPU(s) (by id) should be used for training on this machine as a comma-seperated list? [all]: all
  • Do you wish to use FP16 or BF16 (mixed precision)?: bf16※RTX30X0系もしくはRTX40X0系以外の場合はfp16にしましょう。

データセットの作成

次はデータセットの作成を行います。データセットの作り方については次の記事で詳しく解説しているので参考にしてください。次のようなフォルダ構成でデータセットが作成されます。

./doraemon/
├── img
│   └── 5_doraemon
│       ├── 1.jpg
│       ├── 1.txt
│       ├── ...
└── reg※正則化画像。空でOK

【2023/9最新版】StableDiffusionのLoRAで学習させる。データセットの作り方からColabでの学習まで完全解説 – 禁断のAI (kindanai.com)

Kohya’s GUIの使い方: LoRAを作成する

LoRAの作成ですがDreamboothがメジャーです。Traningメニューの設定を行います。

Source modelの設定を行います。

  1. Model Quick Pickは公式のSD モデルになっていますがモデルを選択する場合はcustomを選択します。
  2. Pretraned model name or pathではベースになるStable Diffusion modelを選択します。ファイルの方のアイコンをクリックしてモデル(.safetensors,.ckpt)を設定します。
  3. SDXLやv2などのLoRAを作成したい場合はSDXL Modelやv2などにチェックを入れます。

タブをFoldersに切り替えます。

  1. Image folder: imgフォルダを選択します。(doraemon/img)
  2. Regularisation folder: regフォルダを選択します。(doraemon/reg)※空の場合は空欄にしてください。
  3. Output folder: LoRAが出力されるフォルダを選択します。任意のフォルダで良いですがStable Diffusion Web UIのLoRAファルダにしておくと確認のためにいちいち動かす手間が省けるのでおすすめです。
  4. LoRAの名前を設定します。プロンプトで使用するLoRAの名前になります。

Prametersタブに移動します。ここではEpochを5に指定するのがおすすめです。Epochはトレーニングの回数のようなものです。特にこだわりがあればここのパラメータを調整しましょう。GPUメモリ(VRAM)が16GBなど豊富な場合はバッチサイズを4などに設定すると良いです。私はEpochとバッチサイズ以外はそのままのことが多いので学習させてみます。Start traningを押すと訓練が開始されます。訓練の状況はスクリプトのコンソール(黒い画面)に表示されます。

コメント