RunPodテンプレート”Kohya_ss GUI RTX 5090”で”LoRA学習”

本記事では、クラウドGPUのRunPod内で、
”Kohya_ss GUI RTX 5090”というテンプレートを使用して、
JupiterLabのアップローダーを使用してファイルをアップロードする方法と、
workspaceでフォルダ管理をする方法と、
”LoRA学習”をする方法を解説しています。
RunPodの基本的な使用方法については、 こちらの記事で解説しています。


RunPodテンプレート(Kohya_ss GUI RTX 5090)は、Kohya_ssのGUI(Web UI)を含んだ、学習用の統合環境になっています。
このテンプレは、GUI操作でLoRA学習などが可能になっており、Jupyter Labとの連携が可能で、GPUまで指定されている!ということで、


このテンプレートの構成
項目 | 内容 |
---|---|
OS | Ubuntu 22.04 LTS |
CUDA | 12.8(最新) |
Python | 3.11.2 |
Kohya_ss | v25.2.1(2025年対応) |
PyTorch | 2.7.0 |
GUI | Kohya_ss Web UI付き(localhost:7860) |
その他 | code-server 、Jupyter Lab 、rclone 、RunPod File Uploader など含む |
RunPodでのKohya_ss GUIの基本的な使用手順
今回のKohya_ss GUI RTX 5090では、GPUを迷わなくていいので良いですね。今回は、Network Strageを使用せずに軽量な(5から10枚程度)学習を行っていきたいと思います。永続ストレージを使用する場合は、事前にStorage
でNetwork Volume
を設定し、Deploy画面でVolume
を選択して始めます。
Network Strage(永続ストレージ)の設定方法はこちらをクリックしてください
1. 使いたいGPUと同じリージョン(データセンター)を選ぶ
左側のStorageから、New Network Volumeをクリックします。
すると以下の画面が出て来ます。


- 一番大事なポイントです。
- 例:RTX 5090を使いたい → そのGPUが使えるデータセンターを調べて、同じ場所にボリュームを作成する
- 違うリージョンだとPodに接続できません。
※注意:L4、T4、A10G、A100などは、幅広く対応するGPUです。RTX5090などは新しいので、テンプレートを使用する場合は注意が必要です。
2. 頻繁に起動するGPUが安定して空いているリージョンを選ぶ
- 「混雑していてなかなかGPUが借りられない」となると非効率なので、なるべく空きやすいリージョンを選ぶのも手。
- 時間帯によって混雑が変わるので、ご自身が作業する時間帯に空きがある地域が理想です。
3. 自身の物理的な居住地に近いリージョン(必須ではない)
- 通信速度を気にする場合のみですが、ネットワーク経由で学習データや画像をアップロード/ダウンロードする際に速度に影響が出ることがあります。
- 日本在住なら**アジア圏(例:Singaporeなど)**が比較的速いです。
- ただし、これは学習性能には影響しません(あくまで転送速度のみです)。
ネットワークボリュームを作成するデータセンターを選びます。データセンターを選択すると、使用できるGPU一覧が表示されます。


使用したいGPUが使えるリージョンを選択し、Volume Nameを付け、サイズ(GB)を設定し、Create Network Volumeを押すと自分の永続ボリュームが作成されます。
ボリューム(永続ストレージ)の選び方基準
最低限のLoRA学習なら20GBでもOK、余裕があれば30〜40GBが安心。
内容 | 容量の目安 |
---|---|
学習画像(100〜200枚) | 100MB〜500MB程度 |
.txtタグファイル | 数MB未満 |
モデル本体(SD1.5やLoRA) | 2〜7GB程度(1モデルあたり) |
出力されたLoRAファイル | 50MB〜200MB/個 |
学習キャッシュ・ログ | 数百MB〜2GB程度 |
設定目安
項目 | 推奨 |
---|---|
最低限 | 20GB(削除に注意) |
おすすめ | 30〜50GB(複数回学習する・ベースモデル複数持つなら) |
安心運用 | Auto-shutdown設定 + 永続ストレージあり |
具体的なポイント
作成したストレージは、ストレージに反映されます。(反映に、少し時間が掛かる場合があります。)


RunPodの「永続ストレージ(Network Volume)」は、作成した時点から削除するまで、ずっと課金され続けます。
※課金はPodが停止中でも発生します。
- Podを停止、削除しても、永続ストレージが残っていれば料金は発生し続けます
- 料金は GB単位/時間あたり で加算されます(例:$0.0001/GB/時間 など)
ストレージ課金を止めたい場合
「永続ストレージ(Network Volume)」自体を削除する
- RunPodの左メニューから「Volumes」を選択
- 削除したいストレージの右側にある「︙」メニューをクリック
- 「Delete」を選択
削除時の注意点
- 削除すると中のデータ(学習モデル、学習ログ、画像など)もすべて消えます
- rcloneや外部ストレージと連携してバックアップしてから削除するのが安心です
状況 | おすすめ対策 |
---|---|
一時的に使わない | PodだけStop(停止)、Delete(削除)はしない。 |
しばらく使う予定がない | 必要なデータをバックアップし、Delete(削除)Volume削除 |
コストを最小限にしたい | 作業の都度Delete(削除)、Volumeを作成・削除 |
Stop(停止)だけすれば、GPU課金は止まります。次回Startすれば、再び同じ環境でタスクを継続できます。
※Network Strageを使用せず学習する場合は一気に作業をする必要があります。Podを停止するとデータが消えます。ご注意ください。
Deploy
➡RTX5090
➡Deploy on Demand
で、Podを立ち上げます。


※はてなマーク テンプレート内のツールのスペックと、ポート番号が確認できます。
①インスタンス起動
- RunPodでインスタンスを起動後、しばらく待つと「Web Interface」欄にアクセス可能なリンクが表示されます。
今回は、 - Kohya_ss(3000)、
- Jupyter Lab (8888)、
- codesaver(=workspace)(7777)を開きます。
codesaverは、Notebookの自動保存や履歴保存です。Pod停止後も保存される永続ストレージ。出力データやモデルの保存場所として使用します。codesaver(=workspace)(7777)と、Jupyter Labは、連携しています。
※Jupyter Lab (8888)と、codesaver(=workspace)(7777)は、どちらもファイル管理が出来ますが、Jupyter Lab (8888)はアップローダー付きで、codesaver(=workspace)(7777)は、ファイルの移動などがドロップ&ドラックで出来るという特性から、codesaver(=workspace)(7777)の方が、実際のファイル管理に適していると思います。
Application Manager(8000)は、「どのアプリがどこで動いてるか」を一覧で見やすく表示するための便利機能です。必要な方は立ち上げて下さい。
FileUploader(2999)は、JupiterLabでファイルのアップロードが出来るので、お好みで。
TensorBoard(6006)は、こちらも任意です(学習の視覚化に使いたい時)


Jupyter Lab
→ Notebook操作やコマンド実行用(httpポート)kohya_ss GUI
→ LoRA学習などを操作するWeb UI(通常http://<podアドレス>:7860
)
②Kohya_ss Web UIを開く
- 「Web Interface」欄の
kohya_ss GUI
をクリック - Kohya_ssのトップ画面が開く(カテゴリメニューあり)


③Kohya_ss GUIの構成(メニュー)
以下のような画面構成になっています(RunPod用テンプレート(kohya_ssベース) では、以下のような前提フォルダ構成になっていることが多いです)
/workspace/kohya_ss
├── dataset
│ ├── images ← 学習用画像を置く標準パス
│ └── output ← 学習中のログや一時ファイルなど
├── models ← モデルの保存先
├── output ← 学習後のLoRA出力(こっちが最終成果物)
└── train ← 独自に使うならここでもOK(手動管理)
workspace
➡Kohya_ss
➡dataset
内に学習用画像フォルダを置きます。
学習用フォルダの作成方法は、以下の記事をご覧ください。


JupiterLabでのファイルアップロード




rcloneを使用する場合
rcloneを使用する場合は、JupiterLabのTerminalからファイル転送します。




ターミナルで、以下のコマンドを実行し対話形式で設定します対話形式で設定します。
rclone config
rcloneの設定の詳細は、以下の記事をご覧ください。


workspaceでフォルダを管理する
フォルダの管理には、JupiterLabよりcodesaver(=workspace)(7777)が適しています。
先程、JupiterLabのアップローダーでアップロードしたファイルが反映されている事を確認しましょう。




LoRA学習の際のフォルダパス
【フォルダ名について】フォルダ名は、<繰り返し回数>_<class>で構成する必要があります。
classとは、「この画像が何を表しているのか」をモデルに伝えるための“タグ(単語)”です。Kohya_ssでは、画像ファイルのフォルダ名を自動的に使って、プロンプトとして学習に利用します。
フォルダ名に関しては こちらの記事で書いています。


上のworkspaceの画像では、以下の様になっています。
workspace\kohya_ss\
├──dataset\ ← データ系(学習素材)
│ ├── 12_sakasa\
│ │ ├── img\
以下の配置がデフォルトになっている。(どちらでもいい)
workspace\kohya_ss\
├──dataset\ ← データ系(学習素材)
├── 12_sakasa\
├img
学習モデルの選択・設置
デフォルトでは、runwayml/stable-diffusion-v1-5が使用されます。学習のベースとするモデルを事前に決めている場合は、
- ベースモデル(例:
sd15
やSDXL
)は/workspace/models
などにアップロードします。 - 必要に応じて、
JupiterLab
、rclone
やRunPod File Uploader
でアップロード。
④:LoRAの学習を始める基本ステップ
Kohya_ss GUIで学習設定を行なっていきます。上から、LoRA
➡Training
を選択し、学習用フォルダを選択します。
ここでは、ファイルが入ったフォルダ(ここでは12_sakasa)の親フォルダを選択します。(12_sakasaの親フォルダはdatasetですね。)


Prepare Dataset
- 画像フォルダを指定し、captionファイル(
caption.txt
や.json
)を自動生成可能 BLIP
やDeepBooru
のキャプション方式を選べる
- 画像フォルダを指定し、captionファイル(
Train
LoRA
を選択- 各種設定(model選択、学習率、バッチサイズなど)を入力
- 下部の「Start Training」をクリックで学習開始
- 学習ファイルの保存場所
/workspace
または/workspace/output
以下に出力される(テンプレにより多少異なる)
LoRA学習の設定項目に関しては こちらの記事をご覧ください。


このテンプレートにおけるJupyter Notebookの主な使い道
① 学習用データの前処理(GUIではやりにくい処理)
- ファイル名の一括リネーム
- キャプションファイル(
caption.txt
や.json
)の生成や変換 - 特定の画像のみを抽出・削除(NSFW除外やファイルサイズ制限など)
BLIP
やdeepbooru
のキャプション抽出をPythonコードでカスタマイズ
GUIでは「Prepare Dataset」で自動処理できますが、より細かいルールで前処理したい場合はNotebookが便利です。
② 自動学習スクリプトの実行・テスト
- 複数パターンのLoRA学習をバッチで回す
- 設定ファイル(
*.json
)の自動生成 - Kohyaスクリプト(例:
train_network.py
)をコードで直接呼び出す
→ GUIを介さずに学習の制御ができる(Colabと同じ使い方)
特に複数LoRAを学習するようなプロジェクトにはJupyterが効率的です。
③ 学習のログ解析やグラフ可視化
- 学習中に出力される
loss
やepoch
などのログをグラフ化 - エポックごとの出力画像を比較・確認
- 精度チェック(FIDスコアなど)
GUI上では確認できない詳細な学習分析ができます。
④ 変換・マージ・モデル管理ツールのスクリプト実行
- LoRAモデルのmerge(例:
merge_lora.py
) - safetensors → .ckptなど形式変換
- 特定フォルダ内のモデルをまとめて変換・整理
GUIの「Utilities」でも一部できますが、複数処理や条件付き処理にはNotebookが便利。
⑤ ストレージ管理・アップロード処理(rclone連携)
- Google DriveやOneDriveとの接続確認&ファイル移動
rclone
コマンドのスクリプト化(バックアップ、同期など)- ファイルの自動整理(出力が増えすぎた場合の削除や整理)
GUIだけでOKな作業 | Notebookが便利な作業 |
---|---|
単体LoRAの学習 | 複数モデルの一括学習 |
簡単な前処理 | 条件付き前処理や細かい操作 |
モデルmerge(手動) | まとめて変換や一括管理 |
学習の実行 | 学習ログの分析・可視化 |
FileUploaderでアップ | 自動アップロードやrclone管理 |
/workspace/ ← 作業エリア(メインの保管場所)
/hub ← Jupyterシステム用(触らなくてOK)
/Kohya_ss ← Kohyaスクリプト一式(GUI/WebUIの本体)
/log ← ログ(Jupyterや起動関連のログが出る)
filezilla_sftp_config.xml ← SFTP設定ファイル(通常不要)
テンプレート内の /Kohya_ss
フォルダの中にすでに
/Kohya_ss/
├── models/
├── output/
が存在している.
Kohya_ss GUIで自動的に参照されるのは /Kohya_ss/models
や /Kohya_ss/output
なので、次のような使い方がベストです.
「モデルの読み込み」
→ models
フォルダは /Kohya_ss/models/
を選ぶのが自然
「出力先」
→ 何もしなければ /Kohya_ss/output/
に保存される
「学習用画像フォルダ」
→dataset
フォルダに配置するか、
→ /train
フォルダを作成して、指定。
Inference(テスト出力)
Diffusers(Stable DiffusionのPythonライブラリ)を使えば、GUIではなくコードでテスト画像を生成できるという意味です。
LoRA学習後、学習内容を試すために 画像を生成(推論) することができます。
その際、Diffusers
を使うと コードベースで画像出力が可能になります。
RunPodの「Kohya_ss GUI RTX 5090」テンプレのように、Kohya_ss GUI(Web UI)とJupyter Notebookが両方入っている環境では、GUIだけで完結できる作業も多いですが、Jupyter Notebookを使うとより柔軟に制御・自動化・検証ができる場面があります。
GUI(Kohya_ss)だけでできること | Notebookを使うとできること |
---|---|
LoRAの学習・設定 | Diffusersによる画像生成や評価 |
データセット選択・学習実行 | 複数実験の一括実行や自動化処理 |
学習結果の出力 | rcloneによるアップロードなど |











