This commit is contained in:
Abhay Singh 2026-07-17 12:59:40 -07:00 committed by GitHub
commit 2479541a00
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 34 additions and 0 deletions

View File

@ -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(

View 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)