Show HN: Create a Deep Fake Video from Any Image
myvoiceyourface.com
myvoiceyourface.com
The license for the code specifically states "Non-Commercial".
Is your code something else? Also seems like you've double posted it.
Edit: Your other posts also have a similar look - are you testing the waters for a viable biz model by adding web-app wrappers around ML papers who have published their code on Github? Not being accusatory or anything, just trying to understand.
The transparency is very appreciated. Nice job putting it together, hope you get some actually constructive (vs mine) feedback from hn
The example video shows the face being stretched mostly around the mouth, and without extreme or sudden changes. Sure, it looks fake, but it seems coherent. It's almost the kind of thing a human would make in a comedy setting. But in the generated videos below, I see a lot of the issues we often get with generative models -- eyes or mouths flickering in and out of existence, a disappearing neck, parts of the background getting mixed with the face, etc. Sort of nightmare-ish, but not at the level of deep-dream dog-worms from 2014 or whenever.
Were these even from the same method? Or is there some about the user-submitted photos that meaningfully differs from those used during training?
Anyone knows of something like this that works? Links? Thank you.
Select a headshot video of a person speaking and an image that you would like to bring to life. Make sure both image and the video are cropped so mainly the face is visible. (no rotated images/videos)
https://myvoiceyourface.com/pay/
$20/mo for 20 videos. While the technical output you've achieved is notable, just curious, who is your target audience? How do you see these videos being used?
In my mind, blockchain is the only thing that can counterbalance this tech. We need blockchain signed photos and videos to ensure authenticity.
b) the bank has a big database and a system of clearing cheques that ensures you cannot double-spend money by writing yourself a cheque. If you try to kite cheques by abusing the latency in the system they notice because it turns out you can just write that down in a central database too and it's pretty effective
What happened was that person lost the ability to deposit and withdraw.
There is a level of trust but things will catch up to you.
Digital signatures to validate a source and recording method are needed.
Seems reasonable to coordinate the updates with a blockchain (though not necessary for use cases where you trust the platform / coordinating entity).
Disclaimer I work at a zkSNARK / blockchain company :)
The use of blockchain is important as a global timestamp that can be trusted.
Blockchain or any signing system, PGP, shared key, is only as good as the person/entity signing it.
Who will perform that signing that you trust... CNN? Fox News? Google? THE US GOVERNMENT?!
History is only as good as the one telling the story. In this case, who inserted the initial video? The FIRST person who inserted gets to say "this is truth".
With Bitcoin what's being traded existed from the beginning. It was "mined" from the original pool. Here we all collectively said, "we trust that original pool not to be shifty". So because we trust that original source, we can trade these "items" confidently.
Here the question isn't "Proof of work", it's "proof of source" which currently I cannot see a good solution for.
Proof of Authority. What matters is the reputation of the source. You can have varying degrees of trustworthiness based on an source's reputation, which is built up on the chain.
For example, Craig Wright has faced a lot of backlash for claiming to be Satoshi Nakamoto. There's been no way for him to be proven wrong. Recently, someone signed a transaction with an address that hadn't moved Bitcoin since 2009 (implying it was an early adopter or contributor) and they called out Wright's lie (he had claimed to own that block).
So Wright lost credibility. That's what we need. We need the ability to develop reputation on the blockchain and a way to punish that reputation economically for posting invalid data.
EDIT (I'm out of HN replies): Reputation can be established based on a staking transaction. You create a smart contract for say, independent journalist Tim Pool. He signs it and stakes some amount and publicly declares that address to be his. He posts all his videos with a signature embedded that can be validated against that contract. The hardware itself (with algos signed by chip manufacturer) could also sign the video. An open source app could also sign. If you've got 3 signatures on a video HW, SW, and individual (associated with smart contract address) and a public blockchain timestamp, you've got a high degree of trustworthiness in that footage.
That trust is built on 2 things. PGP is trusthworthy and BTC is worth listening to.
I replied to your other post, but it's embedded in "why is BTC worth listening to"?
BTC/Eth is trustworthy because fundamentally it is a self-contained math problem that can be self tested by anyone.
Today, there is no way to make video self-testable in a trustworthy fashion because you will always be asking "Who uploaded/created this?"
That's a social proof token[0][1].
But again, think about bad actors gaming the trust token and then inserting their own deep fakes. It's not even far fetch.
Also, who 'gives' those tokens? What if a whole bunch of republicans give a lot of social proof tokens to Alex Jones. At one point in time, that made quite a bit of sense. So now you've got a blockchain backed authority saying Sandy Hook was a democrat red herring.
So then a bunch of democrats come in to push that Alex Jones vote back down. That same system that pushed Alex down is now a system that can push others back down in a weaponized fashion.
Separately, if you just want to say "I created this work" regardless of who I am. PGP does that perfectly well. The whole block chain infrastructure isn't necessary. It doesn't add anything to the validity of the video itself.
[0] https://ght.dtsgroup.co.nz/ [1] https://www.hubtoken.org/images/hub-white-paper.pdf
PGP depends on a certificate authority, and is quite centralized in that sense. Blockchain allows multiple open standards to exist and to develop organically. AI will continue to evolve and it's important that verification tech evolve along with it in a open source manner. The blockchain community, especially with it's recent work and research on zero knowledge proofs, are more prepared to adapt to those changes. Their whole industry is based on establishing consensus in a permissionless way.
The problem of deep fakes still exists. Deep fake isn't just about altering, it's also about creating whole new videos that didn't happen using the likeness of a person like in OP's link.
If I upload that, sign it with my decentralized ID, CNN and Fox picks it up and co-sign it with their decentralized ID. Great! My deep fake is in the wild picked up by millions all while being completely verified.
But that won't happen because no one would believe you irjustin. Right, isn't that the crux? Who do we trust?
(if you're thinking i can't just sign any random video, it's gotta be signed with my phone - don't worry let's go back to direct feed into the camera)
I'm not sure what else to say to help you understand that if you're not willing to take a hard look at your own solution then there's nothing I can do to convince you the block chain is really good at doing some things and preventing deep fakes is not one of them.
At the very least this needs to be done with public figures in particular, since a convincing fake video could invoke a riot or cause a war.
So as a bad actor, I'll just take a video of a deep fake video with my self signing phone to circumvent your trust?
Ah but it's easy to spot a video of a video!
But what if I just replace the camera with a direct feed system?
That's absurd amount of money/work, why would you do that?
Because I'm a state level actor and I really want this war to start.
BTC & Eth are trustworthy because the original pool we can perform tests against the math which it is built upon. In fact, it doesn't matter who uploaded BTC/Eth. The system is a self contained math problem.
An uploaded video does not have such self-testing ability because it always comes down to "who" took it and who uploaded it.
"Trust at the source" or "Who to trust?" is now the problem. Blockchain cannot solve that alone. I don't know any system that could.