Stable Diffusion系のLoRA学習を続けていると、「repeatとepochは結局どちらを増やすべきなのか」という疑問にぶつかります。総ステップ数を2000前後に合わせる人は多いですが、repeat多め派とepoch多め派でかなり意見が分かれています。この記事では、実際の画像生成ユーザーがどのような構成を使っているのか、repeatとepochの違いを含めて整理します。
repeatとepochの違いを整理する
まず前提として、repeatとepochはどちらも「画像を何回学習させるか」に関係しています。
| 項目 | 意味 |
|---|---|
| repeat | 1画像を1epoch内で何回使うか |
| epoch | データセット全体を何周するか |
例えば画像10枚・repeat10・epoch20なら、かなり大量に同じ画像を見ることになります。
重要なのは「総ステップ」だけではなく、どのタイミングで画像を繰り返し見せるかです。
repeat少なめ・epoch多め派が好まれる理由
最近のLoRA学習では、「repeat少なめ+epoch多め」を好む人が増えています。
理由としては、repeatを極端に増やすと、1epoch内で同じ画像を短時間に何度も見ることになり、過学習しやすいからです。
一方でepochを増やす構成だと、optimizerの更新やshuffleを挟みながら徐々に学習が進むため、比較的自然に収束しやすい傾向があります。
特にキャラクターLoRAでは、repeat過多だと「顔が固定化しすぎる」「ポーズが崩れる」「背景が焼き付く」といった症状が出やすいです。
実際によく見る構成例
現在よく見かける構成例としては以下があります。
| 画像枚数 | repeat | epoch | 傾向 |
|---|---|---|---|
| 20枚 | 5〜10 | 10〜20 | 比較的安定 |
| 50枚 | 2〜5 | 10前後 | 過学習しにくい |
| 少枚数 | 15以上 | 少なめ | 焼き付きやすい |
最近は「repeatを下げてdatasetを増やす」方向がかなり主流になっています。
結局はデータセット品質がかなり大きい
LoRA学習では、repeatやepoch以前に「画像品質」が結果を左右します。
例えば以下の条件だと少ないステップでもかなり綺麗に学習できます。
- 構図が統一されている
- タグ品質が高い
- 背景ノイズが少ない
- 表情差分が十分ある
- 解像度が安定している
逆に、低品質データセットではstepだけ増やしても崩壊しやすくなります。
2000step前後がよく使われる理由
2000step前後は、「学習しすぎないギリギリ」を狙いやすいラインとしてよく使われています。
ただしこれは万能ではなく、以下でかなり変わります。
- SD1.5かSDXLか
- キャラLoRAか画風LoRAか
- rank値
- optimizer
- caption品質
SDXLでは、むしろstepを減らす人も増えています。
最近の傾向として多い考え方
最近のコミュニティでは、以下の考え方がかなり増えています。
- repeatは必要最低限
- epochでゆっくり回す
- datasetを増やす
- stepよりvalidation重視
- 途中保存を確認しながら選ぶ
つまり、「最終epochだけ見る」のではなく、途中epochのLoRAを比較する文化がかなり強くなっています。
個人的に試されやすい安定構成
初心者〜中級者で安定しやすい構成としては、以下がよく使われます。
repeat: 5〜8
epoch: 10〜15
network dim: 16〜32
optimizer: AdamW8bit
step: 1500〜2500
特にキャラLoRAでは、repeatを盛りすぎないほうが柔軟性が残るケースが多いです。
まとめ
LoRA学習におけるrepeatとepochには絶対的な正解はありませんが、最近は「repeat少なめ・epoch多め」の構成を好むユーザーが増えています。理由は過学習を避けやすく、自然な学習になりやすいためです。ただし最終的には、データセット品質やcaption設計の影響が非常に大きく、総stepだけで決まるわけではありません。途中epochを比較しながら、自分のデータセットに合った構成を探すのが現在の主流と言えるでしょう。


コメント