その他

OneTrainerの使い方

更新日:

OneTrainerの使用方法についてこの記事で説明します。

※ こちらで配布しているバッチファイルにてRadeonでOneTrainerが使用できます。

OneTrainerを採用した理由

筆者はLoRAの作成に関しては日本で人気の高く情報量の多いkohya_ssをずっと使ってきました。

そのため、可能ならば今回もkohya_ssを使いたかったのですが、以下の理由でOnetrainerを採用しています。

1.Windows・pipのROCmが唯一対応しているPython3.12に対応→数あるTrainerの中でもOnetrainerくらいしか筆者は知りません。

2.Zludaへの対応実績があるなど、AMD GPUとの親和性が高い唯一のTrainer

ということです。

kohya_ssのほうが優れている点としては、kohya_ssはsd-scriptのGUIフロントエンドのため、操作に慣れたらsd-scriptへ移行できるという点です。

GUIの操作性に関してはどちらも使いづらいところがあって一概にどちらが優れているとはいいがたいですね。

また日本語での解説が多く情報量が圧倒的です。

日本でLoRA作成といえばイコールkohya_ssといっても過言ではありません。

逆にOnetrainnerが優れているところはGUIがこなれているところですが、この感じ方に関しては個人差もあると思います。

欠点は日本語での情報がほとんど存在しないことです。

基本的にLoRA作成は慣れている人向けのものですから、日本語でなされているわずかな解説も簡素なものが多いです。

 

前準備

準備として、

Windows11:「設定-システム-詳細設定」から開発者モードをオンにしてください。

※ オンにしなくても動作はしますが、警告が出る場合があります。

また、以下のURLから「sd_xl_base_1.0.safetensors」をダウンロードしておいてください。

https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/tree/main

サンプル用LoRAの作成に使います。

解説されなくても使い方はわかるという方には必要ないですが、そういう方は日本ではあまり多くないと思います。

RadeonでLoRAを作成したい場合は面倒でもこの解説の手順の通りに一度やってみることをお勧めします。

※ サンプル用の画像は「\misc」の中の圧縮ファイルの中に含まれており、セットアップすると自動的に展開されます。

 

セットアップ方法

「OneTrainer.bat」をダブルクリックしてください。

onetrainerセットアップメニュー

初回のセットアップの時には上のメニューが表示されますので該当するGPUの番号を選択して[エンター]キーを押してください。

※venvを削除しても表示されますのでvenvのみを削除してvenv環境のみを再セットアップすることもできます。

自動でセットアップが始まります。

各GPUの具体的な機種やモジュールの対応状況は元のページをご覧ください。

onetrainer起動メニュー

セットアップがすべて終わると上のメニューが表示されます。

何もしないと5秒で自動でonetrainerが起動しますので、起動するだけなら放置してもOKです。

onetrainer本体のアップデートをする場合は5秒以内に[2]を押してください。

アップデートが始まります。時々アップデートをするようにしてください。

アップデートが終わるとまた上のメニューが表示されます。

onetrainer_default

※ 画像をクリックすると別Window・タブで拡大します。

 

onetrainerが起動すると上の画面が表示されます。ちなみにブラウザではなく、普通のアプリのように独自のWindowが表示されます。

いったんここで、onetrainerの画面を閉じてください。

インストールされたフォルダを開いてください。

「onetrainer」と「ot-dat」という二つのフォルダがあるはずです。

「前準備」でダウンロードした「sd_xl_base_1.0.safetensors」を「ot-dat\models」に移動させてください。

コピーが終わったらもう一度Onetrainerを起動してください。

onetrainer_profile

onetrainerの左上のメニューに以下の部分がありますので赤丸で囲った部分をクリックしてください。

profile

上のような一覧が表示されます。

profile_1

下の赤丸で囲った逆三角形の部分を「AOI_Samples」が出るまでクリックしてください。

出たら「AOI_Samples」を選択してください

このProfileはわたくしが作成したSamples画像用のプロファイルです。

onetrainer起動画面

※ 画像をクリックすると別Window・タブで拡大します。

 

読み込むと上のように表示されるはずです。

しかし、残念ながらそのままでは使えませんので変更してください。

 

作業フォルダなどの変更

「general」メニュー

まずメインメニューの「general」から

Workspace Directory

「WorkSpace Directory」の「D:/ai_imagen/ot-dat/ws」を自分の環境に合わせて変更してください。

「[あなたのインストールパス]/ot-dat/ws」になります。

フォルダ参照

入力欄の横にある赤線で囲った部分をクリックするとフォルダーを参照できます。

同じように「WorkSpace Directory」のすぐ右横にある「Cache Directory」も自分の環境に合わせて変更してください。

 

学習用モデルとLoRAアウトプットファイルの設定

modelメニュー

メインメニューの「general」の右横にある「model」をクリックして選択してください。

「Base Model」の「D:/ai_imagen/ot-dat/models/sd_xl_base_1.0.safetensors」を先ほどと同じように自分の環境に合わせて変更してください。

「Model Output Distination」も同様に変更してください。

「Model Output Distination」は作成するLoRAの名前も指定しますので、新しいLoRAを作るときは必ず名前を変更してください。

 

学習画像の追加

個人的にはここが一番のつまづきポイントでした。

conceptsメニュー

メインメニューの「concepts」をクリックしてください。

「学習画像=concepts」です。

Add Concepts

上の赤丸をつけた部粉をクリックしてください。

Conceptsアイコン

すると上の大き目のアイコンが追加されますので、こちらをクリックしてください。

concepts個別メニュー

※ 画像をクリックすると別Windows・タブで拡大します。

 

上のメニューが表示されます。

入力後のconcepts個別メニュー

※ 画像をクリックすると別Windows・タブで拡大します。

 

上のように入力してから一番下のOKをクリックしてください。

Pathは「[あなたのインストールパス]\ot-dat\train\AOI_Sample」になります

 

設定後のconceptsメニュー

設定が終わると内部の画像がアイコンになり、上のように表示されるはずです。

 

参考:concepts画像メニューの説明

conceptsメニュー詳細説明

  1. 削除
  2. 追加
  3. 有効/無効切り替え

 

学習の設定

Trainingメニュー

trainingをクリックしてください。

Optimizer ADAMW

「AOI_Sample」の設定ではOptimizerが「ADAMW」になっています

Optimizer ADAMW_8BIT

RDNA2/3/4の場合、「ADAMW_8BIT」に変更してください。

※ Radeon RX6000シリーズdGPU(APUは含みません)、Radeon RX7000シリーズdGPU(APUは含みません)、Radeon 890M、Radeon 8000Sシリーズ、Radeon RX 9000シリーズdGPUのみ対応です。

 

学習開始

学習開始

Window左下にある緑色のボタン「Start Training」をクリックすると学習が始まります。

お疲れさまでした。

今回の設定は3000stepsです。RX9070XT 16GB=RDNA4(bitsandbytesあり)で約2時間30分ほどかかりました。

 

LoRA学習 パラメータ解説まとめ

先にお断りしておきますが、LoRAを作られている方はすでに多くの自分流を持っていると思います。

この解説は初級者の方が自分なりの基準を見つけるための道しるべとして記されています。

多くの方の「自分流」を否定するものではないのでその旨ご了承ください。

 

1. ステップ数の基本計算式

総ステップ数 = floor(画像枚数 × リピート数 / バッチサイズ) × エポック数

floor() = 端数切り捨て(余った画像は1ステップに満たないため破棄)

※ リピート数=メインメニューの「concepts」のアイコンをクリックしてメニュー内で設定、バッチサイズ=メインメニューの「trainnig」内の[Local batch size]で設定、エポック数=メインメニューの「trainnig」内の[epochs]で設定です。

バッチ回数という独立したパラメータは存在しない。
「1ステップ = 1回のバッチ処理」であり、バッチ回数 = ステップ数そのもの。

 

2. 各パラメータの役割と影響

パラメータステップ数への影響学習内容への影響
画像枚数増えるほどステップ増データの多様性に影響
リピート数増えるほどステップ増過学習リスク増(連続出現)
バッチサイズ増えるほどステップ減勾配の安定性に影響
エポック数増えるほどステップ増過学習リスク増
max_train_steps強制上限(エポックより優先)途中打ち切りが起きる
gradient_accumulation_steps影響しない実効バッチサイズが増加

sd-scripts / kohya_ss 固有の要素

パラメータ影響
--gradient_accumulation_steps NN回分蓄積してから更新。ステップカウントは変わらないが実効バッチサイズが batch_size × N になる
--max_train_stepsエポック計算を無視して強制上限。エポック指定より優先
--min_bucket_len / --max_bucket_lenバケット分割により理論値より若干少なくなる場合がある
kohya_ss フォルダ名10_mycharacter/ の数字がnum_repeatsに対応

 

3. リピートとエポックの違い

「リピート = 正則化画像用」は半分誤解

sd-scriptsのフォルダ構成に由来する誤解。リピートは学習画像・正則化画像どちらにも機能する汎用パラメータ。

train_data/
  10_mycharacter/   ← 学習画像(リピート10)
reg_data/
  1_person/         ← 正則化画像(リピート1)で数を揃える使い方が広まった

 

ソース:https://github.com/kohya-ss/sd-scripts/blob/main/docs/config_README-en.md より
num_repeats の説明として「Specifies the number of repeats for images in a subset. This is equivalent to --dataset_repeats in fine-tuning but can be specified for any training method」と明記されています。

「any training method」=学習画像にも正則化画像にも等しく適用される汎用パラメータだということが公式に書かれています。

リピートとエポックの挙動の違い

リピート増加エポック増加
同画像の出現タイミング1エポック内で連続しやすい全画像一巡後に再登場
過学習リスク比較的高い比較的低い
ステップ数の増やし方1エポックあたりを増やすエポック数で積み上げる

「エポックを増やすほど効率が落ちる」について

半分正しいが正確には「適切な総ステップ数を超えたことで学習余地が減る」のが原因。エポック数自体が原因ではない。

 

4. Learning Rate Warmup Steps

「効率を上げる」のではなく「学習序盤の破滅的な更新を防ぐ安定装置」

  • 結果として学習が安定し、間接的に効率的になる
  • LoRAは総ステップ数が少ないため、Warmupの割合を大きくしすぎると逆効果
  • 目安は総ステップ数の5〜10%

warmupについて

 

5. Warmup Stepsと各パラメータの関係

warmupが1エポック以内に完了するように、1エポックのステップ数を設定する」

つまり条件式は:

warmup_steps ≤ steps_per_epoch

warmup_steps = total_steps × 0.05〜0.10
steps_per_epoch = 画像枚数 × リピート / バッチサイズ

なぜ「エポックをまたぐwarmup」が問題か

OneTrainerのLRスケジューラはエポック境界で挙動が変わる実装が多く、warmupがエポック1をまたいでリセット/再計算されるとwarmupが機能しているように見えて実際には毎エポック序盤にLRが暴れるという状況になり得ます。

30枚・batch=2での具体計算

リピートsteps/epochwarmup10%・500総ステップなら
115warmup=50ステップ → 3エポックまたぐ
575warmup=50ステップ → 1エポック以内
10150余裕あり ✅

結論

「warmup完了 ≤ 1エポック」を満たすようにリピートを決め、その後エポック数で総ステップを調整する、という順番が正しい設計の流れです。

 

6. Dataloader Threads

「一度に学習する枚数」ではなく、CPUによる次バッチの先読み並列数。学習内容には一切影響しない純粋なI/O最適化。

GPUが計算中 → CPUが次バッチを並列で先読み → GPUの待ち時間を削減

副作用内容
CPUメモリ消費増先読み分がRAMに乗る
CPU負荷増Augmentation等が並列処理される
再現性の低下処理順が不定になりシードが完全一致しない
多すぎると逆効果コンテキストスイッチのオーバーヘッド

小規模なLoRA学習では2〜4で十分

 

7. OneTrainer固有の設定

Balancing フィールド

Concept設定画面の Balancing フィールドで、数値とモードをセットで指定する。

※ 「OneTrainerメインメニュー」で「Concepts」を選択→「Conceptsアイコン」をクリックすると設定画面が現れるので「generalメニュー」の中にあります。

Balancingについて

モード数値の意味挙動
REPEATSリピート回数画像枚数 × 数値 がサンプル数になる
SAMPLE絶対サンプル数画像枚数に関係なく指定数固定

kohya_ssのフォルダ名指定(整数のみ)と異なり、複数ConceptごとにBalancingを個別設定できる柔軟な設計になっている。

その他の考慮要素

パラメータ影響
Warmup Steps総ステップ数の一部をウォームアップに充てる
Gradient Accumulation Steps実効バッチサイズが変わるがステップ数は変わらない
Concept Weight複数コンセプト時、weightの比率でサンプリング頻度が変わる
Estimated StepsGUI上にリアルタイム表示される(手計算の確認に便利)

 

8. AdamWの適正ステップ総数

目安:3000〜6000ステップ

条件適正ステップ数の傾向
学習画像が少ない(10〜20枚)少なめ 1500〜3000
学習画像が多い(50枚以上)多め 4000〜8000
キャラクターLoRA2000〜5000
スタイルLoRA3000〜6000

AdamWのステップ進行の傾向

  • 序盤(〜1000step) : モーメンタムが安定していない
  • 中盤(1000〜4000) : 最も効率よく学習が進む
  • 終盤(4000〜) : 過学習に差し掛かりやすい

Warmupとの相性が良く、序盤の不安定期をWarmupでカバーするのが定石。

まとめ

  • ステップ総数が同じでも、リピート重視かエポック重視かで学習の質が変わる
  • gradient_accumulation_stepsはステップ数を変えず実効バッチサイズだけ増やす
  • バケット分割(sd-scripts)により理論値より数ステップ少なくなる場合がある
  • Dataloaderはパフォーマンス最適化であり、学習結果に影響しない
  • AdamWならまず3000~6000を目安にLoss曲線を見ながら調整する

 

Appendix

Loss曲線は学習中にブラウザでhttp://localhost:6006を開くと確認できます。

学習終了後はTensorBoardの動作が終了するため確認できなくなります。

Loss学習曲線

 

 

理想的なLoss曲線

理想的なLoss曲線のグラフ

 

過剰学習のLoss曲線

過剰学習のLoss曲線のグラフ

 

過少学習のLoss曲線のグラフ

過少学習のLoss曲線のグラフ

 

※ OneTrainerのグラフ生成機能はval lossを表示しません。上はあくまでも概念図です。

 

LoRA学習の難しさ

LoRA学習の難しさは理想的なLoss曲線を描かなかったとしても自分の思った通りの絵になることもあるし、理想的なLoss曲線を描いても自分の思った通りの絵にならないこともあることです。

学習内容が必ずしも自分の希望通りになってないことがあるということです。

それは、学習させる絵の内容やタグのつけ方によっても変わります。

これといった正解は無いので(少なくともわたくしは見たことがありません)、自分なりの作り方を追求していく・・・ということになります。

もし、「学習させたい内容を100%実現し、理想のLoss曲線を描く一連の手順」というものをお持ちの方がいたらぜひその方法を公開してください。

 

 

-その他

Copyright© 自作ユーザーが解説するゲーミングPCガイド , 2026 All Rights Reserved.