FaceFusion 3.2.0 — 免费AI换脸工具初体验

‌FaceFusion‌是一款功能强大的AI换脸软件,支持图片、视频和直播的换脸功能,其换脸效果真实、自然。FaceFusion不仅支持N卡处理程序(如Azure),还提供了CPU处理模式,适合各种硬件配置的用户使用‌。

功能特点:
  1. ‌多平台兼容‌:支持NVIDIA和AMD等主流显卡平台,满足不同用户的硬件需求‌。
  2. ‌多种处理模式‌:提供人脸替换、人脸高清修复和背景高清修复等多种策略,每种策略下包含多个模型可自由切换‌。
  3. ‌自定义设置‌:用户可以自定义执行线程、执行队列、最大内存和输出路径,电脑配置好的情况下可以适当调大这些参数‌。
  4. ‌预览功能‌:提供预览功能,可以自由选择换脸对象和多人换脸,单人换脸通过方位选择人脸、年龄选择人脸、以及性别选择人脸‌。
  5. ‌唇形同步‌:引入wave2lip处理器,同步口型动作,使视频更加自然‌。
  6. ‌面部对齐改进‌:通过68比5的地标变换,提高面部对齐的精确度‌。
  7. ‌新模型支持‌:增加uniface_256模型,提供更高质量的换脸选项;集成yoloface作为默认的人脸检测器模型,提升检测效率‌。

换脸这个东西,起之前也尝试过faceswap,然而,这个东西使用起来的确麻烦,需要提供的素材数量比较多,训练过程比较繁琐,并且最终的效果在样本数量不够大的时候就会发现实际效果一般:

让自己变成AV的主角【faceswap】

当然,图片换脸目前腾讯元宝提供了免费的传图换脸的功能,整体效果还是挺不错的。下面的是基于腾讯元宝来实现的:

不过,对于视频换脸的免费工具(手机上可用的),目前我还没发现,前端时间看到这个东西,于是尝试了一下。网上有个facefusion2.6.1压缩包版本,实际下载安装后,效果一般,由于缺少文件会导致无法运行,如果要使用的话,复制一个png文件,放到facefusion2.6.1\dependency\res目录下,命名为main.png即可。在运行过程中会显示这个图片。

之前还下载了一个DeepFaceLab_NVIDIA_RTX3000_series,这个东西要用比较麻烦的一点在于,只能靠命令一条一条的执行,看着目录下的文件就感觉头大了。

最终还是决定尝试下FaceFusion的最新版本,安装可以参考这个链接:Installation | FaceFusion

最简单方法,访问这个链接购买安装包:Windows Installer 20美元,解决了后面全部的问题。如果不想花20,那么继续往下看。

具体的步骤简单概述,以win11为准:

1.安装git conda ffmpeg

GIT
winget install -e --id Git.Git
Conda
winget install -e --id Anaconda.Miniconda3 --override "/AddToPath=1"
FFmpeg
winget install -e --id Gyan.FFmpeg

conda安装之后配置环境路径,添加到path下:

重启powershell继续后面的操作。

2.准备conda环境:

Initialize conda for your terminal:
conda init --all
Create the environment:
conda create --name facefusion python=3.12 pip=25.0
Activate the environment:
conda activate facefusion

3.安装gpu支持,我只有conda:

conda install conda-forge::cuda-runtime=12.8.1 conda-forge::cudnn=9.8.0.87

4.下载代码

git clone https://gitee.com/facefusion/facefusion
cd facefusion

5.安装(cuda)

python install.py --onnxruntime cuda

6.重新激活环境:

conda deactivate
conda activate facefusion

7.运行系统:

python facefusion.py run --open-browser

启动之后会自动下载各种特征文件,如果下载不动就多试几次,或者尝试挂个全局代理

现在就可以尝试换脸了:

按图选择模块进行换脸,此时就完成之后就可以下载了:

实际效果:

另外一个视频520AM:

实际效果就是这样的,不过安装的时候需要注意用户名路径不要存在中文。另外,这个东西貌似处理a片有问题,会报下面的错误,感觉还是视频文件问题,谁知道怎么解决的还望不吝赐教:

Traceback (most recent call last):
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\gradio\queueing.py", line 625, in process_events
    response = await route_utils.call_process_api(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\gradio\route_utils.py", line 322, in call_process_api
    output = await app.get_blocks().process_api(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\gradio\blocks.py", line 2146, in process_api
    result = await self.call_function(
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\gradio\blocks.py", line 1664, in call_function
    prediction = await anyio.to_thread.run_sync(  # type: ignore
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\anyio\to_thread.py", line 56, in run_sync
    return await get_async_backend().run_sync_in_worker_thread(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\anyio\_backends\_asyncio.py", line 2470, in run_sync_in_worker_thread
    return await future
           ^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\anyio\_backends\_asyncio.py", line 967, in run
    result = context.run(func, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\gradio\utils.py", line 884, in wrapper
    response = f(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\uis\components\job_runner.py", line 91, in run
    if job_id and job_runner.run_job(job_id, process_step):
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\jobs\job_runner.py", line 11, in run_job
    if run_steps(job_id, process_step) and finalize_steps(job_id):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\jobs\job_runner.py", line 72, in run_steps
    if not run_step(job_id, index, step, process_step):
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\jobs\job_runner.py", line 58, in run_step
    if job_manager.set_step_status(job_id, step_index, 'started') and process_step(job_id, step_index, step_args):
                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\core.py", line 323, in process_step
    error_code = conditional_process()
                 ^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\core.py", line 340, in conditional_process
    return process_video(start_time)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\core.py", line 418, in process_video
    if analyse_video(state_manager.get_item('target_path'), trim_frame_start, trim_frame_end):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\content_analyser.py", line 102, in analyse_video
    if analyse_frame(vision_frame):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\content_analyser.py", line 77, in analyse_frame
    nsfw_scores = detect_nsfw(vision_frame)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\content_analyser.py", line 115, in detect_nsfw
    temp_vision_frame = fit_frame(vision_frame, model_size)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\vision.py", line 243, in fit_frame
    height, width = vision_frame.shape[:2]
                    ^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'shape'

 

系统默认缓存目录为:

C:\Users\obaby\AppData\Local\Temp\facefusion

要修改这个路径,修改 facefusion.ini文件:

[paths]
temp_path = ./temp
jobs_path =
source_paths =
target_path =
output_path =

修改完重启即可:

2.6.1版本安装包:

https://www.123pan.com/s/5DsaTd-5YGc.html

链接:https://pan.quark.cn/s/11bffd2d5993
提取码:ankQ

☆版权☆

* 网站名称:obaby@mars
* 网址:https://lang.ma/
* 个性:https://oba.by/
* 本文标题: 《FaceFusion 3.2.0 — 免费AI换脸工具初体验》
* 本文链接:https://lang.ma/2025/05/20613
* 短链接:https://oba.by/?p=20613
* 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。


You may also like

15 comments

  1. Level 2
    Google Chrome 132 Google Chrome 132 Windows 11 Windows 11 cn中国–台湾 中华电信(HiNet)数据中心

    感觉容易被人利用来给A片换脸然后传黄谣

    1. 公主 Queen 
      Google Chrome 134 Google Chrome 134 Windows 10 Windows 10 cn中国 中国联通

      现在这个东西,主要也是用来干这个的。
      自己先换了,把这条路堵死,啊哈哈哈

  2.   Level 7
    Google Chrome 135 Google Chrome 135 Mac OS X 10.15 Mac OS X 10.15 cn中国–浙江–杭州 联通

    不过现在换脸片和有码片我都直接叉掉了。索然无味。

  3.  Level 6
    WebView 4 WebView 4 Android 15 Android 15 cn中国–广东–珠海 电信

    你身材变得这么好啊,说是真的也看不出来😂😂😂

  4.  Level 3
    Safari 18 Safari 18 Mac OS X 10.15 Mac OS X 10.15 cn中国–上海–上海–闵行区 电信

    原以为下载了就能马上用,这个看起来还要专门配置,也挺麻烦的哈。

  5.  Level 5
    Google Chrome 138 Google Chrome 138 Windows 10 Windows 10 cn中国–福建–厦门 移动

    所以你为啥知道处理A会出现问题,哈哈哈哈哈

    这个20年的时候用过,当时是看湾湾新闻,有位大侠把英文蔡的脸换到一段很精彩的视频上,哈哈,然后他被抓走了,上了TVBS的新闻,哈哈,我就试弄过,当时跑坏了一台老电脑,后来换到拯救者Y9000上跑,10分钟的视频要半个多小时才能出片。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注