FaceSWAP / tests /test_blender.py
aditya-rAj19's picture
Initial commit: DeepFace Studio - AI face swap web application
e7a5a81
Raw
History Blame Contribute Delete
1.09 kB
import numpy as np
import pytest
from core.blender import laplacian_blend, poisson_blend
def _img(h=128, w=128, val=128):
return np.full((h, w, 3), val, dtype=np.uint8)
def _mask(h=128, w=128, region="center"):
m = np.zeros((h, w), dtype=np.uint8)
if region == "center":
m[h//4: 3*h//4, w//4: 3*w//4] = 255
elif region == "full":
m[:] = 255
return m
def test_laplacian_blend_output_shape():
img1 = _img(val=50)
img2 = _img(val=200)
mask = _mask()
result = laplacian_blend(img1, img2, mask, levels=3)
assert result.shape == img1.shape
assert result.dtype == np.uint8
def test_laplacian_blend_full_mask_gives_img1():
img1 = _img(val=100)
img2 = _img(val=200)
mask = _mask(region="full")
result = laplacian_blend(img1, img2, mask, levels=2)
assert result.mean() > 90
def test_poisson_blend_fallback_on_empty_mask():
src = _img(val=100)
dst = _img(val=200)
empty_mask = np.zeros((128, 128), dtype=np.uint8)
result = poisson_blend(src, dst, empty_mask)
assert result.shape == src.shape