lycoris-lora 3.0.1.dev7__tar.gz → 3.0.1.dev9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lycoris_lora-3.0.1.dev7/lycoris_lora.egg-info → lycoris_lora-3.0.1.dev9}/PKG-INFO +1 -1
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/modules/loha.py +1 -1
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/modules/lokr.py +2 -2
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/wrapper.py +1 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9/lycoris_lora.egg-info}/PKG-INFO +1 -1
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/setup.py +1 -1
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/test/wrapper.py +65 -41
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/LICENSE.md +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/README.md +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/__init__.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/config.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/functional/__init__.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/functional/boft.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/functional/diag_oft.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/functional/general.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/functional/locon.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/functional/loha.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/functional/lokr.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/kohya.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/logging.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/modules/__init__.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/modules/base.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/modules/boft.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/modules/diag_oft.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/modules/dylora.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/modules/full.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/modules/glora.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/modules/ia3.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/modules/locon.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/modules/norms.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/utils/__init__.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/utils/bnb.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/utils/general.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/utils/logger.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/utils/preset.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris/utils/xformers_utils.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris_lora.egg-info/SOURCES.txt +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris_lora.egg-info/dependency_links.txt +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris_lora.egg-info/not-zip-safe +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris_lora.egg-info/requires.txt +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris_lora.egg-info/top_level.txt +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/setup.cfg +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/test/__init__.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/test/functional.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/test/kohya.py +0 -0
- {lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/test/module.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: lycoris_lora
|
|
3
|
-
Version: 3.0.1.
|
|
3
|
+
Version: 3.0.1.dev9
|
|
4
4
|
Summary: Lora beYond Conventional methods, Other Rank adaptation Implementations for Stable diffusion
|
|
5
5
|
Home-page: https://github.com/KohakuBlueleaf/LyCORIS
|
|
6
6
|
Author: Shih-Ying Yeh(KohakuBlueLeaf), Yu-Guan Hsieh, Zhidong Gao
|
|
@@ -130,7 +130,7 @@ class LohaModule(LycorisBaseModule):
|
|
|
130
130
|
if use_scalar:
|
|
131
131
|
self.scalar = nn.Parameter(torch.tensor(0.0))
|
|
132
132
|
else:
|
|
133
|
-
self.scalar
|
|
133
|
+
self.register_buffer("scalar", torch.tensor(1.0), persistent=False)
|
|
134
134
|
# Need more experiments on init method
|
|
135
135
|
if self.tucker:
|
|
136
136
|
torch.nn.init.normal_(self.hada_t1, std=0.1)
|
|
@@ -213,7 +213,7 @@ class LokrModule(LycorisBaseModule):
|
|
|
213
213
|
if use_scalar:
|
|
214
214
|
self.scalar = nn.Parameter(torch.tensor(0.0))
|
|
215
215
|
else:
|
|
216
|
-
self.scalar
|
|
216
|
+
self.register_buffer("scalar", torch.tensor(1.0), persistent=False)
|
|
217
217
|
|
|
218
218
|
if self.use_w2:
|
|
219
219
|
if use_scalar:
|
|
@@ -498,7 +498,7 @@ class LokrModule(LycorisBaseModule):
|
|
|
498
498
|
hc = hc.transpose(-1, -2)
|
|
499
499
|
h = hc.reshape(*hc.shape[:-2], -1)
|
|
500
500
|
|
|
501
|
-
return self.drop(h * scale)
|
|
501
|
+
return self.drop(h * scale * self.scalar)
|
|
502
502
|
|
|
503
503
|
def bypass_forward(self, x, scale=1):
|
|
504
504
|
return self.org_forward(x) + self.bypass_forward_diff(x, scale=scale)
|
|
@@ -377,6 +377,7 @@ class LycorisNetwork(torch.nn.Module):
|
|
|
377
377
|
for lora_name, lora in zip(new_lora_names, new_loras):
|
|
378
378
|
if lora_name not in loras and lora_name not in current_lora_map:
|
|
379
379
|
loras[lora_name] = lora
|
|
380
|
+
if lora_name not in lora_names:
|
|
380
381
|
lora_names.append(lora_name)
|
|
381
382
|
continue
|
|
382
383
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: lycoris_lora
|
|
3
|
-
Version: 3.0.1.
|
|
3
|
+
Version: 3.0.1.dev9
|
|
4
4
|
Summary: Lora beYond Conventional methods, Other Rank adaptation Implementations for Stable diffusion
|
|
5
5
|
Home-page: https://github.com/KohakuBlueleaf/LyCORIS
|
|
6
6
|
Author: Shih-Ying Yeh(KohakuBlueLeaf), Yu-Guan Hsieh, Zhidong Gao
|
|
@@ -4,7 +4,7 @@ from setuptools import setup, find_packages
|
|
|
4
4
|
setup(
|
|
5
5
|
name="lycoris_lora",
|
|
6
6
|
packages=find_packages(),
|
|
7
|
-
version="3.0.1.
|
|
7
|
+
version="3.0.1.dev9",
|
|
8
8
|
url="https://github.com/KohakuBlueleaf/LyCORIS",
|
|
9
9
|
description="Lora beYond Conventional methods, Other Rank adaptation Implementations for Stable diffusion",
|
|
10
10
|
author="Shih-Ying Yeh(KohakuBlueLeaf), Yu-Guan Hsieh, Zhidong Gao",
|
|
@@ -331,7 +331,7 @@ class LycorisWrapperTests(unittest.TestCase):
|
|
|
331
331
|
finally:
|
|
332
332
|
reset_globals()
|
|
333
333
|
|
|
334
|
-
def
|
|
334
|
+
def test_diffusers_models_and_state_dicts_target_module_and_module_algo_map(self):
|
|
335
335
|
try:
|
|
336
336
|
transformer = FluxTransformer2DModel.from_config(
|
|
337
337
|
{
|
|
@@ -340,8 +340,8 @@ class LycorisWrapperTests(unittest.TestCase):
|
|
|
340
340
|
"in_channels": 64,
|
|
341
341
|
"joint_attention_dim": 4096,
|
|
342
342
|
"num_attention_heads": 24,
|
|
343
|
-
"num_layers":
|
|
344
|
-
"num_single_layers":
|
|
343
|
+
"num_layers": 4,
|
|
344
|
+
"num_single_layers": 4,
|
|
345
345
|
"patch_size": 1,
|
|
346
346
|
"pooled_projection_dim": 768,
|
|
347
347
|
}
|
|
@@ -355,8 +355,8 @@ class LycorisWrapperTests(unittest.TestCase):
|
|
|
355
355
|
"FluxSingleTransformerBlock",
|
|
356
356
|
],
|
|
357
357
|
"module_algo_map": {
|
|
358
|
-
"Attention": {"factor":
|
|
359
|
-
"FeedForward": {"factor":
|
|
358
|
+
"Attention": {"factor": 6},
|
|
359
|
+
"FeedForward": {"factor": 4},
|
|
360
360
|
},
|
|
361
361
|
}
|
|
362
362
|
)
|
|
@@ -368,50 +368,73 @@ class LycorisWrapperTests(unittest.TestCase):
|
|
|
368
368
|
multiplier=1.0,
|
|
369
369
|
linear_dim=10000,
|
|
370
370
|
linear_alpha=1,
|
|
371
|
-
factor=
|
|
371
|
+
factor=8,
|
|
372
|
+
full_matrix=True,
|
|
372
373
|
)
|
|
373
374
|
test_lycoris.apply_to()
|
|
374
375
|
|
|
375
|
-
|
|
376
|
-
|
|
376
|
+
def check_dims(lora, factor):
|
|
377
|
+
lokr_w2_shape = lora.state_dict()["lokr_w2"].shape
|
|
378
|
+
return lora.shape[0] // lokr_w2_shape[0] == factor
|
|
379
|
+
|
|
380
|
+
first_block = list(
|
|
381
|
+
filter(
|
|
382
|
+
lambda lor: "lycoris_transformer_blocks_0_" in lor.lora_name,
|
|
383
|
+
test_lycoris.loras,
|
|
384
|
+
)
|
|
385
|
+
)
|
|
386
|
+
assert sorted([lor.lora_name for lor in first_block]) == sorted(
|
|
377
387
|
[
|
|
378
|
-
"lycoris_transformer_blocks_0_norm1_linear
|
|
379
|
-
"
|
|
380
|
-
"
|
|
381
|
-
"
|
|
382
|
-
"
|
|
383
|
-
"
|
|
384
|
-
"
|
|
385
|
-
"
|
|
386
|
-
"
|
|
387
|
-
"
|
|
388
|
-
"
|
|
389
|
-
"
|
|
390
|
-
"
|
|
391
|
-
"
|
|
392
|
-
"lycoris_single_transformer_blocks_0_norm_linear.lokr_w2",
|
|
393
|
-
"lycoris_single_transformer_blocks_0_proj_mlp.alpha",
|
|
394
|
-
"lycoris_single_transformer_blocks_0_proj_mlp.lokr_w1",
|
|
395
|
-
"lycoris_single_transformer_blocks_0_proj_mlp.lokr_w2",
|
|
396
|
-
"lycoris_single_transformer_blocks_0_proj_out.alpha",
|
|
397
|
-
"lycoris_single_transformer_blocks_0_proj_out.lokr_w1",
|
|
398
|
-
"lycoris_single_transformer_blocks_0_proj_out.lokr_w2",
|
|
399
|
-
"lycoris_single_transformer_blocks_1_norm_linear.alpha",
|
|
400
|
-
"lycoris_single_transformer_blocks_1_norm_linear.lokr_w1",
|
|
401
|
-
"lycoris_single_transformer_blocks_1_norm_linear.lokr_w2",
|
|
402
|
-
"lycoris_single_transformer_blocks_1_proj_mlp.alpha",
|
|
403
|
-
"lycoris_single_transformer_blocks_1_proj_mlp.lokr_w1",
|
|
404
|
-
"lycoris_single_transformer_blocks_1_proj_mlp.lokr_w2",
|
|
405
|
-
"lycoris_single_transformer_blocks_1_proj_out.alpha",
|
|
406
|
-
"lycoris_single_transformer_blocks_1_proj_out.lokr_w1",
|
|
407
|
-
"lycoris_single_transformer_blocks_1_proj_out.lokr_w2",
|
|
388
|
+
"lycoris_transformer_blocks_0_norm1_linear",
|
|
389
|
+
"lycoris_transformer_blocks_0_norm1_context_linear",
|
|
390
|
+
"lycoris_transformer_blocks_0_attn_to_q",
|
|
391
|
+
"lycoris_transformer_blocks_0_attn_to_k",
|
|
392
|
+
"lycoris_transformer_blocks_0_attn_to_v",
|
|
393
|
+
"lycoris_transformer_blocks_0_attn_add_k_proj",
|
|
394
|
+
"lycoris_transformer_blocks_0_attn_add_v_proj",
|
|
395
|
+
"lycoris_transformer_blocks_0_attn_add_q_proj",
|
|
396
|
+
"lycoris_transformer_blocks_0_attn_to_out_0",
|
|
397
|
+
"lycoris_transformer_blocks_0_attn_to_add_out",
|
|
398
|
+
"lycoris_transformer_blocks_0_ff_net_0_proj",
|
|
399
|
+
"lycoris_transformer_blocks_0_ff_net_2",
|
|
400
|
+
"lycoris_transformer_blocks_0_ff_context_net_0_proj",
|
|
401
|
+
"lycoris_transformer_blocks_0_ff_context_net_2",
|
|
408
402
|
]
|
|
409
|
-
)
|
|
403
|
+
)
|
|
404
|
+
first_single_block = list(
|
|
405
|
+
filter(
|
|
406
|
+
lambda lor: "lycoris_single_transformer_blocks_0_" in lor.lora_name,
|
|
407
|
+
test_lycoris.loras,
|
|
408
|
+
)
|
|
409
|
+
)
|
|
410
|
+
assert sorted([lor.lora_name for lor in first_single_block]) == sorted(
|
|
411
|
+
[
|
|
412
|
+
"lycoris_single_transformer_blocks_0_norm_linear",
|
|
413
|
+
"lycoris_single_transformer_blocks_0_proj_mlp",
|
|
414
|
+
"lycoris_single_transformer_blocks_0_proj_out",
|
|
415
|
+
"lycoris_single_transformer_blocks_0_attn_to_q",
|
|
416
|
+
"lycoris_single_transformer_blocks_0_attn_to_k",
|
|
417
|
+
"lycoris_single_transformer_blocks_0_attn_to_v",
|
|
418
|
+
]
|
|
419
|
+
)
|
|
420
|
+
|
|
421
|
+
for lora in test_lycoris.loras:
|
|
422
|
+
if "_norm1_" in lora.lora_name:
|
|
423
|
+
self.assertTrue(check_dims(lora, 8))
|
|
424
|
+
elif "_norm_" in lora.lora_name:
|
|
425
|
+
self.assertTrue(check_dims(lora, 8))
|
|
426
|
+
elif "_proj_" in lora.lora_name:
|
|
427
|
+
self.assertTrue(check_dims(lora, 8))
|
|
428
|
+
elif "_attn_" in lora.lora_name:
|
|
429
|
+
self.assertTrue(check_dims(lora, 6))
|
|
430
|
+
elif "_ff_" in lora.lora_name:
|
|
431
|
+
self.assertTrue(check_dims(lora, 4))
|
|
432
|
+
else:
|
|
433
|
+
raise Exception(f"Unknown layer {lora.lora_name}")
|
|
410
434
|
|
|
411
|
-
state_dict = test_lycoris.state_dict()
|
|
412
435
|
test_lycoris_from_weights: LycorisNetwork
|
|
413
436
|
test_lycoris_from_weights, _ = create_lycoris_from_weights(
|
|
414
|
-
1, None, transformer, state_dict
|
|
437
|
+
1, None, transformer, test_lycoris.state_dict()
|
|
415
438
|
)
|
|
416
439
|
test_lycoris_from_weights.apply_to()
|
|
417
440
|
test_lycoris_from_weights.load_state_dict(test_lycoris.state_dict())
|
|
@@ -427,6 +450,7 @@ class LycorisWrapperTests(unittest.TestCase):
|
|
|
427
450
|
assert torch.equal(lora_sd["alpha"], lora_loaded_sd["alpha"])
|
|
428
451
|
assert torch.equal(lora_sd["lokr_w1"], lora_loaded_sd["lokr_w1"])
|
|
429
452
|
assert torch.equal(lora_sd["lokr_w2"], lora_loaded_sd["lokr_w2"])
|
|
453
|
+
|
|
430
454
|
finally:
|
|
431
455
|
reset_globals()
|
|
432
456
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lycoris_lora-3.0.1.dev7 → lycoris_lora-3.0.1.dev9}/lycoris_lora.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|