So seemingly this is a Tensorflow model compiled as WASM? Pretty cool no matter how it's accomplished but I'll echo the other commenter that a more detailed writeup would be nice especially for the HN folks!
How.. Wai... What do you mean? There is a lot of difference! That's like saying Java bytecode is the same as Java source code, not nearly the same thing! Things that can run JS can run minified JS but doesn't mean it can run WASM, and just because something can run WASM doesn't mean it can run JS.
Seems it's just the HN title that is incorrect, the website itself makes no claim about being vanilla JS/"pure" JS. Maybe mods/dang can correct it to remove the "Pure JavaScript" part?
Apologies for the re-post. I realized since I'm the author this would make more sense as a Show HN than as a anonymous link (and it was too late to edit).
Hm, it definitely works for me (on a re-try) and most people according to analytics don't get an error message (as well as friends who've tried it). I do load the models from a different domain (via cloudfront, though I've set up CORS there). Maybe you have some extra strict setting activated? (Ps big fan paul! fanboying from the interaction)
I used a photo of my face and the results were pretty nightmarish with some of those faces. Makes me realise snapchat-like filters on social media apps are heavily designed to be as non-disturbing/threatening as possible, because deep fakes IMO tend to be disturbing more often than not
Mostly a tech demo of something that hasn't really been shown to be possible until now. We've seen lots of GPU heavy models that achieve similar things like this (often requiring VRAM outside what most consumer GPUs can usually handle), but here I show (after a lot of effort on my part) that cool effects like that are in fact possible to make run decently fast even on mobile web. Hopefully it's inspirational and might nudge some people to try making more cool creative tfjs models that can run on the device (preserving privacy and activating a new layer of fun that's only possible once you get these things real time) rather than hidden behind an API. (I thought that would happen 5 years ago but the phase shift still hasn't really happened for some reason.)
Probably could be ported easily to ES 2.0 which still runs in most recent browsers. Just like in the late 80s, there was a hype cycle around neural nets in the late 90s.