Stable Diffusionを使っていると、自分自身のオリジナルの画像を生成したくなりますよね。そこで簡単に実現できる方法が、KohyaとLoRAです。この記事では、細かい説明は抜きにして、とりあえずこの手順で実行すれば、自分で作った画像を学習させ、生成させる方法を説明したいと思います。
事前準備
KohyaGUIとは、LoRAで追加学習させるためのツール、GUIです。世界で最も使われているツールだと思います。
基本的にはWindows専用。
必要な物は下記
- Python 3.10.9
- Git
- Microsoft Visual C++ 再頒布可能パッケージ
PythonとGitのインストール方法は、過去の記事に乗っておりますので、参照お願いいたします。
このまま実行すれば出来る! Stable diffusionの導入手順を簡単に説明します。 – エンジニア大学
Microsoft Visual C++ 再頒布可能パッケージは次のURLよりダウンロードお願いいたします。
サポートされている最新の Visual C++ 再頒布可能パッケージのダウンロード | Microsoft Learn
それぞれ使われているOSに応じてダウンロードしていただければよいですが、多くの場合は64bitのWindows10/11だと思いますので、下記赤□をクリックし、ダウンロードしてください。

ダウンロードした「VC_redist.x64.exe」をダブルクリック。
↓ライセンス条項および使用条件に同意する。にチェックをし、インストール。

セットアップ完了しますので、「閉じる」

Kohya’s GUIの導入
それでは導入していきます。
1. インストールしたいフォルダを開いて、そのパスでコマンドプロンプトを開きます
例えば、↓のフォルダにインストールする場合

↓のように「cmd」と入力し、Enter

そうすると、そのパスが設定されたコマンドプロンプトが起動(もちろん、コマンドプロンプトを起動した後、ディレクトリを移動しても問題ありません)

2.リポジトリをクローン
下記コマンドを入力し、Enter
git clone https://github.com/bmaltais/kohya_ss.git

すぐに次のように完了。ディレクトリに「kohya_ss」というフォルダが生成されます

「kohya_ss」へ移動します。
cd kohya_ss

セットアップします。下記コマンドを入力
.\setup.bat

下の画面になりますので、インストールの「1」を選択

下のような感じで、インストールが進みます。

もしNVIDIA製、30xx以上のグラボを使っている方は、CUDNNを使うことで学習速度が速くなりますので、その方はセットアップメニューの「2」を実行します。
CuDNNをインストールするので、「2」を選択

下すぐこの画面になります。

あとは実行するだけ。
「kohya_ss」直下の「gui.bat」をダブルクリック

そうすると、↓のような画面が現れます。

上記が出たら、ブラウザに「http://127.0.0.1:7860」を入力します。↓の画面が現れたら成功です。

KohyaGUIを使ったコピー機LoRA
ここでは、KohayaGUIの動作確認として、LoRA学習をして用意した画像のコピーを生成する手順を説明します、
1.トレーニングデータを入れるフォルダと、トレーニング済のファイルを入れるフォルダを「kohya_ss」フォルダの直下へ作成
名前はなんでもよいのですが、ここでは、
・トレーニングデータを入れるフォルダ:training
・トレーニング済データを入れるフォルダ:archive
としました。

2.trainingフォルダに「10_test」フォルダを作り、そこに1枚画像を入れる
ここのフォルダ名は重要で、10_testの10は学習の繰り返し回数です。今回はコピーなので、繰り返し回数は適当に10にしました。入れる画像も1枚だけ。
本格的に学習するときは、画像は複数枚いれ、キャプションも入れますが、それはまた他の記事で書きます。

3.kohyaGUIの設定
・まずモデルの選択。お持ちのものがあればそれを選択。なければとりあえず、適当にダウンロードしてください。
今回は下記から「majicmixRealistic_v7.safetensors」をダウンロード。
majicmixRealistic_v7.safetensors

ダウンロードしたモデルは、「StableDiffusion」の「models」「Stable-diffusion」下に適当なフォルダを作って格納してください。
今回は「real」というフォルダを作成。

それでは、KohyaGUIのLoRAタブからモデルを設定していきます。

下のように先ほど保存したモデルのパスを開き、設定します。

・image folderに先ほどのtrainingフォルダのパスを入れます。

・次に「Trained Model output name」を適当に入れます。↓ではtest1-1
Output Directory for trained modelは下記のもの(***outputs)が選べると思いますので、選択してください。

・パラメータ設定
学習のStep数は、繰り返し回数xエポック数x画像枚数で決定します。
先ほど繰り返し回数は「10」に設定しましたので、(フォルダ名を「10_test」とした)
とりあえずエポック数は適当に1000にします。
次にMax train stepsはデフォルトで1600になっていると思いますが、繰り返し回数xエポック数x画像枚数を有効にしたいので、「0」に設定
最後にSave every N epochsはセーブするステップ数を決めるところですので、デフォルトの1のままだと、ステップごとに1000回学習結果を保存してしまうため、「1000」に変更。
こうすると、全ステップが終わった時のみ、学習結果が保存されます。

・DimensionとAlphaはとりあえず32と2。環境によって変わります。高い性能のGPUを持っている方は数字をあげ、そうでない方はこのくらいがよいでしょう。

・Clip skipを2にします。

・ここまで出来たら、一番下のStart trainingを押しましょう。

・学習が始まると、こんな感じに動きます。

GPUはこんな感じ↓頑張っています。

終わると、このように表示されます。

・終わったら、「outputs」フォルダを見てみます。「test1-1.safetensors」ファイルができていれば成功です。

・このファイルを「stable diffusion」のLoraフォルダへコピー。下のパスです。
\StableDiffusion\stable-diffusion-webui\models\Lora
・Stable difusionを起動。↓のパスのwebui-user.batをダブルクリック

GUIが起動します。起動しない場合は、コンソール画面に次のように表れている、URLをコピーして、ブラウザに直接入力してください。「http://127.0.0.1:7861」

一番にCheckpointを選択できますので、学習の時に使ったものを選ぶ。今回の場合は、「majicmixRealistic_v7.safetensors」
そして、txt2imgのところに
<lora:test1-1:1>と入力してください。
Kohyaで設定した「output name」「file名」が異なる場合、ご使用の環境に合わせてください。

そしてGenerateを押せば完成。
こんな感じで、学習させたものとほぼ同じ画像が生成されます。

それでは比べてみましょう。かなりそっくりにコピーされていますね^ ^
オリジナル画像(学習画像)↓

生成した画像①

生成した画像②

生成した画像③

CUDA Toolkit 11.8インストール
StableDiffusionにCUDA Toolkitが必須なのか不明ですが、機械学習系のプログラムを動かすときは入っていたほうが良いので、最後にこちらのインストール方法を紹介します。
StableDiffusionの為であればv11.8がお勧めです。
CUDA Toolkitをインストールしていない方はver11.8をダウンロードします。
CUDA Toolkit 11.8 Downloads | NVIDIA Developer
自分のOKを選択。ダウンロード。※時間かかります。

後はダウンロードしたファイルをダブルクリックして、インストールするだけ。簡単です。
コメント