mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-07-18 20:38:15 +08:00
Merge fd724d8be7 into 1d1099bea0
This commit is contained in:
commit
2479541a00
@ -60,6 +60,8 @@ class BOFTAdapter(WeightAdapterBase):
|
||||
blocks = v[0]
|
||||
rescale = v[1]
|
||||
alpha = v[2]
|
||||
if alpha is None:
|
||||
alpha = 0
|
||||
dora_scale = v[3]
|
||||
|
||||
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