【RunPod】で”Kohya_ss”を使用して”LoRA学習”をする方法【3⃣応用編】

本記事では、クラウドGPUのRunPod内で、
”Kohya_ss”のテンプレートを使用して、”LoRA学習”をする方法を解説しています。
RunPodの基本的な使用方法については、 こちらの記事で解説しています。


LoRA(Low-Rank Adaptation)は、Stable Diffusionのような大規模モデルに対して、低コストで特定の情報(キャラ・作風など)を学習させる軽量なファインチューニング手法です。
元のモデルの重みはそのままに、一部の重みだけを小さな「差分パラメータ(LoRA層)」として学習・保存します。
Kohya_ssはLoRAを学習するためのツール(GUI付きスクリプト群)で、Stable Diffusionベースの画像生成モデルに対して、
- LoRA学習(Low-Rank Adaptation)
- DreamBooth学習
- Textual Inversion
- フルファインチューニング
などを行うための多機能なトレーニングツールです。
特に以下の点でLoRA学習に向いています
特徴 | 内容 |
---|---|
GUI対応 | Web UIで初心者でも操作しやすい(Gradioベース) |
柔軟な設定 | rank , alpha , learning rate , optimizerの選択など細かく設定可能 |
画像ラベリング機能 | キャプションの自動生成ツール(BLIP)などが統合されている |
複数形式の保存 | .safetensors やDiffusers形式 のLoRA保存に対応 |
RunPodやGoogle Colab対応 | クラウドでも動作させやすい構造になっている |
Kohya_ssでLoRAを作る
LoRAを作成する流れ
- データセット(画像+キャプション)を用意
- Kohya_ssを起動(ローカル or クラウド)
- GUIまたはCLIでLoRA学習設定を調整
- 学習を実行し、LoRAモデル(
.safetensors
)を出力 - 生成ツール(AUTOMATIC1111など)でLoRAを使って画像生成
RunPodでKohya_ss が安定動作するテンプレート


1. ashleykza/kohya:25.1.2
- 特徴:公式的な
kohya_ss
GUI(WebUI)テンプレート - GPU対応:L4、T4、A10G、A100など幅広く対応
- WebUI付きで、LoRAやDreamBooth、SDXLなど切り替え可能なUIタブ付き
- rcloneやGoogle Drive連携も可能
実際に多くのユーザーが使用しており、安定実績あり
2. Kohya_ss GUI (by RunPod)
(テンプレート一覧で表示)
- RunPodが公式提供しているテンプレート。中身は基本的に
ashleykza
ベース - Kohya GUI(WebUI)とSD-scriptsがプリセットで入っている
- 初心者向けに構成が整っており、特別なセットアップなしで開始可能
- Volume(永続ストレージ)との相性も良い
3. 自分でDocker環境を構築
- Ubuntu + Python + kohya_ss を自分でセットアップ
- ただし、この場合は依存ライブラリ、CUDAバージョン、xformers、bitsandbytes なども自前で調整が必要
※難易度高め。テンプレートの方が早くて安定。しかし…
Kohya_ss GUIなどのテンプレートを使っているRunPodのPod内でも、Pythonがインストールされていれば仮想環境(venv)を作成・使用することが可能です。


比較 【テンプレート+venv】 vs 【自前Docker環境】
比較項目 | テンプレート + venv | 自前でDocker構築 |
---|---|---|
手軽さ | ◎ GUIで起動・セットアップが簡単 | △ Dockerfile作成・ビルドが必要で敷居が高い |
初期環境構築の速さ | ◎ ほぼ即使える | ✕ 数時間〜半日以上かかることも |
カスタマイズ性 | △ テンプレートの中身を変えるのは難しい | ◎ 依存ライブラリ・Python・CUDA等も自由 |
安定性 / 再現性 | △ テンプレートにバグや仕様変更があることも | ◎ 自分で固定したバージョンで保てる |
更新・管理 | ✕ テンプレートの仕様が変わることがある | ◎ Dockerfileで再現可能 |
LoRAなどの学習 | ◎ すぐにできる(設定済み) | ◯ 自分で環境構築必要だが柔軟 |
学習コスト(操作難易度) | ◎ Linux初心者でもGUI操作可 | ✕ Docker・Linuxの知識が必須 |
トラブル発生時の対処 | △ GUIや内部設定がブラックボックス化しやすい | ◎ ログやDockerfileで直接把握できる |
コストパフォーマンス | ◯ 共通ライブラリが最適化されていることも多い | △ 自作環境の最適化は工夫が必要 |
避けた方が無難なテンプレート
ComfyUI + Kohya 両方入り
テンプレート(例:Ultimate系)→ Kohya側が動かない、WebUI不具合などの報告ありInvokeAI
などが同梱されたテンプレート → Kohyaの動作に不要な要素が多く、不安定
Webターミナル(コマンド)が必要な時
基本動作は、GUIですが、以下の場合にはコマンド操作が必要になります。
必要な場合 | 具体例 |
---|---|
rclone の初期セットアップ | rclone config をターミナルで打ってGoogle Drive認証を行うとき |
ディレクトリの確認や手動操作 | データセットを所定の場所に移動させたいとき(例:mv や cp コマンド) |
追加ライブラリのインストール | 何かカスタムPythonスクリプトや依存関係を追加したいとき |
エラー時の調査 | Web UIでうまく動かないときにログを確認したり、手動で起動を試みたり |
- Kohya GUI を開く
- 学習用データセット(リサイズ済み+タグ付け済)を指定
- 必要であれば使用したいBaseモデル(例:SD1.5など)を読み込む
- 設定(学習率・epoch・出力先など)をGUIで入力
- Start Training!
テンプレートの中には、あらかじめ数種類のモデルが入っているものもあります。詳細は、各テンプレートのページで確認できます。
例:
下の画像は、ULTIMATE Stable Diffusion Kohya ComfyUI InvokeAIというテンプレートの内容です。


必要なもの(基本)
rcloneでファイルをアップロードする方法は、 こちらの記事をご覧ください。


RunPodでは、ファイル転送ツールの”rclone”が予め入っている事が多い為、rcloneの設定しておくと便利です。
rcloneを使用してファイルを転送する場合は、以下のファイルを、予めGoogleDriveなどのクラウドツールにアップロードしておきます。
アップロードするもの
種類 | 内容 | 保存場所(Pod内)例 |
---|---|---|
ベースモデル (必要であれば) | 例:sd-v1-5-pruned.safetensors | /workspace/stable-diffusion-webui/models/Stable-diffusion/ |
学習用画像フォルダ | リサイズ+タグ付け済 | /workspace/dataset/ など |
テキストタグ(必要な場合) | .txt または.csv 形式 | 画像と同じフォルダ内 |
学習用画像フォルダ【画像とテキストタグ(必要な場合)】の作成方法については、 こちらの記事をご覧ください。


アップロード方法(例:Google Drive連携)
Google Drive連携に必要なもの Googleアカウント(Gmailなど)← これだけでOK!
Google Driveをrcloneでマウントして、Pod内へファイルコピーする手順です。
永続ストレージ(Network Volume)を /workspace
にマウント済みであることを確認してください。
workspaceターミナル、Web Terminal または SSHターミナル を開く
ターミナルの開き方
Podを起動 →Connect
→ 接続するタブWeb Terminal
ボタンもしくは、workspace:7777で開けます。


こちらは、workspaceポート:7777のターミナル


workspaceポート:7777のターミナルで作業すると、ファイル転送なども反映が見渡せて使いやすい。
対して、Webターミナルの画面は、広くて見やすい。
※後の解説では、Webターミナル内のスクショで解説します。


初回セットアップ
初回のみ、以下のように rclone config
を実行してDriveをマウントする必要があります
rclone config
ウィザード形式で進みますので、「Google Drive」→「認証」→「リモート名の設定(例:gdrive)」といった流れになります。
- ターミナルで
rclone config
を実行 - New remote(新しいリモート)を選択 →
n
を入力してEnter - 名前(例:
gdrive
)を入力 → Enter - ストレージタイプを選択:「Google Drive」を選択(リストから番号で選ぶ)入力してEnter
- クライアントIDなどは基本「空Enter」でOK(デフォルトで問題なし)
scope
は1
(Full access)を選択- 「Use auto config?」→
n
noと答える(RunPod内からはブラウザ開けないため) - URLが表示されたら、それをブラウザで開く(URLが表示されない場合については後ほど解説。)
- Googleアカウントでログインして、アクセス許可を与える
- 認可が完了すると「認証コード」が表示される → それをPodのターミナルにコピペしてEnter
- Team Driveを使っていなければ「No」を選択(
n
) - 設定内容の確認 →
y
(Yes)で保存




Use auto config?
ではなく、
Use web browser to automatically authenticate rclone with remote?
Say Y if the machine running rclone has a web browser you can use
Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.
y) Yes (default)
n) No
この問いについてRunPodのようにブラウザが使えない環境では「n
(No)」を選ぶ必要があります。
rclone authorize “drive” “eyJzY29wZSI6ImRyaXZlIn0”
この様なメッセージが表示された場合は、
【ステップ1】ローカルPCで rclone
を実行する
ローカル環境(Windows/Mac/Linux) で、下のコマンドを実行してください
rclone authorize "drive" "eyJzY29wZSI6ImRyaXZlIn0"
- この
"eyJzY29wZSI6ImRyaXZlIn0"
は RunPod 側から表示されたものを そのままコピーして使います。 - 実行すると、ブラウザが開いて Google 認証が求められます。
- 認証後、トークン(
config_token
)が返されます。
【ステップ2】RunPod側に戻って貼り付ける
ローカルで表示された config_token
をコピーして、RunPod 上のconfig_token
に そのまま貼り付けて Enter します。これで Google Drive との連携が完了します!
ポイント
- 認証の際に「rclone」があなたのGoogle Driveへのアクセス権限を一時的にもらう形です
- 一度認証しておけば、Podの環境内で
gdrive:
のようにDriveへアクセスできます - 特別なAPIキーなどは 不要です。(上級者向けの手動設定時以外)
/workspace
フォルダを開く方法
方法1:Web Terminal(ウェブターミナル)で開く方法
- RunPodのコンソールにログイン
- 対象のPodを開く
- 「 Terminal」を開く(※「Full access all files」でOK)
- ターミナルが開いたら、以下のコマンドを入力
cd /workspace
ls
これで /workspace
ディレクトリの中身(アップロードされた画像など)が確認できます。
さらに階層がある場合は、
ls -l
などでフォルダを調べて、中に入っていけます。
方法2:ComfyUI や Kohya の UI 内で確認する方法
テンプレートによっては、UI上からファイル一覧を確認できるようになっています。
- Kohya UI:一部のバージョンでは、データセット選択時に
/workspace
配下をたどって選べます。 - ComfyUI:ノードのファイル選択時に
/workspace
をルートにたどれる場合があります
注意点
/workspace
は Network Volume(永続ストレージ)をマウントしている場所であることが多い。- Podを削除しても
/workspace
にデータがあれば残るので、ここをうまく活用するのがポイントです。
アップロード用コマンド例
gdrive:dataset/my-lora-dataset/
を /workspace/dataset/
にコピーする場合)
rclone copy gdrive:dataset/my-lora-dataset/ /workspace/dataset/ -P
-P
はコピー進行状況を表示するオプション
Google Drive内のパスはあなたのDrive構造に合わせてください。
sd-v1-5-pruned.safetensors
))
rclone copy gdrive:ai-models/sd-v1-5-pruned.safetensors /workspace/stable-diffusion-webui/models/Stable-diffusion/ -P
Pod → Google Drive(保存・バックアップなどに)
rclone copy /workspace/output gdrive:LoRA_results -P
テンプレート内のターミナル(Terminal)でそのまま
rclone config
← Google Driveと接続するrclone copy
← DriveとPod間でファイルコピーrclone ls
← Drive内のファイル確認
といったコマンドがそのまま使えます。
- Kohya GUIを使えば、フォルダパスをGUI上で選ぶだけでOKです
- InvokeAI や ComfyUI は「生成用UI」なので、LoRA学習時は基本的に Kohya の機能だけを使う形になります。
確認コマンド
rclone version
↑これを打つと、バージョンが表示されて rclone
が入っていることが確認できます。
- 設定ファイルにあるリモート名を正しく使うことが重要です。
rclone listremotes
コマンドでも、登録済みリモート名一覧が見られます。
rclone listremotes
Kohya GUIでの LoRA Training の始め方
Pod内のブラウザからアクセスするタイプか、ローカルのブラウザで http://<PodのIP>:<ポート番号>/
にアクセスしてGUIを開きます。
Kohya_ss 起動後にまず確認しておくと良いこと
まずは、GUIが正しく表示されているか確認します。
- メニューがすべて表示されているか(LoRA Training、Dreambooth、Data preparation など)
- ボタンがクリックできるか
起動時におかしいと思ったら
- Podを再起動(Stop → Start)で改善されることも多いです。
- KohyaのGUIが崩れていたら、ブラウザをリロードまたはシークレットウィンドウで開き直すのも効果的です。
Web Terminal
でnvidia-smi
を実行して、GPUが認識されているか確認もできます。
ワークスペース内で保存すべきファイルの種類
フォルダ | 入れるべき内容 |
---|---|
/workspace/train_data/ | 学習用画像とキャプション(.png + .txt ) |
/workspace/models/ | .safetensors などのStable Diffusionモデル |
/workspace/outputs/ | 学習結果(LoRAなど) |
/workspace/kohya_ss/ | Kohya GUI本体・設定ファイルなど |
推奨フォルダ構成(例)
/workspace/
├── kohya_ss/ ← Kohyaの本体
├── traindata/15_cat2025 ← 学習用画像フォルダ(ここをImage folderに指定)
│ ├── dog_001.png
│ ├── dog_001.txt
│ └── ...
├── models/ ← Stable Diffusionなどのベースモデル
│ ├── anything_v3.safetensors
│ └── ...
├── outputs/ ← 学習結果の出力先(LoRAファイルなど)
│ ├── lora_dog.safetensors
│ └── ...
1. LoRA
Training タブを選択
- Kohya GUIのメニューで「LoRA」または「LoRA Training」タブをクリック。
2. 基本設定を入力
項目 | チェック内容 |
---|---|
学習画像のパス(/workspace/your_dataset など) | |
ベースモデル(例:/workspace/stable-diffusion/v1-5-pruned.safetensors ) | |
Output directory | /workspace/outputs など永続化できる場所 |
Epoch や Batch size | 最小値でテスト(例:Epoch: 1、Batch: 1)もアリ |
項目 | 説明 |
---|---|
Pretrained model name or path | ベースモデル(例:/workspace/stable-diffusion/v1-5-pruned.safetensors ) |
Training data directory | 学習用画像のフォルダパス(例:/workspace/train_data )※画像の入っているフォルダの親フォルダ |
Output directory | 出力先(例:/workspace/output/lora_model/ ) |
Output name | 任意の名前(例:15_cat2025 ) 学習回数_outoput名 |
Epochs | 学習回数(例:10〜20) |
Batch size | 例:2〜4(VRAMに応じて調整) |
Learning rate | 例:0.0001〜0.0005 |
- 出力フォルダ(Output directory)
→ モデルや学習済みのファイルの保存先パスを指定します。
→/workspace/output
や/runpod-volume/models
など永続化される場所がおすすめ。 - エポック数(Epochs)
→ ここに希望のエポック数を入力します(例:10や20など)。 - バッチサイズ(Batch size)
→ GPU VRAMに合わせて調整(例:4や8)。
→ 大きいほど高速ですがメモリ消費が増えます。 - 学習率(Learning rate)
→ 通常は 0.0001〜0.0005あたりから試すことが多いです。 - その他
→ 学習ステップ数、保存間隔、ログ出力フォルダなども設定可能な場合があります。
3. 拡張設定(必要に応じて)
- Text Encoderの有無(絵柄重視ならONが多い)
- 学習ログ保存先
- 正則化画像の設定など
4. スタート!
- 最後に「Start Training」や「Train」ボタンを押すと開始されます。
4. 設定を保存・反映
- GUIによっては「Apply」や「Save Settings」ボタンがあります。
- 設定を変えたら、必ず「Start Training」など学習開始ボタンを押して反映させてください。
テンプレートの更新やPod削除時に備えて
- 永続ストレージ(/runpod-volume)に移動しておけば、次回も使い回せます。
- 一時保存のままだとPod削除時に消えるので、必要なファイルは手動コピーしておくと安心です
cp -r /workspace/models /runpod-volume/
cp -r /workspace/outputs /runpod-volume/
→ /workspace/models
フォルダを、/runpod-volume/
に再帰的(-r
)にコピーします。
→/workspace/outputs
フォルダを /runpod-volume/
にコピーします。
コピー完了後の構成(永続ストレージ内)
/runpod-volume/
├── models/
│ ├── anything_v3.safetensors
│ └── ...
├── outputs/
│ ├── lora_dog.safetensors
│ └── ...
毎回コピーするのが面倒な場合の対策
方法①:最初から /runpod-volume/
に保存するように設定を変更
- KohyaのGUIで「出力フォルダ(output directory)」を
/workspace/outputs
ではなく/runpod-volume/outputs
にする。 - モデルの保存先や設定ファイルの読み込み元を
/runpod-volume/
にする。
こうすれば、毎回コピーせずに「最初から永続領域に保存される」状態になります。
方法②:コピー処理をシェルスクリプトにして使い回す
#!/bin/bash
cp -r /workspace/models /runpod-volume/
cp -r /workspace/outputs /runpod-volume/
↑こんな内容を save_to_volume.sh
のような名前で保存しておけば、次回からは
bash save_to_volume.sh
と1コマンドで実行できます。
フォルダ名 | 特徴 |
---|---|
/workspace | Pod停止・削除時に中身が消える(一時領域) |
/runpod-volume | 永続ストレージ。Podを再起動しても残る |
動かない場合
- Volumeがいっぱいになっていないか確認
- config.yamlなどのaccelerate設定ファイルが壊れていないか
- ブラウザのキャッシュやVPNも確認(WebUIが出ない原因)
ポイント | 内容 |
---|---|
絶対パスで指定する | 相対パス(例:../images など)より安定します。 |
パスにスペースがないことを確認 | スペースがあると読み込みエラーになることがあります。 |
画像とcaption(.txt)がペアになっているか確認 | LoRA学習では .png または .jpg に対して .txt のキャプションが必要な場合があります(学習形式による)。 |





