2512
Browse files- media/result_grid2.jpg +3 -0
- samples/sdxs_1b_384x768_0.jpg +2 -2
- samples/sdxs_1b_416x768_0.jpg +2 -2
- samples/sdxs_1b_448x768_0.jpg +2 -2
- samples/sdxs_1b_480x768_0.jpg +2 -2
- samples/sdxs_1b_512x768_0.jpg +2 -2
- samples/sdxs_1b_544x768_0.jpg +2 -2
- samples/sdxs_1b_576x768_0.jpg +2 -2
- samples/sdxs_1b_608x768_0.jpg +2 -2
- samples/sdxs_1b_640x768_0.jpg +2 -2
- samples/sdxs_1b_672x768_0.jpg +2 -2
- samples/sdxs_1b_704x768_0.jpg +2 -2
- samples/sdxs_1b_736x768_0.jpg +2 -2
- samples/sdxs_1b_768x384_0.jpg +2 -2
- samples/sdxs_1b_768x416_0.jpg +2 -2
- samples/sdxs_1b_768x448_0.jpg +2 -2
- samples/sdxs_1b_768x480_0.jpg +2 -2
- samples/sdxs_1b_768x512_0.jpg +2 -2
- samples/sdxs_1b_768x544_0.jpg +2 -2
- samples/sdxs_1b_768x576_0.jpg +2 -2
- samples/sdxs_1b_768x608_0.jpg +2 -2
- samples/sdxs_1b_768x640_0.jpg +2 -2
- samples/sdxs_1b_768x672_0.jpg +2 -2
- samples/sdxs_1b_768x704_0.jpg +2 -2
- samples/sdxs_1b_768x736_0.jpg +2 -2
- samples/sdxs_1b_768x768_0.jpg +2 -2
- sdxs_1b/diffusion_pytorch_model.safetensors +1 -1
- sdxs_flux/diffusion_pytorch_model.safetensors +1 -1
- test.ipynb +2 -2
- train_flux.py +12 -16
media/result_grid2.jpg
ADDED
|
Git LFS Details
|
samples/sdxs_1b_384x768_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_416x768_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_448x768_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_480x768_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_512x768_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_544x768_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_576x768_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_608x768_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_640x768_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_672x768_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_704x768_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_736x768_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_768x384_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_768x416_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_768x448_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_768x480_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_768x512_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_768x544_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_768x576_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_768x608_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_768x640_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_768x672_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_768x704_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_768x736_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
samples/sdxs_1b_768x768_0.jpg
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
sdxs_1b/diffusion_pytorch_model.safetensors
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
size 4463672488
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:7ecfc626ccacdf76e9c77d0ec0da480b9cc542a70f969d5acb25697725c1249c
|
| 3 |
size 4463672488
|
sdxs_flux/diffusion_pytorch_model.safetensors
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
size 3195253456
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:5604baf577450654b1d025e8c31e476e42ebcb7d535eeb100917de6a31bf02fe
|
| 3 |
size 3195253456
|
test.ipynb
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:897429f78ba29492ec501a0b5b6224884068de6fc90a3976bc7b64f965b2b8e5
|
| 3 |
+
size 9241758
|
train_flux.py
CHANGED
|
@@ -29,12 +29,12 @@ from transformers import AutoTokenizer, AutoModel
|
|
| 29 |
# --------------------------- Параметры ---------------------------
|
| 30 |
ds_path = "/workspace/sdxs/datasets/mjnj"
|
| 31 |
project = "sdxs_flux"
|
| 32 |
-
batch_size =
|
| 33 |
base_learning_rate = 4e-5 #2.7e-5
|
| 34 |
min_learning_rate = 9e-6 #2.7e-5
|
| 35 |
-
num_epochs =
|
| 36 |
-
sample_interval_share =
|
| 37 |
-
cfg_dropout = 0.
|
| 38 |
max_length = 192
|
| 39 |
use_wandb = True
|
| 40 |
use_comet_ml = False
|
|
@@ -96,8 +96,8 @@ lora_alpha = 64
|
|
| 96 |
print("init")
|
| 97 |
|
| 98 |
loss_ratios = {
|
| 99 |
-
"mse": 1.
|
| 100 |
-
"mae": 0.
|
| 101 |
}
|
| 102 |
median_coeff_steps = 256
|
| 103 |
|
|
@@ -107,8 +107,6 @@ class MedianLossNormalizer:
|
|
| 107 |
# нормируем доли на случай, если сумма != 1
|
| 108 |
#s = sum(desired_ratios.values())
|
| 109 |
#self.ratios = {k: (v / s) for k, v in desired_ratios.items()}
|
| 110 |
-
#self.buffers = {k: deque(maxlen=window_steps) for k in self.ratios.keys()}
|
| 111 |
-
#self.window = window_steps
|
| 112 |
self.ratios = {k: float(v) for k, v in desired_ratios.items()}
|
| 113 |
self.buffers = {k: deque(maxlen=window_steps) for k in self.ratios.keys()}
|
| 114 |
self.window = window_steps
|
|
@@ -571,6 +569,8 @@ def generate_and_save_samples(fixed_samples_cpu, uncond_data, step):
|
|
| 571 |
latents = scheduler.step(flow, t, latents).prev_sample
|
| 572 |
|
| 573 |
current_latents = latents
|
|
|
|
|
|
|
| 574 |
|
| 575 |
latent_for_vae = current_latents.detach() / scaling_factor + shift_factor
|
| 576 |
decoded = vae.decode(latent_for_vae.to(torch.float32)).sample
|
|
@@ -671,9 +671,9 @@ for epoch in range(start_epoch, start_epoch + num_epochs):
|
|
| 671 |
# шум
|
| 672 |
noise = torch.randn_like(latents, dtype=latents.dtype)
|
| 673 |
# берём t из [0, 1]
|
| 674 |
-
|
| 675 |
-
u = torch.rand(latents.shape[0], device=latents.device, dtype=latents.dtype)
|
| 676 |
-
t = torch.sigmoid(torch.randn_like(u))
|
| 677 |
|
| 678 |
# интерполяция между x0 и шумом
|
| 679 |
noisy_latents = (1.0 - t.view(-1, 1, 1, 1)) * latents + t.view(-1, 1, 1, 1) * noise
|
|
@@ -718,11 +718,7 @@ for epoch in range(start_epoch, start_epoch + num_epochs):
|
|
| 718 |
if accelerator.sync_gradients:
|
| 719 |
#with torch.amp.autocast('cuda', enabled=False):
|
| 720 |
grad_val = accelerator.clip_grad_norm_(unet.parameters(), clip_grad_norm)
|
| 721 |
-
|
| 722 |
-
grad = float(grad_val)
|
| 723 |
-
print("grad_val is None")
|
| 724 |
-
else:
|
| 725 |
-
grad = 0.0
|
| 726 |
optimizer.step()
|
| 727 |
lr_scheduler.step()
|
| 728 |
optimizer.zero_grad(set_to_none=True)
|
|
|
|
| 29 |
# --------------------------- Параметры ---------------------------
|
| 30 |
ds_path = "/workspace/sdxs/datasets/mjnj"
|
| 31 |
project = "sdxs_flux"
|
| 32 |
+
batch_size = 256
|
| 33 |
base_learning_rate = 4e-5 #2.7e-5
|
| 34 |
min_learning_rate = 9e-6 #2.7e-5
|
| 35 |
+
num_epochs = 20
|
| 36 |
+
sample_interval_share = 3
|
| 37 |
+
cfg_dropout = 0.5
|
| 38 |
max_length = 192
|
| 39 |
use_wandb = True
|
| 40 |
use_comet_ml = False
|
|
|
|
| 96 |
print("init")
|
| 97 |
|
| 98 |
loss_ratios = {
|
| 99 |
+
"mse": 1.8,
|
| 100 |
+
"mae": 0.2,
|
| 101 |
}
|
| 102 |
median_coeff_steps = 256
|
| 103 |
|
|
|
|
| 107 |
# нормируем доли на случай, если сумма != 1
|
| 108 |
#s = sum(desired_ratios.values())
|
| 109 |
#self.ratios = {k: (v / s) for k, v in desired_ratios.items()}
|
|
|
|
|
|
|
| 110 |
self.ratios = {k: float(v) for k, v in desired_ratios.items()}
|
| 111 |
self.buffers = {k: deque(maxlen=window_steps) for k in self.ratios.keys()}
|
| 112 |
self.window = window_steps
|
|
|
|
| 569 |
latents = scheduler.step(flow, t, latents).prev_sample
|
| 570 |
|
| 571 |
current_latents = latents
|
| 572 |
+
if step==0:
|
| 573 |
+
current_latents = sample_latents
|
| 574 |
|
| 575 |
latent_for_vae = current_latents.detach() / scaling_factor + shift_factor
|
| 576 |
decoded = vae.decode(latent_for_vae.to(torch.float32)).sample
|
|
|
|
| 671 |
# шум
|
| 672 |
noise = torch.randn_like(latents, dtype=latents.dtype)
|
| 673 |
# берём t из [0, 1]
|
| 674 |
+
t = torch.rand(latents.shape[0], device=latents.device, dtype=latents.dtype)
|
| 675 |
+
#u = torch.rand(latents.shape[0], device=latents.device, dtype=latents.dtype)
|
| 676 |
+
#t = torch.sigmoid(torch.randn_like(u))
|
| 677 |
|
| 678 |
# интерполяция между x0 и шумом
|
| 679 |
noisy_latents = (1.0 - t.view(-1, 1, 1, 1)) * latents + t.view(-1, 1, 1, 1) * noise
|
|
|
|
| 718 |
if accelerator.sync_gradients:
|
| 719 |
#with torch.amp.autocast('cuda', enabled=False):
|
| 720 |
grad_val = accelerator.clip_grad_norm_(unet.parameters(), clip_grad_norm)
|
| 721 |
+
grad = float(grad_val)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 722 |
optimizer.step()
|
| 723 |
lr_scheduler.step()
|
| 724 |
optimizer.zero_grad(set_to_none=True)
|