faceswap:基于Python的人脸交换工具项目

Deepfakes Software For All

Branch7Tags6
This repository is empty

deepfakes_faceswap

PatreonPayPal 支持者的重要信息。请参阅此论坛帖子:https://forum.faceswap.dev/viewtopic.php?f=14&t=3120


FaceSwap 是一款利用深度学习技术识别并替换图片和视频中人脸的工具。

    


使用 Phaze-A 模型进行的艾玛·斯通/斯嘉丽·约翰逊人脸替换


使用 Villain 模型进行的詹妮弗·劳伦斯/史蒂夫·布西密人脸替换

构建状态 文档状态

开始使用前,请务必查看 INSTALL.md

宣言

FaceSwap 具有合乎道德的用途

当换脸技术首次被开发并发布时,这项技术具有开创性意义,是人工智能发展史上的一大步。但由于代码晦涩难懂且不成体系,学术界之外的人士完全对其视而不见。要想弄明白它,需要对复杂的人工智能技术有透彻的理解,并且要付出大量努力。直到有个人将这些代码整合到一个单一、连贯的集合中。它能运行,也能正常工作,而正如互联网上涌现的许多新技术一样,它很快就被用于制作不当内容。尽管该软件最初被赋予了不当用途,但它却是第一个任何人都可以下载、运行并通过实验学习的人工智能代码,无需拥有数学、计算机理论、心理学等领域的博士学位。在“深度伪造”出现之前,这些技术就像黑魔法一样,只有那些能理解深奥且极其复杂的书籍和论文中所描述的所有内部工作原理的人才能掌握。

“深度伪造”改变了这一切,任何人都可以参与人工智能的开发。对我们开发者而言,这段代码的发布带来了绝佳的学习机会。它让我们能够在他人已有的想法基础上继续发展,与各种技能娴熟的编码者合作,在学习新技能的同时进行人工智能实验,并最终为这项新兴技术做出贡献。随着技术的进步,这项技术的主流应用只会越来越广泛。

是否有人在使用类似软件做可怕的事情?是的。正因为如此,开发者们一直遵循着严格的道德标准。我们中的许多人甚至不使用它来创建视频,只是修改代码看看它能做什么。遗憾的是,媒体只关注该软件的不道德用途。不幸的是,这是它首次向公众公开时的性质,但这并不代表它的创建初衷、我们现在的使用方式以及我们对其未来的展望。与任何技术一样,它既可以被用于善举,也可能被滥用。我们的目标是开发 FaceSwap,以最大限度地降低其被滥用的可能性,同时最大限度地发挥其作为学习、实验工具的潜力,当然,也包括合法的换脸功能。

我们并非试图诋毁名人或贬低任何人。我们是程序员、工程师、好莱坞视觉特效艺术家、活动家、爱好者,我们也是普通人。为此,我们认为是时候发表一份正式声明,说明在我们开发者看来,这款软件是什么,不是什么。

  • FaceSwap 不用于创建不当内容。
  • FaceSwap 不用于未经同意或意图隐瞒其使用的换脸行为。
  • FaceSwap 不用于任何非法、不道德或有问题的目的。
  • FaceSwap 的存在是为了实验和探索人工智能技术,用于社会或政治评论,用于电影制作,以及用于任何数量的合乎道德和合理的用途。

我们对 FaceSwap 可能被用于不道德和不光彩的事情感到非常不安。然而,我们支持开发能够被合乎道德地使用的工具和技术,并为任何想要动手学习人工智能的人提供教育和经验。我们对任何使用本软件进行不道德行为的人采取零容忍态度,并将积极阻止任何此类用途。

如何设置和运行项目

FaceSwap 是一款可在多个操作系统上运行的 Python 程序,包括 Windows、Linux 和 MacOS。

完整的安装说明请参见 INSTALL.md。为获得最佳性能,您需要一款支持 CUDA 的现代 GPU。许多 AMD GPU 可通过 ROCm(Linux)获得支持。

概述

该项目有多个入口点。您需要:

  • 收集照片和/或视频
  • 从原始照片中提取人脸
  • 使用从照片/视频中提取的人脸训练模型
  • 使用模型转换您的源文件

更详细的说明请查看 USAGE.md

提取

在您的安装文件夹中,运行 python faceswap.py extract。这将从 src 文件夹中获取照片,并将提取出的人脸保存到 extract 文件夹中。

训练

在您的安装文件夹中,运行 python faceswap.py train。这将从两个包含不同人脸照片的文件夹中获取照片,并训练一个模型,该模型将保存到 models 文件夹内。

转换

在您的安装文件夹中,运行 python faceswap.py convert。这将从 original 文件夹中获取照片,并将新的人脸应用到照片上,结果保存到 modified 文件夹中。

GUI

或者,您可以通过运行 python faceswap.py gui 来启动图形用户界面(GUI)。

一般注意事项:

  • 上述所有脚本都带有 -h/--help 选项,可显示它们接受的参数。您很聪明,应该能弄明白怎么用,对吧?!

注意:有一个视频转换工具。可通过运行 python tools.py effmpeg -h 来访问。或者,您也可以使用 ffmpeg 将视频转换为照片,处理图像,然后再将图像转换回视频。

一些提示:

复用现有模型比从头开始训练要快得多。 如果训练数据不足,可以先从与目标人脸长得相似的人开始,然后再切换数据。

求助!我需要支持!

Discord 服务器

您最好加入 FaceSwap Discord 服务器,那里有很多用户愿意提供帮助。请注意,与本仓库一样,这是一个“安全工作环境”(SFW)服务器!

FaceSwap 论坛

您也可以在 FaceSwap 论坛 发布问题。请勿在此代码库中发布一般性支持问题,此类问题可能会被直接删除且不予回复。

捐赠

开发者们为改进和开发 FaceSwap 付出了不懈的努力。为了呈现如今的软件,他们投入了大量时间,但这是一个极其耗时且无经济回报的过程。如果您喜欢使用本软件,欢迎考虑向开发者捐赠,以便他们能有更多时间进行功能改进。

Patreon

支持我们的最佳方式是通过我们的 Patreon 页面:

become-a-patron

一次性捐赠

您也可以向我们的任何一位开发者进行一次性捐赠:

@torzdf

FaceSwap 的几乎所有代码都经过了 torzdf 的修改。他负责实现了图形用户界面(GUI)、FAN 对齐器、MTCNN 检测器,将 Villain、DFL-H128 和 DFaker 模型移植到 FaceSwap,并对代码的许多方面进行了显著改进。

比特币(Bitcoin): bc1qpm22suz59ylzk0j7qk5e4c7cnkjmve2rmtrnc6

以太坊(Ethereum): 0xd3e954dC241B87C4E8E1A801ada485DC1d530F01

门罗币(Monero): 45dLrtQZ2pkHizBpt3P3yyJKkhcFHnhfNYPMSnz3yVEbdWm3Hj6Kr5TgmGAn3Far8LVaQf1th2n3DJVTRkfeB5ZkHxWozSX

贝宝(Paypal): torzdf

@andenixa

Unbalanced 和 OHR 模型的创建者,并扩展了训练过程中的各种功能。Andenixa 目前正在开发新模型,并接受捐赠请求。

贝宝(Paypal): andenixa

如何贡献

对生成模型感兴趣的人士

  • 请访问 'faceswap-model' 讨论、建议或提交当前算法的替代方案。

面向开发者

  • 完整阅读本 README
  • Fork 此仓库
  • 动手实践
  • 查看带有 'dev' 标签的问题
  • 对于对计算机视觉和 openCV 更感兴趣的开发者,请关注带有 'opencv' 标签的问题。也欢迎提出您自己的替代方案或改进建议

面向非开发高级用户

  • 完整阅读本 README
  • 克隆此仓库
  • 动手实践
  • 查看带有 'advuser' 标签的问题
  • 同时也可以访问 'faceswap 论坛' 并帮助他人。

面向终端用户

  • 如果可以,请在此处获取代码并进行尝试
  • 您也可以访问 faceswap 论坛,获取帮助或帮助他人。
  • 请保持耐心。对于开发者而言,这也是一项相对较新的技术。已经投入了大量精力来使该程序对普通用户而言易于使用。这需要时间!
  • 注意 任何与运行代码相关的问题都必须在 faceswap 论坛 中提出!

关于机器学习

计算机如何识别/塑造人脸?机器学习如何工作?什么是神经网络?

这很复杂。以下是一个不错的视频,它使这个过程变得易于理解: How Machines Learn

这里有一个稍微深入一点的视频,试图解释神经网络的基本功能: How Machines Learn

简单来说:训练数据 + 反复试验