LoginSignup
1

More than 1 year has passed since last update.

低スペグラボ GTX1660Ti 6GB で LoRAで画像を学習させるときにハマったこと【stable diffusion】

Last updated at Posted at 2023-02-26

自分の使ってるグラボが大分前に発売された GTX1660Ti VRAM6GB なのですが、このグラボだと有名wikiやブログで紹介されているようなLoRAの設定だと、トレーニングの実行はできるんですが、学習されていない、というような現象が発生したため、その解決方法をメモがてら残しときます

LoRAで学習を試したくてグラボも最新のものを持っている、というような人にこの記事は向いてないです

一度試してみて学習されない現象が発生したときに、もしかしたら解決の糸口になるかもしれない、という記事です

LoRA学習環境作る

インストール

derrian-distro/LoRA_Easy_Training_Scripts を使って環境作るのがとても楽です
これ一つで完結します

適当なディレクトリを切ってそこに以下から install_sd_scripts_v5.bat をDLして設置
実行します
以上で環境構築は完了

学習元になる画像を用意する

この辺を参考に用意します

Windowsの場合、ページングファイルを大きくする

Windowsデフォルトだと自分の場合仮想メモリが足らなくなりました
以下を参考に、ページングファイルを100GB程度まで拡張しました(要再起動

学習の設定 (最重要&ハマりポイント)

run_command_line.bat を使うと実行開始なのですが、
学習の設定はArgsList.py にかきます

ベースモデルや画像フォルダなど設定します

が、、GTX1660Ti VRAM6GBというLoRA動作ギリギリのグラボ。それだけではダメでした

結論から言うとGTX1660Ti VRAM6GBでは

# self.mixed_precision: str = "fp16"
# ↓
self.mixed_precision: str = "no"

こうしないとトレーニングは成功するが、学習されませんでした

別の方法で環境を作った人も、mixed_precision(名前はちょっと違う可能性あり)を設定する部分があると思うので、見直してみてください

同じ状況になった人は試してみてください

LoRA学習にかかる時間

  • AdaFactor
  • optimizer_args: Union[dict[str:str], None] = {"relative_step": True, "scale_parameter": True, "warmup_init": False}
  • learning_rate:1e-3
  • net_dim:32
  • alpha:16
  • batch_size:2
  • xformers:true
  • mem_eff_attn:false

で学習ステップ580(バッチ2なので実質1160)に2時間弱という感じです
AdamW8bitなら1時間ちょっとくらいでしょうか

これくらいで一旦どの程度学習できてるか確認するのがいい感じです

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1