Autoencoder produces repeated artifacts after convergence
Perhaps you are getting checkerboard artifacts Explained here, solutions involve changing the kernel and stride size to prevent them from being not divisible. Besides that, a solution could be to apply Gaussian smoothing to minimize the artifacts.
For example, using Gaussian smoothing in OpenCV with your image results in
import cv2
img = cv2.imread('s.png') # I took a screen shot to see how it would look
blur = cv2.blur(img,(8,8))
plt.imshow(blur)


The artifact is gone using a kernel of size (8,8). I hope this can help