新一代开源 免费 AI换脸神器 FaceFusion 3.0.1 支持AMD显卡+N卡 速度更快,效果更惊艳 操作更简单 附视频演示

开源 3267 293374

FaceFusion这个AI换脸的项目已经太久没有更新了。作者终于在昨天更新了3.0,更新幅度大得惊人。这么久不更新,原来是一直在憋大招,这个CD冷却也太久了。。。我第一次时间就去做整合包了。本以为这还不是有手就行的事,但是有点难度。因为3.0更新太大了,所以之前版本的模型还有一些东西根本用不上了,我只能慢慢去研究了。搞半天最后把我的系统的conda环境搞砸了。。。然后我就各种修复结果不但没有修好,相反把我的cuda版本也搞乱了,最后导致我不得不重装了系统。我真是手欠啊。有时候冲动真的是魔鬼。最后到了午夜时分才搞好。。。然后又是打包上传上来。都是泪。。。

这个整合包我测试了半天,按理来说应该没什么问题了,如果各位小伙伴在玩的时候有什么问题 可以留言告知一下。

先看演示吧,为了不侵犯他人的肖像之类的东西,我就只放换脸后的视频。各位参考参考,下图是AI生成的2个小姐姐,替换视频的里面的脸


下面来讲下 详细操作 点击启动后就是这么一个黑洞洞的窗口

PixPin_2024-04-25_07-26-16.png

然后打开一个链接

http://127.0.0.1:7860 这个链接在黑窗口那里复制即可

需要手动复制在浏览器里面打开

然后出来这样一个界面

PixPin_2024-04-25_07-25-45.png

经群里网友提示 简单从万能君那里复制了下翻译

PixPin_2024-04-25_07-27-44.png

其实我个人觉得这些都是简单的英文单词,一般都认识如果实在是不认识也可以用浏览器翻译下

完全没有必要去单独做汉化了

下面已经就是正经开始操作

点这里选择你要换的脸

这里选择你要换的视频,然后输出质量选100

PixPin_2024-04-25_07-29-55.png

PixPin_2024-04-25_07-31-22.png

比如我换的这个小姐姐的视频 其他都不要动。点最下面的开始

看到开始读秒就说明开始了,在黑洞洞那个窗口也会有各种文字滚动

1714001520633478.png

等完成以后 会有提示Processing to video succeed

PixPin_2024-04-25_07-38-04.png

点击如图所示的地方 把视频保存到你要保存的地方

PixPin_2024-04-25_07-39-06.png

下面是最新版截图

视频也会自动保存在整合包里面的output目录下。

操作就是这么简单。其他参数都默认即可 不要动。第一次运行会慢一些,因为会自动下载一些对应的模型,请耐心等待,下载好后以后再运行就速度很快了。

下面是我使用了这个工具几天的一点心得。

首先 换脸的文件 不要有中文名字和中文路径,否则很容易报错

其次 电脑的用户名 一定要是英文,否则也会报错

再次 换脸的图片 必须是正面 而且要高清一点点,如我上面的小姐姐所示,可以参考下

否则就会提示这个错误

因为我的显卡是A卡,又是比较老旧的A卡 rx580了 所以不支持用显卡来跑,只能用cpu慢慢跑。但是效率也还可以。


 现在已经已经支持了A卡,显卡效率远超CPU。

下面是进阶教程。

这个工具启动后有很多默认的参数,如果你想修改这些参数,可以用记事本打开运行.bat这个文件,记得先备份好这个文件

call py310\python.exe run.py --skip-download --temp-frame-format png --output-video-quality 100 -o output --system-memory-limit 24 --output-video-preset superfast --frame-processors face_swapper face_enhancer --face-enhancer-model restoreformer_plus_plus --face-swapper-model uniface_256 --execution-thread-count 8 --face-detector-model retinaface --face-detector-size 160x160,320x320

找到如上一段代码,下面是这段代码的解释

--skip-download: 这个参数可能表示跳过下载某些资源或数据。

--temp-frame-format png: 临时帧的格式设置为PNG。

--output-video-quality 100: 输出视频的质量设置为100(通常是最高质量)。

-o output: 设置输出目录或文件名为 output。

--system-memory-limit 24: 系统内存限制设置为24GB(或可能是其他单位,具体取决于脚本如何实现)。

--output-video-preset superfast: 输出视频的预设设置为“superfast”,这通常与视频编码速度有关,可能牺牲了一些质量以获得更快的编码速度。

--frame-processors face_swapper face_enhancer: 指定两个帧处理器:face_swapper 和 face_enhancer,它们可能分别用于人脸交换和人脸增强。

--face-enhancer-model restoreformer_plus_plus: 为 face_enhancer 帧处理器指定模型为 restoreformer_plus_plus。

--face-swapper-model uniface_256: 为 face_swapper 帧处理器指定模型为 uniface_256。

--execution-thread-count 8: 执行线程数设置为8,这意味着脚本将使用8个线程来并行处理。

--face-detector-model retinaface: 指定人脸检测模型为 retinaface。

--face-detector-size 160x160,320x320: 人脸检测器的大小或分辨率设置为160x160和320x320两种尺寸。

这些注释我懒得去手动打字了,用AI帮我注释的,我大致看了下没什么大问题,估计各位小伙伴都能看明白就行了,更改这些参数就可以更改facefusion启动后的默认参数

我举个例子 你们就明白了

--face-swapper-model uniface_256 如果想改一个默认的模型 可以改成

--face-swapper-model inswapper_128 这样启动后的默认模型就改了

其他就看你们自由发挥了,想获取更详细的参数说明可以去看官方开源项目那里看看了。

3.0 更新记录

改造架构,让一切都成为工作

为换脸器引入像素提升

为面部检测器添加多角度处理

引入年龄修正处理器

推出基于Live Portrait的表情恢复处理器

推出Live Portrait人脸编辑处理器

用resnet_34模型替换人脸解析器

发布GHOST换脸模特

释放帧增强器real_esrgan_x8型号

介绍SimSwap和GHOST的ArcFace转换器模型

基于本地哈希验证引入离线优先资产

将gender_age替换为高级公平脸模型

将顺序、年龄和性别转移到面部选择器

支持CUDA 12.4、TensorRT 10.4、OpenVino 2024.1和ROCm 6.2

在无头模式下提供适当的错误代码

将CLI迁移到命令以及相关参数

介绍定制的peppa_wutz人脸地标模型

介绍——人脸地标模型论证

介绍——输出音频编码器参数

添加视频编码器h264_videotobox和hevc_videototoolbox

将--face选择器顺序默认值更改为大-小

用上下文感知推理管理器替换全局变量

调整UI布局和视觉外观

更新至最新Gradio 4

提供多范围滑块来修剪视频帧

在UI中引入日志级别感知终端组件

确保基准测试结果更加准确

由于精度低,删除面部检测器模型yunet

修复面部切换统一模型中的闪烁问题

修复ROCm和DirectML的线程和预览崩溃问题

修复webp图像的图像质量

修复ffmpeg处理的终止


视频演示点击这里

有疑问 先看下面的教程

https://www.myhelen.cn/helen/240.htm

https://www.myhelen.cn/helen/242.htm

https://www.myhelen.cn/helen/246.htm

https://www.myhelen.cn/helen/250.htm 最新N卡教程

有问题 需要解答,请先告知自己的显卡参数以及下载的是哪个版本,我没有未卜先知的能力,上面的教程麻烦先看看再问!

下面是几个必须要安装的软件否则运行不了

运行库不管是什么卡都要安装

https://www.jian27.com/html/2290.html

AMD显卡 AMD HIP SDK必须安装3.0 以后只能使用CPU运行了

下载地址

https://pan.quark.cn/s/f5f86d769394

https://drive.uc.cn/s/eab589fe1a1d4

https://pan.baidu.com/s/1c65OrFR18AuHOvTH56Yu7Q?pwd=6666


修改facefusion2.6.1 缓存目录的方法

https://www.myhelen.cn/helen/253.htm

修改facefusion 3.0 缓存目录的方法

https://www.myhelen.cn/helen/263.htm

请勿将该工具用于任何非法行为,由此产生的一切后果自负

下载有疑问看下这里

相关推荐:

我要评论:

◎欢迎参与讨论,请自觉遵守国家法律法规。

已有 3267 条评论

  1. 超人 超人

    请问下,这个软件可以批量换脸嘛?

  2. 和谐演变狗 和谐演变狗

    选择的run-cuda.bat运行 进去后勾选cuda 启动后却是CPU100%在跑 显卡动都不动 咋回事啊 显卡是1660TI

    1. 剑心 剑心

      仔细看视频教程

  3. 苗条专注 苗条专注

    想问一下到这里就没反应了是怎么回事Analysing: 100%|=====================================================| 6582/6582 [01:43

    1. 剑心 剑心

      想进去喝茶 你为什么不直接打110呢?

  4. 天宇清风 天宇清风

    刚刚手机上下载了DNS优选,用了,下载还是打不开

    1. 剑心 剑心

      我再次测试没有问题

  5. 河马甜美 河马甜美

    这个哪里不对
    Traceback (most recent call last):
    File "F:\facefusion3.0.1\jian27\Lib\site-packages\gradio\queueing.py", line 536, in process_events
    response = await route_utils.call_process_api(
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "F:\facefusion3.0.1\jian27\Lib\site-packages\gradio\route_utils.py", line 322, in call_process_api
    output = await app.get_blocks().process_api(
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "F:\facefusion3.0.1\jian27\Lib\site-packages\gradio\blocks.py", line 1935, in process_api
    result = await self.call_function(
    ^^^^^^^^^^^^^^^^^^^^^^^^^
    File "F:\facefusion3.0.1\jian27\Lib\site-packages\gradio\blocks.py", line 1520, in call_function
    prediction = await anyio.to_thread.run_sync( # type: ignore
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "F:\facefusion3.0.1\jian27\Lib\site-packages\anyio\to_thread.py", line 56, in run_sync
    return await get_async_backend().run_sync_in_worker_thread(
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "F:\facefusion3.0.1\jian27\Lib\site-packages\anyio\_backends\_asyncio.py", line 2405, in run_sync_in_worker_thread
    return await future
    ^^^^^^^^^^^^
    File "F:\facefusion3.0.1\jian27\Lib\site-packages\anyio\_backends\_asyncio.py", line 914, in run
    result = context.run(func, *args)
    ^^^^^^^^^^^^^^^^^^^^^^^^
    File "F:\facefusion3.0.1\jian27\Lib\site-packages\gradio\utils.py", line 826, in wrapper
    response = f(*args, **kwargs)
    ^^^^^^^^^^^^^^^^^^
    File "F:\facefusion3.0.1\facefusion\uis\components\instant_runner.py", line 82, in run
    create_and_run_job(step_args)
    File "F:\facefusion3.0.1\facefusion\uis\components\instant_runner.py", line 97, in create_and_run_job
    return job_manager.create_job(job_id) and job_manager.add_step(job_id, step_args) and job_manager.submit_job(job_id) and job_runner.run_job(job_id, process_step)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "F:\facefusion3.0.1\facefusion\jobs\job_runner.py", line 11, in run_job
    if run_steps(job_id, process_step) and finalize_steps(job_id):
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "F:\facefusion3.0.1\facefusion\jobs\job_runner.py", line 66, in run_steps
    if not run_step(job_id, index, step, process_step):
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "F:\facefusion3.0.1\facefusion\jobs\job_runner.py", line 52, in run_step
    if job_manager.set_step_status(job_id, step_index, 'started') and process_step(job_id, step_index, step_args):
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "F:\facefusion3.0.1\facefusion\core.py", line 289, in process_step
    if common_pre_check() and processors_pre_check():
    ^^^^^^^^^^^^^^^^^^^^^^
    File "F:\facefusion3.0.1\facefusion\core.py", line 111, in processors_pre_check
    if not processor_module.pre_check():
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "F:\facefusion3.0.1\facefusion\processors\modules\age_modifier.py", line 88, in pre_check
    return conditional_download_hashes(download_directory_path, model_hashes) and conditional_download_sources(download_directory_path, model_sources)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "F:\facefusion3.0.1\facefusion\download.py", line 87, in conditional_download_sources
    _, invalid_source_paths = validate_source_paths(source_paths)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "F:\facefusion3.0.1\facefusion\download.py", line 127, in validate_source_paths
    if validate_hash(source_path):
    ^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "F:\facefusion3.0.1\facefusion\hash_helper.py", line 20, in validate_hash
    validate_content = validate_file.read()
    ^^^^^^^^^^^^^^^^^^^^
    MemoryError

    1. 天宇清风 天宇清风

      嗯… 无法访问此页面
      go.jian27.com 已拒绝连接。
      请尝试:

      检查连接
      检查代理和防火墙
      就下载,突然打不开了

      1. 剑心 剑心

        修改下你上网的dns

        1. 天宇清风 天宇清风

          用手机下载DNS优选,设置了,还是打不开下载

    2. 剑心 剑心

      安装好cuda11.8和对应的cudnn版本

  6. 糊涂就砖头 糊涂就砖头

    出现这个,怎么处理?
    To create a public link, set `share=True` in `launch()`.

    1. 剑心 剑心

      已经在运行 不用处理,仔细看视频教程

  7. 黑裤单纯 黑裤单纯

    学习一下 好东西

  8. 王不流行 王不流行

    感恩您的分享

  9. 手机慈祥 手机慈祥

    大佬 您好,我下载的是1007版本的,路径全英文,一直报错[FACEFUSION.FACE_SWAPPER] No source face detected!
    请问需要排查哪里?

    1. 剑心 剑心

      脸那个图片有问题,换一张,提示找不到脸

      1. 手机慈祥 手机慈祥

        但是确实是高清图啊,用的很标准的肖像照。。。我花钱买了份整合版 我再试试

        1. 剑心 剑心

          脸的图片 参考我的图片样式

  10. 芬达 芬达

    大佬你好。我是N卡4070S,下的3.0整合包(facefusion3.0.rar),跑视频换脸报错如下,帮忙看看咋回事呢

    cv2.error: OpenCV(4.10.0) D:\a\opencv-python\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp:798: error: (-215:Assertion failed) !_img.empty() in function 'cv::imwrite'

    1. 剑心 剑心

      这明显不是我做的整合包

  11. 糊涂闻芒果 糊涂闻芒果

    [FACEFUSION.CORE] Processing step 1 of 1
    执行完一步之后就没反应了。没有报错, 是哪里设置不对么

  12. 会撒娇就红牛 会撒娇就红牛

    为什么下载不了

    1. 剑心 剑心

      为什么你不睁大眼睛?

      1. 会撒娇就红牛 会撒娇就红牛

        大佬,直接把链接复制到评论吧,小白表示真的不知道怎么下载

        1. 剑心 剑心

          估计你搞错了地方,我这里不是幼儿园 不负责电脑基础知识普及

      2. 会撒娇就红牛 会撒娇就红牛

        我点几个网盘进去,页面加载不了,不知道怎么下载

  13. 无辜等于大炮 无辜等于大炮

    如何下载啊

    1. 剑心 剑心

      你看不到下载地址?

  14. icolor icolor

    本次更新并不是版本更新,是修复了一些之前存在bug

    3*222

  15. 传统有红茶 传统有红茶

    我也来看看

  16. 枫叶光亮 枫叶光亮

    跑完了找不到输出视频,output文件夹是空的,跑了四五次都一样,重启了也这个样,不知道咋搞的

    1. 剑心 剑心

      仔细看教程

  17. 老鼠奋斗 老鼠奋斗

    大佬,遇到这情况是怎么回事,我检查过 onxx 1.18.0 cuda 12.x cudnn 8.x 版本都对的上
    sess.initialize_session(providers, provider_options, disabled_optimizers)
    RuntimeError: D:\a\_work\1\s\onnxruntime\python\onnxruntime_pybind_state.cc:891 onnxruntime::python::CreateExecutionProviderInstance CUDA_PATH is set but CUDA wasnt able to be loaded. Please install the correct version of CUDA andcuDNN as mentioned in the GPU requirements page (https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements), make sure they're in the PATH, and that your GPU is supported.

    1. 剑心 剑心

      cuda11.8+cudnn8.9.7

  18. 棒球个性 棒球个性

    [E:onnxruntime:Default, provider_bridge_ort.cc:1745 onnxruntime::TryGetProviderInfo_CUDA]报错

    1. 汉堡笨笨 汉堡笨笨

      我是2080TI 22G安装最新的显卡驱动和CUDA Toolkit 12.6(https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exe_local),之后运行提示要设置CUDA_PATH,然后在run_cuda.bat里面新增SET CUDA_PATH="%PROGRAMFILES%\NVIDIA GPU Computing Toolkit\CUDA\v12.6"

      1. 汉堡笨笨 汉堡笨笨

        cuda和显卡驱动都按默认安装。如果还不行,试试这个。
        SET CUDA_INSTALL="%PROGRAMFILES%\NVIDIA GPU Computing Toolkit\CUDA"
        FOR /F "DELIMS= " %%I IN ( 'DIR %CUDA_INSTALL% /B ' ) DO SET VERSION=%%I
        SET CUDA_PATH=%CUDA_INSTALL%\%VERSION%
        SET PATH=%CUDA_PATH%;%PYTHON_PATH%;%PYTHON_PATH%\Library\bin;%PYTHON_PATH%\Scripts;%CD%;%PATH%

        1. 悟空满意 悟空满意

          更改临时目录到本程序目录下,参照2.6.1版本修改:把temp_helper.py里面的get_temp_directory_path函数改成如下:
          def get_temp_directory_path(file_path : str) -> str:
          temp_file_name, _ = os.path.splitext(os.path.basename(file_path))
          #base_directory_path = get_base_directory_path()
          current_script_path = os.path.abspath(__file__)
          current_script_dir = os.path.dirname(current_script_path)
          parent_dir = os.path.dirname(current_script_dir)
          base_directory_path = os.path.join(parent_dir, 'tmp')
          return os.path.join(base_directory_path, temp_file_name)

          1. 如意笑枫叶 如意笑枫叶

            Exception in callback _ProactorBasePipeTransport._call_connection_lost(None)
            handle:
            Traceback (most recent call last):
            File "asyncio\events.py", line 80, in _run
            File "asyncio\proactor_events.py", line 165, in _call_connection_lost
            ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host

            运行facefusion经常性随机出现以上错误信息,尝试网络上的几种修改方式,问题一直解决不了,后来尝试把asyncio\windows_events.py里面的

            DefaultEventLoopPolicy = WindowsProactorEventLoopPolicy
            改成
            DefaultEventLoopPolicy = WindowsSelectorEventLoopPolicy
            运行了多次,未再出现错误信息。

            1. 剑心 剑心

              我好像没有遇到这样的错误

          2. mark mark

            这个方法成功了,临时文件名称是 tmp

          3. 剑心 剑心

            这个我不是以前分享过吗?

        2. 剑心 剑心

          你这只是指定cuda和cudnn路径 但是实际上还是如果不按我的提示版本安装还是会报错的

    2. 剑心 剑心

      一定要在本机安装好 cuda11.8+cudnn8.9.7 如果不会安装请去翻下我以前的分享环境搭建

      1. 红牛勤劳 红牛勤劳

        那就是cuda12.5,12.6以上不行?

  19. 王不流行 王不流行

    多谢一直以来的无私奉献。

  20. 保温杯漂亮 保温杯漂亮

    不支持A卡,完。

    1. 剑心 剑心

      A卡运行 run-cpu.bat

      1. 眯眯眼向铅笔 眯眯眼向铅笔

        3.0版本A卡运行后没有dml选项,无法GPU加速…… 看到有收费论坛提供了A卡版本,大神有空再给给瞧瞧为啥不行么?

        1. 剑心 剑心

          在下载的网盘里面 有我之前分享的2.6.1 A卡版

      2. 小海豚糟糕 小海豚糟糕

        试过了,cpu运行非常慢,二十秒的视频得花一个多小时。

        1. 剑心 剑心

          有英伟达显卡就选cuda运行

  21. 香烟奋斗 香烟奋斗

    请问下 为什么给图片换脸的时候 只会在预览有一个模糊的图然后没办法跑啊 是要继续等么

    1. 剑心 剑心

      看看黑色窗口提示什么

  22. 故意迎雨 故意迎雨

    十分感谢分享 强大

  23. 野性向苗条 野性向苗条

    3.0一下子体积大了好多,N卡A卡和一起的?

  24. 英勇笑御姐 英勇笑御姐

    终于等到你的3.0感谢了

  25. 无情保卫火车 无情保卫火车

    3.0更新了,期待LZ更新

  26. 高大方黄豆 高大方黄豆

    重装了三遍,没有运行文件?请问?

    1. 剑心 剑心

      瞪大你的眼睛

  27. 大象优秀 大象优秀

    怎么去掉限制转换512mb的视频

    1. 剑心 剑心

      没有限制

  28. 野性向苗条 野性向苗条

    9月6日的2.6.1版本和之前的有什么分别,一样的话就不重新下载了,100K速度的百度太难受

    1. 剑心 剑心

      如果你能正常运行就别重新下载了

  29. 辛勤和过客 辛勤和过客

    有其它网盘吗

    1. 剑心 剑心

      不会放其他盘了,这个目前有违规风险,经不住各位小伙伴的请求才放出来下载地址,本身已经删除。且用且珍惜吧

  30. 南萧峰 南萧峰

    看不到下载地址啊, 文末只能看到 下载地址可能违规被取消,可私信给下载地址吗?谢谢

  31. 粗犷打心锁 粗犷打心锁

    感想大佬

  32. 蜡烛舒服 蜡烛舒服

    第一个进度条完成后,不动了,是什么问题

  33. 手链结实 手链结实

    感谢感谢感谢

  34. 薯片阔达 薯片阔达

    多谢多谢啊

  35. 成就笑电话 成就笑电话

    感谢感谢

  36. 妩媚闻枫叶 妩媚闻枫叶

    谢谢

  37. 沉默向灰狼 沉默向灰狼

    感谢分享

  38. 俊逸就汽车 俊逸就汽车

    感谢

  39. 高跟鞋俭朴 高跟鞋俭朴

    多谢多谢啊

  40. 指甲油任性 指甲油任性

    感谢

  41. 自行车可靠 自行车可靠

    死神千年血战篇第三季

  42. 明亮演变发带 明亮演变发带

    謝謝分享

  43. 小蜜蜂繁荣 小蜜蜂繁荣

    感谢分享,正需要,学习一下

  44. 谨慎的爆米花 谨慎的爆米花

    良心博主,必须支持!

  45. 短靴耍酷 短靴耍酷

    很大打击阿斗啊啊d

  46. 芹菜自由 芹菜自由

    辛苦大佬,下载试试看

  47. 冬日专一 冬日专一

    感谢 分享

  48. 香菇疯狂 香菇疯狂

    良心博主,必须支持!

  49. 冰淇淋有魅力 冰淇淋有魅力

  50. 水蜜桃精明 水蜜桃精明

    :)