画像生成AIや動画生成AIをある程度触っていると、LoRAを使わないと安定して出せないポーズや衣装、キャラクターなどが出てきます。
そのLoRAがcivitaiなどで配布されていれば良いのですが、あまりにマイナーなものだと自分でLoRAを作らないといけません。
ですが、LoRAの学習はモデルによっては高性能なGPUが必要ですし、時間もかかります。
ゲームや動画編集、ゲーム開発など、生成AI以外の用途でもGPUを使う予定があると、LoRA学習で長時間GPUを占有されるのは困ります。
それに、今はPCパーツの高騰ということもあり高性能なGPUの購入を控えていたり、あまり酷使したくたいという方も多いはず。
そこで今回は、クラウドGPUのRunpodを使用して画像生成AIモデル用のLoRAを学習する方法を書いていきます。
Runpodは以下から登録出来ます。
上記のリンクから登録することで、得点を受け取ることができます。

Runpod とは
LoRA学習手順の説明の前に、Runpodについて簡単に説明していきます。
Runpodとは、クラウド上でGPUをレンタル出来るサービスです。RTX PRO 6000などの高性能なGPUも1時間当たり$1.89 (2026年5月現在) で借りることが出来ます。
本記事では画像生成AI用のLoRA学習で使用しますが、RunpodではComfyUIを動かすことも可能なので、画像生成や動画生成にも使えます。
RunpodでLoRA学習を行う手順
それでは、LoRAの学習を行っていきます。
学習用のデータセットをHuggingFaceへアップロード
Runpodへ送るために、一旦HuggingFaceへアップロードします。Runpodへ直接アップロードする方法もあるので、そちらのやり方を行う場合はこの手順は不要です。
それでは、HuggingFaceへアップロードしていきます。
まずはHuggingFaceでリポジトリを作成します。

右上のアカウントアイコンをクリックし、「New Dataset」をクリックします。
次にリポジトリ名などを決めていきます。

名前は自由です。念の為、Privateで作成しておきましょう。
設定が終わったら赤枠で囲った作成ボタンをクリックしてリポジトリの作成は完了です。
次に、作成したリポジトリへデータセットをアップロードしていきます。
データセットは.zipで圧縮しておいてください。
フォルダは以下のようになっていればOKです。
dataset.zip → dataset → 1_dataset
それでは、アップロードしていきます。
作成したリポジトリを開いたら、「Files and versions」をクリックし、右側にある「+ Contribute」から「Upload files」を選択します。

次に、「Upload file(s)」に用意しておいた.zipファイルをドラッグ&ドロップなどで読み込ませます。

最後に、ページ下にある「Commit changes to main」ボタンをクリックし、これでアップロードが完了します。
HuggingFaceのトークンを取得
リポジトリの設定がプライベートだと、アクセスするのにトークンが必要になるので作成していきます。
まずは、アカウントアイコンをクリックし、「Access Tokens」をクリックします。

次に、「+Create new token」ボタンを押します。

以下のようなトークンの作成時の設定画面が開くと思います。

・Token type
Token typeは今後の為に”Fine-grained”で作成しておきましょう。
・Token name
トークンの名前です。自由に設定してください。
・User premissions
赤枠で囲った部分すべてにチェックを入れておきましょう。
ここまでの設定が終わったら、下の方へスクロールし「Create token」ボタンを押します。

出てきた「hf_」で始まるトークンをコピーして、メモ帳などに貼り付けておきましょう。
これでトークンの作成は完了です。
スポンサーリンク
必要ファイルのダウンロード
モデルダウンロード用のコマンドなど、必要なコマンドをまとめたJupyterLab用のノートブックである .ipynbファイルとサンプル画像生成用のプロンプトファイルを配布します。
必要に応じてダウンロードしてください。
HuggingFaceのトークン入力について
HuggingFace関係のコマンドがあるノートブック全てにトークン入力用のセルを設けていますが、どこか1カ所で入力を行えば、他のセルで行う必要はありません。
Runpodへの入金
まずはGPUをレンタルする為に入金します。
課金する為に、左側のメニュー一覧から「Billing」をクリックし、Billingページへアクセスします。

アクセスしたら、「Choose an amount to add.」から支払金額を決めます。”Other”を押すと$10から金額を指定できます。
金額を指定したら、画面右側にある支払方法を選択して、支払いを行います。
クレジットカード (Stripe経由)と暗号通過に対応しています。
LoRA学習なら (業務用のGPUを使用しなければ) $10あれば十分です。
テンプレートの用意
Runpodを使うにあたり必要になるのがテンプレートです。
テンプレートとは、目的のツールを動かす為に必要なライブラリなどの設定を予め保存しておけるファイルの事です。
RTX5090など、最新のGPUを使用する場合、デフォルトで選択されているテンプレートを変更する必要がありますが、以下のリンクから開くと対応したテンプレートが選択された状態で開くので、変更する手間が省けます。
Pod環境の構築
上記のテンプレートへアクセスしたら、GPUやストレージなどを設定し、Podを起動する準備を行います。

・Select an instance
この欄から使用するGPUを選択します。GPUを選択したら下へスクロールし次の設定項目へ。
・Configure deployment
この項目では、Podの名前やストレージを決めていきます。

・Pod name
Podの名前です。自由に決めてください。
・Pod template
先述したテンプレートリンクからアクセスしている場合は変更する必要はありません。
もし、リンクからアクセスしていない、違うテンプレートを使用したいという場合は適宜変更してください。
・GPU Count
使用するGPUの数を指定します。LoRA学習であれば1つで十分です。
当然ですが、使用する数を増やせばその分料金を上がります。
・Instance pricing
On-Demandを選択します。
その下の「Encrypt volume」「SSH terminal access」「Start Jupyter notebook」のチェックはデフォルトのままで構いません。
次は「Storage configuration」からストレージの設定を行います。

ストレージの種類は「Container disk」「Volume disk」「Network volume」の3種類があります。
・Container disk
このストレージはPodの稼働を止めるとデータが削除される一時的なストレージです。
完成したLoRAファイルや、今後再利用する予定のあるモデルデータなどを入れるのはおすすめしません。
・Volume disk
このストレージはそのPodに紐づけられたストレージです。Podの稼働を止めても残りますが、Podを削除すると消えます。ただし、そのPod以外では使えません。
今後、再利用の予定があるモデルファイルや完成したLoRAファイルなど、消えてほしくないデータを保存するのに使いましょう。
・Network volume
このストレージはリージョンごとに割り振られるストレージです。使用するGPUのリージョンが同一であれば、Podを変えても同じデータを使えます。
保存するファイルは、「Volume disk」と同じで良いと思います。
また、「Volume disk」と「Network volume」はPodを停止していても維持費がかかります。料金はストレージの容量により変わるので、ストレージの容量は考えて設定しましょう。
テンプレートの設定により、デフォルトでストレージ容量は割り振られていますが、使用するモデルやデータセット、保存されるLoRAの容量など、必要に応じて変更してください。
ここまでの設定が終わったら、「Deploy On-Demand」ボタンをクリックしてPodを起動します。
スポンサーリンク
Podの起動後
「Deploy On-Demand」ボタンでPodを起動すると、画面右側に以下のような一覧が出ています。

「HTTP services」にあるポート番号8888がReadyになったら、リンクになっている”JupyterLab”をクリックしてJupyterLabを開きます。
開くと以下のような画面が表示されます。

画面左の赤で囲った部分に配布したサンプル画像用のプロンプトファイルと.ipynbファイルを全てドラッグ&ドロップでアップロードください。
後はモデルなどをダウンロードして学習を実行するだけです。
RunpodKohyaLoRAT1.ipynbファイルでモデルのダウンロード
まずは、学習に必要なモデルをダウンロードする為、RunpodKohyaLoRAT1.ipynbを開いてください。

開いたら上のセルから順番に実行します。
実行したいセルをクリックして選択した後、画面上あたりにある再生ボタンを押すことで実行できます。
それぞれのセルについて簡単に説明していきます。
1.作業フォルダとモデル保存先を作成
このセルではモデルやデータセット、学習済みのLoRAファイルの保存フォルダを作成します。
フォルダはworkspace直下にそれぞれ作られます。
2.Hugging Face Hub用ライブラリをインストール
このセルではHuggingFaceに関するコマンドを扱うためのライブラリをインストールします。
3-1.Hugging Faceトークンを入力
モデルをダウンロードするHugging Faceのリポジトリがプライベートの場合、このセルを実行してトークンを入力してください。
3-2.モデルをダウンロード
このセルでは学習に使うモデルをダウンロードします。
デフォルトでは以下のようになっています。
hf download circlestone-labs/Anima split_files/diffusion_models/anima-base-v1.0.safetensors --local-dir /workspace/models
hf download circlestone-labs/Anima split_files/text_encoders/qwen_3_06b_base.safetensors --local-dir /workspace/models
hf download circlestone-labs/Anima split_files/vae/qwen_image_vae.safetensors --local-dir /workspace/models
mv /workspace/models/split_files/diffusion_models/anima-base-v1.0.safetensors /workspace/models/anima-base-v1.0.safetensors
mv /workspace/models/split_files/text_encoders/qwen_3_06b_base.safetensors /workspace/models/qwen_3_06b_base.safetensors
mv /workspace/models/split_files/vae/qwen_image_vae.safetensors /workspace/models/qwen_image_vae.safetensors
rm -rf /workspace/models/split_files
この場合、Anima関係のモデルを一式でダウンロードしています。
ダウンロードした後、models直下に全てのファイルを移動させ、空になったsplit_filesを削除しています。
もし、違うモデルをダウンロードしたいという場合は書き換えて使用してください。
4.ダウンロード結果を確認
このセルでダウンロードが成功しているか確認出来ます。実行しなくても問題ありません。
これで、RunpodKohyaLoRAT1.ipynbは完了です。
次はRunpodKohyaLoRAT2.ipynbでKohya sd-scriptsを設定していきます。
RunpodKohyaLoRAT2.ipynbでKohya sd-scriptsをインストール
RunpodKohyaLoRAT2.ipynbを開き、先ほどと同じようにセルを実行していきます。
1. sd-scriptsのセットアップ
このセルでsd-scriptsのインストールや仮想環境の作成などを行います。
git checkoutを行っていますが、こちらは執筆時に使用したコミットを記載しているだけなので、最新版を使用する場合は削除してください。
2. accelerate configの設定
このセルでaccelerate configの設定を行えます。
3. インストール確認
このセルでCUDAなどが問題ないか確認出来ます。実行しなくても問題ありません。
これでsd-scriptsのインストールは完了です。
次はRunpodKohyaLoRAT3.ipynbでHuggingFaceにアップロードしたデータセットをダウンロードしましょう。
RunpodKohyaLoRAT3.ipynbでデータセットをダウンロード
JupyterLabへドラッグ&ドロップで直接アップロードする場合、この手順は不要です。
先ほどまでと同じようにRunpodKohyaLoRAT3.ipynbを開いてセルを実行します。
1. Hugging Faceトークンを入力
このセルを実行すると、HuggingFaceのトークン入力欄が表示されるので、そこにトークンを貼り付けてEnterキーを押してください。
2. データセットのリポジトリ指定
このセルでは、データセットが入ったリポジトリと、Runpodでの保存先を指定します。
3. データセットのダウンロードと展開
このセルでは、HuggingFaceにアップロードした.zip形式のデータセットをダウンロードし、展開します。
4. 展開したフォルダの確認
展開したフォルダを確認できます。実行しなくても問題ないです。
これでデータセットのダウンロードと展開は完了です。
次のRunpodKohyaLoRAT4.ipynbはいよいよLoRA学習です。
RunpodKohyaLoRAT4.ipynbでLoRA学習
それではいよいよ、LoRA学習を行います。RunpodKohyaLoRAT4.ipynbを開いて、今までと同じようにセルを実行です。
1. sd-scriptsフォルダへ移動
このセルを実行してsd-scriptsフォルダへ移動します。
2. パス設定
学習で使うモデルやデータセット、保存先、保存されるLoRAファイルの名前などを設定します。
“train_data_dir”に代入される値に、学習画像やキャプションが入っている「1_〇〇」というフォルダが入っているフォルダを指定してください。
以下のような場合は、太文字のフォルダを指定。
/workspace/dataset/TestFolder/1_TestFolder
学習に使うモデルやVAEなどを変更しない場合は、”train_data_dir”以外の変更はありません。
3. 学習設定
ここでLoRA学習で使うパラメーターの設定を行います。
4. パス確認
実行前にパスの確認を行えます。実行しなくても問題ありません。
5. LoRA学習実行
LoRAの学習をスタートします。
あとは学習が終わるのを待つだけです。
学習が終わったら、RunpodKohyaLoRAT5.ipynbでOutputフォルダをHuggingFaceへアップロードします。
RunpodKohyaLoRAT5.ipynbでOutputをHuggingFaceへアップロード
RunpodKohyaLoRAT5.ipynbでは学習済みのLoRAファイルをHuggingFaceへアップロードします。
JupyterLabから直接ダウンロードする場合、この手順は不要です。
1. トークン入力
このセルを実行すると、HuggingFaceのトークン入力欄が表示されるので、そこにトークンを貼り付けてEnterキーを押してください。
2. アップロードリポジトリ設定
アップロードするHuggingFaceのリポジトリの設定を行います。
3. フォルダ確認
フォルダの確認を行います。実行しなくても問題ありません。
4. アップロード
HuggingFaceへアップロードを開始します。
これで指定したリポジトリへ.zipファイルがアップロードされます。
あとは、HuggingFaceからダウンロードすればOKです。
Runpodの注意点
学習終了後にPodを止めるのを忘れないようにしましょう。Podが稼働し続けている間は料金が発生します。
ストレージはPodが停止している状態でも容量に応じて料金が発生します。必要以上に容量を大きくするのはやめましょう。
しばらく使用しないなら、ストレージやPod自体を削除するのも手です。
Podの停止方法
学習終了後は料金が発生しないようにPodを停止させましょう。

Podの停止はPod起動時に表示される画面から、「Stop」ボタンを押すと止められます。
もし途中で画面を閉じてしまった場合は、Runpodトップ画面の左側のメニュー一覧から「Pods」をクリックするとPod一覧を開けるので、そこから終了してください。
Podの削除方法
Volume diskを使用している場合、Pod停止中でも維持費として料金が発生してしまいます。
しばらく使用せず、保存されているデータが消えても問題ないならPod自体を削除してしまっても良いかもしれません。

Podの削除は、Podの停止後に表示される「Terminate」ボタンをクリックです。
ストレージの削除方法
Network volumeは存在しているだけで料金が発生します。
しばらく使う予定もなく、保存しているデータも必要ないのなら削除しても良いかもしれません。

削除方法は、Runpodトップ画面の左側のメニュー一覧から「Storage」をクリックすることでストレージ一覧を開けます。この画面から削除したいストレージの削除ボタンをクリックです。
最後に
これでRunpodを使用してLoRAの学習をすることが出来るようになりました。
PCパーツが高騰し高性能なGPUの購入を躊躇っている方や、夏の暑い日にGPUを酷使したくないという方でも安心してLoRAを作れますね!
それでは!



コメント