dev1virtuoso commited on
Commit
791dcd7
·
verified ·
1 Parent(s): 2ea4b22

Upload 8 files

Browse files
Log/YujinIVE20230821105554/network_train/events.out.tfevents.1692615423.ae63f807da5a.12587.0 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7c3b310705d406c973db147889d4835a358906345a03e1f3a42e090889881add
3
+ size 604020
Model/.DS_Store ADDED
Binary file (6.15 kB). View file
 
Model/Yujin_V1/YujinIVE-30.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fb1a59a4378f808e20e58be850588bbeb4c7685fb121e6deb1c040e5c6bcfa35
3
+ size 37869086
SS_config.json ADDED
@@ -0,0 +1 @@
 
0
  "pretrained_model_name_or_path": "runwayml/stable-diffusion-v1-5",
1
  "v2": false,
2
  "v_parameterization": false,
3
  "logging_dir": "/workspace/KaraDetroit_loar/Log",
4
  "train_data_dir": "/workspace/KaraDetroit_loar/Image",
5
  "reg_data_dir": "",
6
  "output_dir": "/workspace/KaraDetroit_loar/Model",
7
  "max_resolution": "768,768",
8
  "learning_rate": "5e-5",
9
  "lr_scheduler": "constant",
10
  "lr_warmup": "0",
11
  "train_batch_size": 2,
12
  "epoch": 10,
13
  "save_every_n_epochs": 1,
14
  "mixed_precision": "bf16",
15
  "save_precision": "fp16",
16
  "seed": "",
17
  "num_cpu_threads_per_process": 2,
18
  "cache_latents": true,
19
  "caption_extension": ".txt",
20
  "enable_bucket": true,
21
  "gradient_checkpointing": true,
22
  "full_fp16": false,
23
  "no_token_padding": false,
24
  "stop_text_encoder_training": 0,
25
  "xformers": true,
26
  "save_model_as": "safetensors",
27
  "shuffle_caption": true,
28
  "save_state": false,
29
  "resume": "",
30
  "prior_loss_weight": 1.0,
31
  "text_encoder_lr": "5e-5",
32
  "unet_lr": "0.0001",
33
  "network_dim": 200,
34
  "lora_network_weights": "",
35
  "color_aug": false,
36
  "flip_aug": false,
37
  "clip_skip": "1",
38
  "gradient_accumulation_steps": 1.0,
39
  "mem_eff_attn": false,
40
  "output_name": "my_model",
41
  "model_list": "runwayml/stable-diffusion-v1-5",
42
  "max_token_length": "225",
43
  "max_train_epochs": "",
44
  "max_data_loader_n_workers": "0",
45
  "network_alpha": 200,
46
  "training_comment": "",
47
  "keep_tokens": "0",
48
  "lr_scheduler_num_cycles": "",
49
  "lr_scheduler_power": "",
50
  "persistent_data_loader_workers": false,
51
  "bucket_no_upscale": true,
52
  "random_crop": false,
53
  "bucket_reso_steps": 64.0,
54
  "caption_dropout_every_n_epochs": 0.0,
55
  "caption_dropout_rate": 0,
56
  "optimizer": "AdamW8bit",
57
  "optimizer_args": "",
58
  "noise_offset": "",
59
  "LoRA_type": "Standard",
60
  "conv_dim": 1,
61
  "conv_alpha": 1,
62
  "sample_every_n_steps": 0,
63
  "sample_every_n_epochs": 0,
64
  "sample_sampler": "euler_a",
65
  "sample_prompts": "",
66
  "additional_parameters": "",
67
  "vae_batch_size": 0,
68
  "min_snr_gamma": 0,
69
  "down_lr_weight": "",
70
  "mid_lr_weight": "",
71
  "up_lr_weight": "",
72
  "block_lr_zero_threshold": "",
73
  "block_dims": "",
74
  "block_alphas": "",
75
  "conv_dims": "",
76
  "conv_alphas": ""
 
1
+ {
2
  "pretrained_model_name_or_path": "runwayml/stable-diffusion-v1-5",
3
  "v2": false,
4
  "v_parameterization": false,
5
  "logging_dir": "/workspace/KaraDetroit_loar/Log",
6
  "train_data_dir": "/workspace/KaraDetroit_loar/Image",
7
  "reg_data_dir": "",
8
  "output_dir": "/workspace/KaraDetroit_loar/Model",
9
  "max_resolution": "768,768",
10
  "learning_rate": "5e-5",
11
  "lr_scheduler": "constant",
12
  "lr_warmup": "0",
13
  "train_batch_size": 2,
14
  "epoch": 10,
15
  "save_every_n_epochs": 1,
16
  "mixed_precision": "bf16",
17
  "save_precision": "fp16",
18
  "seed": "",
19
  "num_cpu_threads_per_process": 2,
20
  "cache_latents": true,
21
  "caption_extension": ".txt",
22
  "enable_bucket": true,
23
  "gradient_checkpointing": true,
24
  "full_fp16": false,
25
  "no_token_padding": false,
26
  "stop_text_encoder_training": 0,
27
  "xformers": true,
28
  "save_model_as": "safetensors",
29
  "shuffle_caption": true,
30
  "save_state": false,
31
  "resume": "",
32
  "prior_loss_weight": 1.0,
33
  "text_encoder_lr": "5e-5",
34
  "unet_lr": "0.0001",
35
  "network_dim": 200,
36
  "lora_network_weights": "",
37
  "color_aug": false,
38
  "flip_aug": false,
39
  "clip_skip": "1",
40
  "gradient_accumulation_steps": 1.0,
41
  "mem_eff_attn": false,
42
  "output_name": "my_model",
43
  "model_list": "runwayml/stable-diffusion-v1-5",
44
  "max_token_length": "225",
45
  "max_train_epochs": "",
46
  "max_data_loader_n_workers": "0",
47
  "network_alpha": 200,
48
  "training_comment": "",
49
  "keep_tokens": "0",
50
  "lr_scheduler_num_cycles": "",
51
  "lr_scheduler_power": "",
52
  "persistent_data_loader_workers": false,
53
  "bucket_no_upscale": true,
54
  "random_crop": false,
55
  "bucket_reso_steps": 64.0,
56
  "caption_dropout_every_n_epochs": 0.0,
57
  "caption_dropout_rate": 0,
58
  "optimizer": "AdamW8bit",
59
  "optimizer_args": "",
60
  "noise_offset": "",
61
  "LoRA_type": "Standard",
62
  "conv_dim": 1,
63
  "conv_alpha": 1,
64
  "sample_every_n_steps": 0,
65
  "sample_every_n_epochs": 0,
66
  "sample_sampler": "euler_a",
67
  "sample_prompts": "",
68
  "additional_parameters": "",
69
  "vae_batch_size": 0,
70
  "min_snr_gamma": 0,
71
  "down_lr_weight": "",
72
  "mid_lr_weight": "",
73
  "up_lr_weight": "",
74
  "block_lr_zero_threshold": "",
75
  "block_dims": "",
76
  "block_alphas": "",
77
  "conv_dims": "",
78
  "conv_alphas": ""
train.ps1 ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ $pretrained_model="/path/to/directorychilloutmix_NiPrunedFp32Fix.safetensors"
2
+ $train_data_dir="/path/to/directory"
3
+ $reg_data_dir = ""
4
+
5
+ $resolution = "768,768"
6
+ $batch_size = 2
7
+ $max_train_epoches = 10
8
+ $save_every_n_epochs = 1
9
+ $network_dim = 64
10
+ $network_alpha = 32
11
+ $clip_skip = 2
12
+ $train_unet_only = 0
13
+ $train_text_encoder_only = 0
14
+
15
+ $lr = "5e-5"
16
+ $unet_lr = "5e-5"
17
+ $text_encoder_lr = "6e-6"
18
+ $lr_scheduler = "cosine_with_restarts"
19
+ $lr_warmup_steps = 50
20
+ $lr_restart_cycles = 1
21
+
22
+ $output_name = "yujinive_v2"
23
+ $save_model_as = "safetensors"
24
+
25
+ $network_weights = ""
26
+ # $network_weights = "D:\workspace\stable-diffusion-webui\models\Lora\koreanDollLikeness_v10.safetensors" # pretrained weights for LoRA network
27
+ $min_bucket_reso = 256
28
+ $max_bucket_reso = 1024
29
+ $persistent_data_loader_workers = 0
30
+
31
+ $use_8bit_adam = 0
32
+ $use_lion = 1
33
+
34
+ .\venv\Scripts\activate
35
+
36
+ $Env:HF_HOME = "huggingface"
37
+ $ext_args = [System.Collections.ArrayList]::new()
38
+
39
+ if ($train_unet_only) {
40
+ [void]$ext_args.Add("--network_train_unet_only")
41
+ }
42
+
43
+ if ($train_text_encoder_only) {
44
+ [void]$ext_args.Add("--network_train_text_encoder_only")
45
+ }
46
+
47
+ if ($network_weights) {
48
+ [void]$ext_args.Add("--network_weights=" + $network_weights)
49
+ }
50
+
51
+ if ($reg_data_dir) {
52
+ [void]$ext_args.Add("--reg_data_dir=" + $reg_data_dir)
53
+ }
54
+
55
+ if ($use_8bit_adam) {
56
+ [void]$ext_args.Add("--use_8bit_adam")
57
+ }
58
+
59
+ if ($use_lion) {
60
+ [void]$ext_args.Add("--use_lion_optimizer")
61
+ }
62
+
63
+ if ($persistent_data_loader_workers) {
64
+ [void]$ext_args.Add("--persistent_data_loader_workers")
65
+ }
66
+
67
+ # run train
68
+ accelerate launch --num_cpu_threads_per_process=8 "./sd-scripts/train_network.py" `
69
+ --enable_bucket `
70
+ --pretrained_model_name_or_path=$pretrained_model `
71
+ --train_data_dir=$train_data_dir `
72
+ --output_dir="./output" `
73
+ --logging_dir="./logs" `
74
+ --resolution=$resolution `
75
+ --network_module=networks.lora `
76
+ --max_train_epochs=$max_train_epoches `
77
+ --learning_rate=$lr `
78
+ --unet_lr=$unet_lr `
79
+ --text_encoder_lr=$text_encoder_lr `
80
+ --lr_scheduler=$lr_scheduler `
81
+ --lr_warmup_steps=$lr_warmup_steps `
82
+ --lr_scheduler_num_cycles=$lr_restart_cycles `
83
+ --network_dim=$network_dim `
84
+ --network_alpha=$network_alpha `
85
+ --output_name=$output_name `
86
+ --train_batch_size=$batch_size `
87
+ --save_every_n_epochs=$save_every_n_epochs `
88
+ --mixed_precision="fp16" `
89
+ --save_precision="fp16" `
90
+ --seed="1337" `
91
+ --cache_latents `
92
+ --clip_skip=$clip_skip `
93
+ --prior_loss_weight=1 `
94
+ --max_token_length=225 `
95
+ --caption_extension=".txt" `
96
+ --save_model_as=$save_model_as `
97
+ --min_bucket_reso=$min_bucket_reso `
98
+ --max_bucket_reso=$max_bucket_reso `
99
+ --xformers --shuffle_caption $ext_args
100
+
101
+ Write-Output "Train finished"
102
+ Read-Host | Out-Null ;
103
+
train.sh ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ source venv/bin/activate
4
+
5
+ pretrained_model="/path/to/directory/chilloutmix_NiPrunedFp32Fix.safetensors" # Base model path
6
+ train_data_dir="/path/to/directory"
7
+ output_dir="./output"
8
+ logging_dir="./logs"
9
+
10
+ resolution="768,768"
11
+ batch_size=2
12
+ max_train_epochs=10
13
+ save_every_n_epochs=1
14
+ network_dim=64
15
+ network_alpha=32
16
+ clip_skip=2
17
+ train_unet_only=0
18
+ train_text_encoder_only=0
19
+
20
+ lr="5e-5"
21
+ unet_lr="5e-5"
22
+ text_encoder_lr="6e-6"
23
+ lr_scheduler="cosine_with_restarts"
24
+ lr_warmup_steps=50
25
+ lr_restart_cycles=1
26
+
27
+ output_name="yujinive_v2"
28
+ save_model_as="safetensors"
29
+
30
+ min_bucket_reso=64
31
+ max_bucket_reso=768
32
+
33
+ python "./sd-scripts/train_network.py" \
34
+ --enable_bucket \
35
+ --pretrained_model_name_or_path="$pretrained_model" \
36
+ --train_data_dir="$train_data_dir" \
37
+ --output_dir="$output_dir" \
38
+ --resolution="$resolution" \
39
+ --network_module=networks.lora \
40
+ --max_train_epochs="$max_train_epochs" \
41
+ --learning_rate="$lr" \
42
+ --unet_lr="$unet_lr" \
43
+ --text_encoder_lr="$text_encoder_lr" \
44
+ --lr_scheduler="$lr_scheduler" \
45
+ --lr_warmup_steps="$lr_warmup_steps" \
46
+ --lr_scheduler_num_cycles="$lr_restart_cycles" \
47
+ --network_dim="$network_dim" \
48
+ --network_alpha="$network_alpha" \
49
+ --output_name="$output_name" \
50
+ --train_batch_size="$batch_size" \
51
+ --save_every_n_epochs="$save_every_n_epochs" \
52
+ --mixed_precision="fp16" \
53
+ --save_precision="fp16" \
54
+ --seed="1337" \
55
+ --cache_latents \
56
+ --clip_skip="$clip_skip" \
57
+ --prior_loss_weight=1 \
58
+ --max_token_length=225 \
59
+ --caption_extension=".txt" \
60
+ --save_model_as="$save_model_as" \
61
+ --min_bucket_reso="$min_bucket_reso" \
62
+ --max_bucket_reso="$max_bucket_reso" \
63
+ --xformers \
64
+ --shuffle_caption
65
+
66
+ echo "Training completed"
67
+ read -n 1 -s -r -p "Press any key to continue..."
trainmacos.py ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import subprocess
2
+
3
+ pretrained_model = "/path/to/directorychilloutmix_NiPrunedFp32Fix.safetensors"
4
+ train_data_dir = "/path/to/directory"
5
+ reg_data_dir = "/path/to/directory"
6
+
7
+ resolution = "768,768"
8
+ batch_size = 2
9
+ max_train_epochs = 10
10
+ save_every_n_epochs = 1
11
+ network_dim = 64
12
+ network_alpha = 32
13
+ clip_skip = 2
14
+ train_unet_only = 0
15
+ train_text_encoder_only = 0
16
+
17
+ lr = "5e-5"
18
+ unet_lr = "5e-5"
19
+ text_encoder_lr = "6e-6"
20
+ lr_scheduler = "cosine_with_restarts"
21
+ lr_warmup_steps = 50
22
+ lr_restart_cycles = 1
23
+
24
+ output_name = "yujinive_v2"
25
+ save_model_as = "safetensors"
26
+
27
+ network_weights = ""
28
+ min_bucket_reso = 256
29
+ max_bucket_reso = 1024
30
+ persistent_data_loader_workers = 0
31
+
32
+ subprocess.run(["source", "venv/bin/activate"], shell=True)
33
+
34
+ subprocess.run(["export", "HF_HOME=huggingface"], shell=True)
35
+
36
+ subprocess.run([
37
+ "python", "-m", "accelerate", "launch", "--num_processes=1", "--num_workers=8", "--use_env",
38
+ "./sd-scripts/train_network.py",
39
+ "--enable_bucket",
40
+ f"--pretrained_model_name_or_path={pretrained_model}",
41
+ f"--train_data_dir={train_data_dir}",
42
+ "--output_dir=./output",
43
+ "--logging_dir=./logs",
44
+ f"--resolution={resolution}",
45
+ "--network_module=networks.lora",
46
+ f"--max_train_epochs={max_train_epochs}",
47
+ f"--learning_rate={lr}",
48
+ f"--unet_lr={unet_lr}",
49
+ f"--text_encoder_lr={text_encoder_lr}",
50
+ f"--lr_scheduler={lr_scheduler}",
51
+ f"--lr_warmup_steps={lr_warmup_steps}",
52
+ f"--lr_scheduler_num_cycles={lr_restart_cycles}",
53
+ f"--network_dim={network_dim}",
54
+ f"--network_alpha={network_alpha}",
55
+ f"--output_name={output_name}",
56
+ f"--train_batch_size={batch_size}",
57
+ f"--save_every_n_epochs={save_every_n_epochs}",
58
+ "--mixed_precision=fp16",
59
+ "--save_precision=fp16",
60
+ "--seed=1337",
61
+ "--cache_latents",
62
+ f"--clip_skip={clip_skip}",
63
+ "--prior_loss_weight=1",
64
+ "--max_token_length=225",
65
+ "--caption_extension=.txt",
66
+ f"--save_model_as={save_model_as}",
67
+ f"--min_bucket_reso={min_bucket_reso}",
68
+ f"--max_bucket_reso={max_bucket_reso}",
69
+ "--xformers",
70
+ "--shuffle_caption"
71
+ ])
72
+
73
+ print("Train finished")
74
+ input("Press any key to continue...")
yujinIVElocal.py ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import torch
3
+ import torchvision
4
+ from torch.utils.data import DataLoader
5
+ from torchvision.transforms import transforms
6
+ import toml
7
+
8
+ batch_size = 8
9
+ num_epochs = 10
10
+ learning_rate = 0.001
11
+
12
+ class LoRAModel(torch.nn.Module):
13
+ def __init__(self):
14
+ super(LoRAModel, self).__init__()
15
+
16
+ def forward(self, x):
17
+ pass
18
+
19
+ custom_dataset = """
20
+ [[datasets]]
21
+
22
+ [[datasets.subsets]]
23
+ image_dir = "/path/to/directory"
24
+ num_repeats = 10
25
+
26
+ [[datasets.subsets]]
27
+ image_dir = "/path/to/directory"
28
+ is_reg = true
29
+ num_repeats = 1
30
+ """
31
+
32
+ dataset_config = toml.loads(custom_dataset)
33
+ datasets = dataset_config.get("datasets", [])
34
+ transform = transforms.Compose([
35
+ transforms.Resize((512, 512)),
36
+ transforms.ToTensor(),
37
+ ])
38
+
39
+ train_datasets = []
40
+ for dataset in datasets:
41
+ subsets = dataset.get("subsets", [])
42
+ for subset in subsets:
43
+ image_dir = subset.get("image_dir")
44
+ num_repeats = subset.get("num_repeats", 1)
45
+ is_reg = subset.get("is_reg", False)
46
+
47
+ dataset = torchvision.datasets.ImageFolder(root=image_dir, transform=transform)
48
+ train_datasets.extend([dataset] * num_repeats)
49
+
50
+ train_dataset = torch.utils.data.ConcatDataset(train_datasets)
51
+
52
+ dataloader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)
53
+
54
+ model = LoRAModel()
55
+ criterion = torch.nn.CrossEntropyLoss()
56
+ optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)
57
+
58
+ total_step = len(dataloader)
59
+ for epoch in range(num_epochs):
60
+ for i, (images, labels) in enumerate(dataloader):
61
+ outputs = model(images)
62
+ loss = criterion(outputs, labels)
63
+
64
+ optimizer.zero_grad()
65
+ loss.backward()
66
+ optimizer.step()
67
+
68
+ if (i + 1) % 100 == 0:
69
+ print(f"Epoch [{epoch + 1}/{num_epochs}], Step [{i + 1}/{total_step}], Loss: {loss.item()}")
70
+
71
+ save_path = "/path/to/directory/model.pth"
72
+ torch.save(model.state_dict(), save_path)