Files
remove-ai-watermarks/scripts/synthid_periodic_tile.py
T

24 lines
881 B
Python

"""Compatibility imports for shared periodic-residual helpers."""
from __future__ import annotations
import sys
from pathlib import Path
import numpy as np
sys.path.insert(0, str(Path(__file__).resolve().parent))
from synthid_runtime.synthid_detector import fold_residual_template, unit_tile
__all__ = ["cyclic_tile_correlations", "fold_residual_template", "unit_tile"]
def cyclic_tile_correlations(template: np.ndarray, tile: np.ndarray) -> np.ndarray:
"""Return correlations for every cyclic spatial shift of TILE."""
if template.shape != tile.shape or template.ndim != 3:
raise ValueError("template and tile must have identical three-dimensional shapes")
template_spectrum = np.fft.fft2(template, axes=(0, 1))
tile_spectrum = np.fft.fft2(tile, axes=(0, 1))
return np.fft.ifft2(np.sum(template_spectrum * np.conj(tile_spectrum), axis=2)).real