No need to upload to the server though - even if slow, it would only take maybe a couple of seconds or so to get a result on older devices when I last checked for bodypix using highest quality settings.
You can simply have a nice
preloader animation whilst it is crunching the data. That way you can write code once, and if it is a slow device you can simply request a image upload to front end, wait for results, and show user, and if it is fast, you can offer live calculation like I did. If you want to get started with JS check out Code Academy that offers free course to learn JS pretty fast:
Also for privacy reasons given the use case I would encourage doing client side so people who are sending photos of their bodies are not sending to some server which could be intercepted or if not removed and destroyed from the server hard drive properly could be an issue.
By doing all on the client side their data never leaves their own computer so keeps user data images private, is destroyed after inference is complete, and potentially could cost you less too as you do not need to keep a server running for people who do choose to use the live calculation version if they are on laptop or such. You can simply host the model on a CDN which is much cheaper.
PS yes your use case makes complete sense. I would love to see the final result when it is ready!