mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-07-20 13:28:19 +08:00
Merge fd724d8be7 into 1d1099bea0
This commit is contained in:
commit
2479541a00
@ -60,6 +60,8 @@ class BOFTAdapter(WeightAdapterBase):
|
|||||||
blocks = v[0]
|
blocks = v[0]
|
||||||
rescale = v[1]
|
rescale = v[1]
|
||||||
alpha = v[2]
|
alpha = v[2]
|
||||||
|
if alpha is None:
|
||||||
|
alpha = 0
|
||||||
dora_scale = v[3]
|
dora_scale = v[3]
|
||||||
|
|
||||||
blocks = comfy.model_management.cast_to_device(
|
blocks = comfy.model_management.cast_to_device(
|
||||||
|
|||||||
32
tests-unit/comfy_test/weight_adapter_boft_test.py
Normal file
32
tests-unit/comfy_test/weight_adapter_boft_test.py
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
import torch
|
||||||
|
from comfy.cli_args import args as cli_args
|
||||||
|
|
||||||
|
if not torch.cuda.is_available():
|
||||||
|
cli_args.cpu = True
|
||||||
|
|
||||||
|
from comfy.weight_adapter.boft import BOFTAdapter
|
||||||
|
|
||||||
|
|
||||||
|
def _apply(alpha):
|
||||||
|
torch.manual_seed(0)
|
||||||
|
blocks = torch.randn(1, 2, 2, 2) * 0.1
|
||||||
|
weight = torch.eye(4)
|
||||||
|
adapter = BOFTAdapter("w", (blocks, None, alpha, None))
|
||||||
|
out = adapter.calculate_weight(
|
||||||
|
weight.clone(), "w", 1.0, 1.0, 0, lambda x: x,
|
||||||
|
intermediate_dtype=torch.float32, original_weight=None,
|
||||||
|
)
|
||||||
|
return out, weight
|
||||||
|
|
||||||
|
|
||||||
|
class TestBOFTAdapter:
|
||||||
|
def test_applies_when_alpha_missing(self):
|
||||||
|
# a BOFT LoRA without an ".alpha" key arrives with alpha=None; it must still
|
||||||
|
# apply the rotation (None means "no constraint"), like the OFT adapter.
|
||||||
|
out, weight = _apply(None)
|
||||||
|
assert not torch.equal(out, weight)
|
||||||
|
|
||||||
|
def test_missing_alpha_matches_zero_alpha(self):
|
||||||
|
out_none, _ = _apply(None)
|
||||||
|
out_zero, _ = _apply(0)
|
||||||
|
assert torch.allclose(out_none, out_zero)
|
||||||
Loading…
Reference in New Issue
Block a user