diff --git a/backend/nn/flux.py b/backend/nn/flux.py index 24fbffdd..a8af199d 100644 --- a/backend/nn/flux.py +++ b/backend/nn/flux.py @@ -37,11 +37,18 @@ def rope(pos: torch.Tensor, dim: int, theta: int) -> torch.Tensor: return out.to(dtype=torch.float32, device=pos.device) -def apply_rope1(x: torch.Tensor, freqs_cis: torch.Tensor) -> torch.Tensor: - x_ = x.to(dtype=freqs_cis.dtype).reshape(*x.shape[:-1], -1, 1, 2) - x_out = freqs_cis[..., 0] * x_[..., 0] - x_out.addcmul_(freqs_cis[..., 1], x_[..., 1]) - return x_out.reshape(*x.shape).type_as(x) +try: + import comfy_kitchen as ck +except ImportError: + + def apply_rope1(x: torch.Tensor, freqs_cis: torch.Tensor) -> torch.Tensor: + x_ = x.to(dtype=freqs_cis.dtype).reshape(*x.shape[:-1], -1, 1, 2) + x_out = freqs_cis[..., 0] * x_[..., 0] + x_out.addcmul_(freqs_cis[..., 1], x_[..., 1]) + return x_out.reshape(*x.shape).type_as(x) + +else: + apply_rope1 = ck.apply_rope1 def apply_rope(xq: torch.Tensor, xk: torch.Tensor, freqs_cis: torch.Tensor) -> tuple[torch.Tensor, torch.Tensor]: