7 ms·
Show HN: JavaScript/WebGL webcam face swap with color correction
- bradknowles 8y agoHmm. Doesn’t seem to work. Is it that this doesn’t work on iOS, or that it just plain doesn’t work?
- southerndrift 8y agoTaking a guess as I haven't checked the code: For video streams you need WebRTC / MediaDevices which are not supported on apples iOS rendering library. So, no chance of getting it to work on iOS in a browser.
- 0x0 8y agoWorks for me on iOS 11.4 Safari.
- realmike33 8y agoTried it on mobile Chrome for android and it doesn't work. Will try it on my Mac later.
- hpaavola 8y agoWorks on Firefox for Android at least.
- jageen 8y agoIt work pretty good in mac + firefox, did not try with other browser.
- jhoh 8y agoWorked for me on Chrome for Android.
- pjmlp 8y agoI got a sorry bro error message, incompatible GL version. Apparently GL ES 3.1 isn't enough.
- xavierwebgl 8y agoI would be very interesting by having your configuration to solve this problem. Are you compatible with WebGL2 ? (http://webglreport.com/?v=2 http://webglreport.com/?v=2). If no, which are your WebGL1 extensions ? http://webglreport.com/?v=1 http://webglreport.com/?v=1
- pjmlp 8y agoYes fully. LG Power X, running Android 6.0, Chrome 66.
- onion2k 8y agoIf you don't fancy giving webcam permissions to a random link on the internet you'll get a blank page. If you want to read about the code you're about to run the originating repo is here - https://github.com/jeeliz/jeelizFaceFilter https://github.com/jeeliz/jeelizFaceFilter - this is one of the examples.
- mirimir 8y agoVideo, too https://www.youtube.com/watch?v=jQkaJoMGinQ https://www.youtube.com/watch?v=jQkaJoMGinQ
- MasterScrat 8y agoThere should be a way to "sandbox" a webpage, ie completely disconnect it from the outside world. I would be much more comfortable with this kind of demo that need webcam, audio or file upload. So: - block all incoming and outgoing requests from that page - discard all data persisted in cookies/localStorage - ignore caches (to prevent timing attacks)
- jstanley 8y agoI agree. This sort of thing would also be useful when performing client-side decryption of encrypted content. If it's not possible for the page to perform any lasting global state modifications, you wouldn't have to trust that the server is not shipping malicious code to exfiltrate the key or plaintext. It wouldn't be able to do so.
- onion2k 8y agoWouldn't there need to be some sort of way to verify the client hasn't been modified in order to trust that? That's not really possible, because you'd be asking something to verify itself.
- jstanley 8y agoIf you configure your browser not to allow the client to leak anything, it doesn't even matter if the client has been modified because it can't leak anything anyway. EDIT: I'm speaking from the position of an end-user. I'm downloading ciphertext + a decryption tool from an untrusted server and executing the decryption tool locally, with a key which I input locally. I want to make sure that the plaintext and key do not get leaked back to the server. Situations where this arises include encrypted pastebins, bitaddress.org, Ian Coleman's BIP39 tool, anything else that generates or handles bitcoin keys, etc.
- vidarh 8y agoI got just a bunch of blinking rectangles moving over the screen... (Chrome 66 on Linux)
- mcintyre1994 8y agoSame, in both Chrome and Firefox on macOS.
- chrischen 8y agoThe link goes to a demo of face detection. For face swap, this is the actual demo: https://jeeliz.com/demos/faceFilter/demos/faceReplacement/gif https://jeeliz.com/demos/faceFilter/demos/faceReplacement/gi...
- wccrawford 8y agoThanks. I tried it and it consistently made my face a little too small, ruining the effect.
- chrischen 8y agoApparently it is face swap, just requires two faces in the frame.
- Moter8 8y agoGiving it webcam access on Chrome Windows, without having a webcam, it gave funny results: https://i.imgur.com/k03jWag.png https://i.imgur.com/k03jWag.png It mirrored my second monitor and different squares appeared all over the screen.
- netgusto 8y agoSo if you do not have a webcam, Chrome feeds a video of your desktop to the webpage ? Sounds like an awful security issue!
- bhouston 8y agoWhoa! Yeah, this should be reported.
- egfx 8y agoYou know. Weird that you mention this. I had this happen to me on Facebook after I initiated media. It took, what appeared to be a screen capture of my browser. I'm like WTF, how did Facebook take a screenshot of the chrome around the inner-frame of the page.
- jakevn 8y agoDo you have any screen recording/sharing software? This seems odd, so I'm wondering if there is a webcam driver installed that actually feeds your video output.
- sp332 8y agoI just get "webcam unavailable", even with two monitors. Chrome 67 on Windows.
- xavierwebgl 8y agoThis is strange. Sometimes it happens when another software like Skype is using the webcam
- chris_engel 8y agoWorks fine on Chrome/Brave on Android. The blinking rects is actually the face detection algorithm looking for faces. If it finds one, a blue rectangle remains around the face. Remember you need two faces for faceswap ;)
- xavierwebgl 8y agoYes, It is a demo app so it is not very well packaged. The code drawing the rectangles (in /helpers/FaceCut) can still be changed to display more user friendly stuffs :)
- callumlocke 8y agoNever seen a live camera feed working in iOS Safari until now. Has something changed recently to allow this?
- deleted 8y ago[deleted]
- davidmurdoch 8y agoit doesn't work on my up-to-date iPhone 8 Plus
- xavierwebgl 8y agoDo you try with Safari ? And is it up to date ? We tried with safari, Ipad pro and Iphone X and it worked. It can only work with safari 11.2 at least and Chrome for IOS does not implement mediastream API yet (so no webcam) because it is based on a Safari Webview. If you have an app which uses the camera opened at the same time it may not work too.
- xavierwebgl 8y agoI did a big getUserMedia wrapper, the standard is very badly implemented. There is problems with firefox and Android which had to be solved too. That's why we have included the video capture into the library (but it is still possible to provide a custom <video> element too)
- always_good 8y agoI always have this fear in the back of my mind that this sort of website is recording the unflattering video feed of me peering over my triple chins at the laptop that rests on my belly in bed, waiting to potentially blackmail me with it, post it to my facebook feed, or send it to any women that ever had an interest in me. Yes, I would be able to see that in the network traffic, but not if they have a 0-day for my OS.
- xavierwebgl 8y agoHaha :D do not worry you take a look at the network tab of the webmaster tools of your browser, and there is nothing weird recorded by the server
- Raphmedia 8y agoAnecdote: I know of someone who built a fake "chatroulette" (before Chatroulette was a thing) as an internal April Fool at their company. It would record the user to the server, the idea was to make a compilation of people getting pranked. It displayed a prerecorded video of a woman that then faded into a bunch of text and "April Fool!! We got you!!" ... Well, things turned sour when people started to open the website with their pants down, ready to show the goods to the ladies. Fast forward a few days when the developer opened the folder with videos... to see a bunch of naked guys.