RunPod上で一度作ったら安定して LoRA学習できる Kohya_ss 環境を作る方法
当記事では、RunPodで My Templatesを作成して、一度作ったら安定して LoRA学習できる Kohya_ss 環境を作る方法について書いています。
今回使用するのは、Runpod Pytorch 2.2.0です。

目次
Runpod Pytorch 2.2.0

runpod/pytorch:2.2.0-py3.10-cuda12.1.1-devel-ubuntu22.04
PyTorch Environment
Ready-to-use PyTorch + Python development environment with JupyterLab and common development tools pre-installed:
- Jupyter Notebook 6.5.5
- JupyterLab with widgets and extensions
- Pre-configured workspace directory
- SSH access
- NGINX server
- Development tools
Ports
| Application | Port | Type |
|---|---|---|
| Jupyter | 8888 | HTTP |
| SSH | 22 | TCP |
PyTorch 2.2.0(CUDA12.1)の選択理由
Kohya_ss の依存ライブラリは以下が重要
- xFormers
- bitsandbytes
- torchmetrics
- accelerate
- transformers
これらのうち xFormers と bitsandbytes が「最新PyTorchに追いつくのが遅い」
そのため、PyTorch 2.4 や 2.6 では以下のリスクがあります:
- xFormers の対応 wheel が無い or 不安定
- bitsandbytes のエラー発生率が高い
- SD / LoRA 学習時の VRAM 消費が増える
- 学習途中エラー(gradient checkpointing 周り)
PyTorch 2.2 系は Stable Diffusion の学習環境として安定
事前準備
- Dockerアカウントと、DockerDesktop
- Gitが無い場合はインストールしておきます。
Gitが無い場合はインストールしてください

初心者でも迷わない!GitHub・Git・Git Bashの違いとインストール&使い方完全ガイド 生成AIを使っていると、モデル配布やカスタムノードなどで頻繁にお世話になるGitHub。 ですが、使う機会は多くても「そもそも GitHub とは何ができる場所なのか?」と疑…
- VSCodeも用意しておきます。
あわせて読みたい

【AI生成・LoRA制作向け】メモ管理とタグ編集を【VS Code】で効率化する方法 VS Codeで快適作業環境 Windowsのメモ帳を愛用していましたが、ふと、思い立ってVScodeを使い始めました。 メモ帳でも問題なかったのですが・・・やはりビジュがね。 と…
Kohya_ss用のDockerfile例
ドキュメントを参考に、Kohya_ss用のDockerfileを作成する。
https://docs.runpod.io/pods/templates/create-custom-template
リポジトリの作成
手順
- https://hub.docker.com/ で Repositories タブをクリック
- 右上の Create Repository をクリック
- Repository name: (例)
kohya-template - Visibility: Public(公開)などを選択
- Create をクリック
プロジェクトフォルダ作成
C:\Users\OwnerならDocuments に移動してフォルダを作成します。
cd Documents(例)フォルダ名my-custom-pod-templateの場合
mkdir my-custom-pod-template
cd my-custom-pod-templateEnterで作成します。
Kohya_ss のダウンロード
git clone https://github.com/bmaltais/kohya_ss.gitDockerfile の作成方法①
notepad DockerfileVSCodeや、メモ帳で作成したファイルを貼り付けて保存します。
Dockerfile の作成方法②
フォルダmy-kohya-template 内に Dockerfile を作成
Kohya_ss用のDockerfileを作成(メモ帳かVSCodeで)
(例)Kohya_ss用のDockerfileを作成
FROM runpod/pytorch:2.2.0-py3.10-cuda12.1.1-devel-ubuntu22.04
ENV PYTHONUNBUFFERED=1
WORKDIR /
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y \
python3-tk python3-venv git wget curl rsync jq && \
rm -rf /var/lib/apt/lists/*
RUN pip install --no-cache-dir jupyterlab
# イメージ内に /kohya_ss を作成
RUN git clone https://github.com/bmaltais/kohya_ss.git /kohya_ss && \
test -d /kohya_ss || exit 1
RUN cd /kohya_ss && bash setup.sh
RUN test -f /kohya_ss/gui.sh || exit 1
# ログディレクトリ作成
RUN mkdir -p /workspace/logs
# 起動スクリプト(同期機能付き)
RUN printf '#!/bin/bash\nset -e\n\n# 初回またはバージョン更新時に同期\nif [ ! -d "/workspace/kohya_ss" ] || [ ! -f "/workspace/kohya_ss/.synced" ]; then\n echo "Syncing kohya_ss to /workspace..."\n rsync -rlptDu /kohya_ss/ /workspace/kohya_ss/\n touch /workspace/kohya_ss/.synced\n echo "Sync complete!"\nfi\n\n# Jupyter起動\njupyter lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root --LabApp.token="" --ServerApp.root_dir=/ > /workspace/logs/jupyter.log 2>&1 &\n\nsleep 10\n\n# Kohya_ss起動(/workspace版を使用)\ncd /workspace/kohya_ss\nbash gui.sh --listen 0.0.0.0 --server_port 3013 2>&1 | tee /workspace/logs/kohya_ss.log\n' > /start.sh && \
chmod +x /start.sh
EXPOSE 3013 8888
CMD ["/start.sh"]docker build --no-cache -t リポジトリ名 .
docker push リポジトリ名start-kohya.sh の作成
PowerShell で作業フォルダで
my-kohya-template 内に start-kohya.sh を作成する
#!/bin/bash
cd /workspace/kohya_ss
bash gui.sh --listen 0.0.0.0 --server_port 3013保存時の注意
- ファイル名は
start-kohya.sh - 「ファイルの種類」は すべてのファイル にする
- 文字コードは UTF-8
- 行末は LF(Unix) にする(Windows メモ帳は CRLF になるので注意。VSCode などなら右下で LF に変更できます)
実行権限を付与
Dockerfile 内で自動で付与する場合は不要
docker run --rm -it -v ${PWD}:/workspace ubuntu bash -c "chmod +x /workspace/start-kohya.sh"
ビルド
フォルダ内に移動して
(例)フォルダ名my-kohya-templateの場合
cd C:\Users\Owner\Documents\my-kohya-templatePowerShell 上で
docker build -t my-kohya-template .二回目以降はキャッシュをクリアした方がいい
(例)Runpodで sakasa15/kohya-runpod:v1 を使用。
docker build --no-cache -t リポジトリ名 .
docker push リポジトリ名ビルドが成功すると、my-kohya-template というイメージが作成される
-t my-kohya-templateはイメージ名(自分の好きな名前でもOK)- 最後の
.は「このフォルダの Dockerfile を使う」という意味 - ビルドには 3〜10 分ほどかかる
ユーザー名の確認方法
Docker Hubにログインして、ユーザー名を確認してください。
右上のアイコンをクリック → プロフィールを見ると、正確なユーザー名が表示されます。
最後に以下のようなメッセージが出れば成功
“` Successfully built xxxxxxxxx Successfully tagged ユーザー名/kohya-template:latest
Docker Hubにプッシュ
ビルドが完了したら、次はDocker Hubにプッシュする
docker push yourusername/kohya-cuda12:latest②
docker push yourusername/イメージEnterを押すと、アップロードが始まります。
latest: digest: sha256:xxxxx size: xxxxと表示されれば完了です!
その後、RunPodでテンプレートを作成して、Podをデプロイする。
(例)
docker tag my-kohya-template yourusername/イメージ名+Vr
docker push yourusername/イメージ名+VrDockerHub にアップロードして RunPod や他マシンでも利用可能
Docker Hubにログイン(できない時)
docker loginユーザー名とパスワードを入力
Username: “` ここで `ユーザー名` と入力してEnter
次にパスワードを聞かれる
Password: “` ここでDocker Hubのパスワードを入力してEnter
RunPod Registry 用にタグ付け
(例: RunPod ユーザー名が abc123 の場合)
docker tag my-kohya-template registry.runpod.io/abc123/イメージ名+VrRunPod にログイン
docker login registry.runpod.ioPush(アップロード)
docker push registry.runpod.io/abc123/イメージ名+Vrコンテナの起動(GUI 起動)
docker run --gpus all -p 3013:3013 イメージ名RunPodでのテンプレート作成
ステップ1: テンプレート作成画面を開く
New Template をクリック
ステップ2: 以下を入力
Template Name:
イメージ名Container Image:
username/イメージ名+VrContainer Disk:(例)
60Expose HTTP Ports:
3013Expose TCP Ports: 空欄
Environment Variables: 空欄
Container Start Command: sleep infinity
Docker Command: 空欄
ステップ3: 保存
Save Template をクリック
最後に以下のようなメッセージが出れば成功
Running on local URL: http://0.0.0.0:3013Name: 任意の名前
Public Template:(共有したい場合はチェックを入れる)
Type: Custom
Compute Type:
Container Image: ここでは、runpod/pytorch:2.2.0-py3.10-cuda12.1.1-devel-ubuntu22.04
Container Start Command:
Container Disk: ここでは60GB
Volume Mount Pathk:
HTTP Port:下の表を参照(start.sh で WebUI を起動)
Environment Variables:DISABLE_SYNC=1
DISABLE_SYNC=1 の設定場所とタイミング
設定場所
RunPod では Pod 起動前に環境変数として設定します。
- GUIから設定する場合
- RunPod ダッシュボードで Pod 作成画面を開く
- Environment Variables(環境変数)欄に
DISABLE_SYNC=1と入力
Key: DISABLE_SYNC
Value: 1 (有効化)
Pod 起動時にこの環境変数を設定すると、Kohya_ss や LoRA学習中の ネットワークボリューム同期による遅延・失敗を防げる
安定させるポイント
- ベースコンテナの選定
- CUDA + PyTorch + Python が揃ったものを選ぶ
- 例:
runpod/pytorch:2.2.0-py3.10-cuda12.1.1-devel-ubuntu22.04 - Kohya_ss は GPU メモリを大きく使う
- 永続ストレージ(Volume Disk)を必ず設定
/workspaceをマウントしてモデルや学習済みデータを保存DISABLE_SYNC=1を設定すると学習処理が高速化(Pod内部のみ同期)
- 起動スクリプトを作る
start.shで依存ライブラリのインストール → Kohya_ss GUI 起動- GUI ポートは 3000 など任意で指定
- 初回だけ依存ライブラリのインストールに時間がかかるので注意
- My Templates に保存
- これで安定した LoRA 学習環境を再現可能
- 学習時の注意
- batch size や resolution は VRAM に応じて調整
- rank / network dimension など大きくするとメモリ不足になりやすい
