Coverage for detection / base.py: 88.89%

9 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2025-12-22 10:24 +0000

1# Copyright 2025 THU-BPM MarkDiffusion. 

2# 

3# Licensed under the Apache License, Version 2.0 (the "License"); 

4# you may not use this file except in compliance with the License. 

5# You may obtain a copy of the License at 

6# 

7# http://www.apache.org/licenses/LICENSE-2.0 

8# 

9# Unless required by applicable law or agreed to in writing, software 

10# distributed under the License is distributed on an "AS IS" BASIS, 

11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 

12# See the License for the specific language governing permissions and 

13# limitations under the License. 

14 

15 

16from abc import ABC, abstractmethod 

17import torch 

18 

19class BaseDetector(ABC): 

20 

21 def __init__(self, 

22 threshold: float, 

23 device: torch.device): 

24 

25 self.threshold = threshold 

26 self.device = device 

27 

28 @abstractmethod 

29 def eval_watermark(self, 

30 reversed_latents: torch.Tensor, 

31 reference_latents: torch.Tensor = None, 

32 detector_type: str = "l1_distance") -> float: 

33 pass