目次

Web検索はbingがおすすめ!

sd-scriptsの実行パラメーターをtomlファイルに記述する (--config_file オプションの利用) - Stable Diffusion

--config_file オプションを利用して、sd-scriptsの実行パラメーターをtomlファイルに記述する方法を紹介ます。

概要

こちらの記事では、sd-scriptsを利用した学習の 実行手順を紹介しました。
sd-scriptsの実行時には次のコマンドを実行します。非常に長いコマンドでオプションの数も多く、入力や管理が大変です。 バッチファイルにすることで、管理はしやすくなりますが、もっとわかりやすく管理したいです。
コマンドの例
accelerate launch --num_cpu_threads_per_process 1 sdxl_train_network.py 
--pretrained_model_name_or_path=D:\\data\\model\\sdXL_v10VAEFix.safetensors 
--dataset_config=D:\data\lora-toricchi-xl\config.toml 
--output_dir=D:\data\lora-toricchi-xl\output 
--output_name=toricchi 
--save_model_as=safetensors 
--prior_loss_weight=1.0 
--max_train_steps=500 
--learning_rate=1e-4 
--optimizer_type=AdamW8bit 
--xformers 
--mixed_precision="bf16" 
--cache_latents 
--gradient_checkpointing 
--save_every_n_epochs=1 
--persistent_data_loader_workers 
--network_train_unet_only 
--cache_text_encoder_outputs 
--network_module=networks.lora
config.toml
[general]
enable_bucket = true 

[[datasets]]
resolution = 1024
batch_size = 1

[[datasets.subsets]]
image_dir = 'D:\data\lora-toricchi-xl\toricchi'
caption_extension = '.txt'
num_repeats = 1

対処法

sd-scriptsの version 0.5.2 以降では、コマンド実行時のオプションのパラメーターをtomlファイルに記述できるようになりました。
上記のコマンドは次のコマンドに置き換えられます。
コマンドの例
accelerate launch --num_cpu_threads_per_process 1 sdxl_train_network.py --config_file=D:\data\lora-toricchi-xl2\config.toml

設定ファイルはtomlファイルに記述します。
セクション([....])の記述はプログラムの実行では使われないようなので、記述しなくても動作します。
パスの区切り \\\ と2つ記述する必要があります。
config.toml
[model_arguments]
pretrained_model_name_or_path = "D:\\data\\model\\sdXL_v10VAEFix.safetensors"

[additional_network_arguments]
network_train_unet_only = true
cache_text_encoder_outputs = true
network_module = "networks.lora"

[optimizer_arguments]
optimizer_type = "AdamW8bit"
learning_rate = 1e-4

[dataset_arguments]
dataset_config = "D:\\data\\lora-toricchi-xl2\\dataset.toml"
cache_latents = true

[training_arguments]
output_dir = "D:\\data\\lora-toricchi-xl2\\output"
output_name = "toricchi"
save_every_n_epochs = 1
save_model_as = "safetensors"
max_train_steps = 500
xformers = true
mixed_precision= "bf16"
gradient_checkpointing = true
persistent_data_loader_workers = true

[dreambooth_arguments]
prior_loss_weight = 1.0

従来のtomlファイルはデータセット用の設定のため、わかりやすいよう dataset.toml に名称変更しました。
dataset.toml
[general]
enable_bucket = true 

[[datasets]]
resolution = 1024
batch_size = 1

[[datasets.subsets]]
image_dir = 'D:\data\lora-toricchi-xl2\toricchi'
caption_extension = '.txt'
num_repeats = 1
コマンドを実行すると、従来と同じように学習できます。


著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。
掲載日: 2023-08-12
iPentec all rights reserverd.