概要

前回解説したsd-scriptsのテンプレートで使いまわせる.windosで使えるBatファイルの作り方です。
Batファイルはコマンドプロンプトのコマンド(命令)をファイルに保存しておいて、実行することで毎回コマンドを書かなくて済むテンプレートを作ることができます。
今回はsdxlのlora学習設定です。

前回のインストールしたフォルダを開きます。

テキストファイルを新規作成します。

解説画像

テキストファイルの名前を拡張子(.txt)を含めてlora.batに変更します。

解説画像

lora.batファイルをメモ帳で開きます。

解説画像

rem sd-scriptsのパス 自身の環境に合わせて変更してください

set venv_path="I:\demo\sd-scripts"を入力

解説画像

set image_path="I:\demo\dataset"
set output_path="I:\demo\output"
set input_reg_data_dir=" "
上から学習フォルダ・出力したlroaの保存フォルダ,正規化フォルダ、正則化(使うときはフォルダ名を指定)の設定です。

解説画像

set file_prefix="flog"
set ckpt_file="I:\demo\StableDiffusion\anyillustriousXLWith_10.safetensors"
学習したファイルの名前の設定と、lora学習に使うベースモデルの設定。

解説画像

cd /d %venv_path%
call .venv\Scripts\activate.bat
仮想環境のあるフォルダに移動して仮想環境に入ります。

解説画像

set train_batch_size=3
set num_epochs=8
set save_every_n_epochs=1
set learning_rate=6.5e-3
上から順番に
バッチ処理(同時に何個処理するか)
エポック設定(同じ設定を何セットするか)
Learning rate(どれだけの強さで学習するか)

解説画像

call :main
pause
exit
main処理を呼び出して実行していったん止めてコマンドプロンプトの処理を終える

解説画像

:main
accelerate launch --num_cpu_threads_per_process 4 sdxl_train_network.py ^
--network_module networks.lora^
--pretrained_model_name_or_path=%ckpt_file% ^
--train_data_dir=%image_path% ^
--reg_data_dir=%input_reg_data_dir%^
--output_dir=%output_path% ^

解説画像

--caption_extension=".txt" ^
--resolution=1024,1024 ^
--min_bucket_reso=64 ^
--max_bucket_reso=3580 ^
--min_snr_gamma 5^
--network_dropout 0.1^
--noise_offset 0.03^

解説画像

--prior_loss_weight 1^
--train_batch_size=%train_batch_size% ^
--unet_lr=%learning_rate% ^
--text_encoder_lr=%learning_rate% ^
--learning_rate=0.0 ^
--max_train_epochs=%num_epochs% ^
--save_every_n_epochs=%save_every_n_epochs% ^
--mixed_precision="bf16" ^
--shuffle_caption ^
--save_precision="bf16" ^
--huber_c=0.1^
--loss_type l2^

解説画像

--max_grad_norm 1^
--max_token_length 225^
--max_train_steps 1500^
--lr_scheduler="cosine_with_restarts"^
--sdpa ^
--max_data_loader_n_workers=10 ^
★--sdpa ^は--xformersと同じような高速化する処理です。置換して使うことも可能です。★

解説画像

--save_model_as=safetensors ^
--output_name=%file_prefix% ^
--seed=42 ^
--network_dim=16 ^
--lr_warmup_steps=280 ^
--huber_schedule "snr"^

解説画像

--network_alpha=4^
--optimizer_type="AdamW8bit"^
--optimizer_args "weight_decay=0.12" "betas=0.9,0.99" ^
--keep_tokens=2^
--gradient_checkpointing ^
--cache_latents ^
--fp8_base^
--persistent_data_loader_workers ^
--enable_bucket ^
--sample_every_n_steps=10 ^
--sample_prompts="I:\demo\sample.txt"^
--sample_sampler="k_euler_a"
★--persistent_data_loader_workers ^ から --sample_sampler="k_euler_a" までは学習途中の画像を生成する設定です。
もし必要がなければその範囲を削除すればサンプル処理分時短できます。★

解説画像

--exit /b
:main から 始まる処理の終わりの処理です。

解説画像

control + sまたは保存で.batファイルの構築完了です。お疲れさまでした。

sd-scriptsのリンク
sd-scriptsのリンク
Contribute to kohya-ss/sd-scripts development by creating an account on GitHub.
5年AIイラスト生成と格闘したかっちゃんが、モデル学習のパイオニアツールsd-scripts(cui版)のインストールを画像付きで解説
kohya-ss/sd-scripts(cui)のインストール
"5年AIイラスト生成と格闘したかっちゃんが、モデル学習のパイオニアツールsd-scripts(cui版)のインストールを画像付きで解説"
sd-scriptsのLoRA学習コマンドを役割ごとに整理!モデル指定、学習率、VRAM節約、過学習対策、optimizer、保存設定まで、ローズちゃんとカエルちゃんが漫画でやさしく解説します。
なぜなにai漫画[sd-scriptsコマンド表(抜粋)]

おまけ漫画

ai漫画: 5年AIイラスト生成と格闘したかっちゃんが、モデル学習のパイオニアツールsd-scripts(cui版)のインストールを解説