It would be difficult for a large volume of uploads, but TensorFlow does this in PhotoPrism for facial recognition, etc on a Lenovo thin client running CasaOS in my house. I uploaded over 6000 images and it finished in a few hours. That’s just a quad core old i5.