Clustering via Self-Supervised Diffusion