kohya-ss / kohya-ss/sd-scripts

sdxl_train_network.py Error

Open
#706 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
7.2k
Forks
1.2k
Avg merge
11m
Merged PRs (30d)
2

Description

sdxl_train_network.pyでnetwork_train_unet_onlyが有効かつBlock weightを使用するとエラーで学習ができません。AdamWでは以下のエラーが発生し、ほかのOptimizerでもlist index out of rangeなどのエラーで動作しません。
commit hashは`89aae3e04fe6aa11c3da76b9b48eed16be310b14`です。
```
Traceback (most recent call last):
File "G:\sd-scripts\sdxl_train_network.py", line 174, in
trainer.train(args)
File "G:\sd-scripts\train_network.py", line 324, in train
optimizer_name, optimizer_args, optimizer = train_util.get_optimizer(args, trainable_params)
File "G:\sd-scripts\library\train_util.py", line 3376, in get_optimizer
optimizer = optimizer_class(trainable_params, lr=lr, **optimizer_kwargs)
File "G:\sd-scripts\venv\lib\site-packages\torch\optim\adamw.py", line 50, in __init__
super().__init__(params, defaults)
File "G:\sd-scripts\venv\lib\site-packages\torch\optim\optimizer.py", line 187, in __init__
raise ValueError("optimizer got an empty parameter list")
ValueError: optimizer got an empty parameter list
```

コマンドは以下の通りです。
```
accelerate launch --num_cpu_threads_per_process 4 sdxl_train_network.py --pretrained_model_name_or_path "G:\sd\models\Stable-diffusion\sd_xl_base_1.0.safetensors" --train_data_dir "Dataset path" --output_dir "Output path" --network_module "networks.lora" --network_args "conv_dim=64" "conv_alpha=12" "down_lr_weight=0,0,0,0,0,0,0,0,0,0,0,0" "mid_lr_weight=0" "up_lr_weight=0,1,1,1,1,1,1,1,0,0,0,0" --xformers --gradient_checkpointing --persistent_data_loader_workers --cache_latents --cache_latents_to_disk --max_data_loader_n_workers 1 --enable_bucket --save_model_as "safetensors" --lr_scheduler_num_cycles 4 --mixed_precision "fp16" --learning_rate 0.0001 --resolution 512 --train_batch_size 1 --max_train_epochs 10 --network_dim 64 --network_alpha 12 --optimizer_type "AdamW" --lr_warmup_steps 250 --output_name "mika_v16_xl" --clip_skip 2 --save_precision "fp16" --lr_scheduler "cosine_with_restarts" --min_bucket_reso 320 --max_bucket_reso 1536 --caption_extension ".txt" --seed 42 --network_train_unet_only --no_half_vae
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with sdxl_train_network.py and follow train_network.py into library/train_util.py, especially get_optimizer and the trainable_params passed to it. Reproduce the command at commit 89aae3e04fe6aa11c3da76b9b48eed16be310b14 with network_train_unet_only and the block weights, then confirm training no longer reaches an empty optimizer parameter list or related index errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, pytorch
Domain
machine-learning
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.