前提条件

  • Windows 10/11
  • NVIDIA显卡(系统变量中需要有cuda,否则只能使用cpu版本)
  • 科学上网环境(用于加速下载)

1. 安装基础软件

打开管理员权限的命令行窗口,依次执行:

# 安装FFmpeg
winget install -e --id Gyan.FFmpeg

# 安装Miniconda
winget install -e --id Anaconda.Miniconda3 --override "/AddToPath=1"

# 安装编解码器
winget install -e --id CodecGuide.K-LiteCodecPack.Basic

2. 配置Conda环境和下载源码

关闭之前的命令行窗口,打开新的命令行窗口:

# 创建conda环境
conda create -n facefusion python=3.10

# 激活环境
conda activate facefusion

# 克隆项目(选择合适的目录)
cd D:\facefusion
git clone https://github.com/facefusion/facefusion.git
cd facefusion

3. 设置代理并安装依赖

# 设置代理(根据实际情况修改端口)
set HTTP_PROXY=http://127.0.0.1:2081
set HTTPS_PROXY=http://127.0.0.1:2081

# 安装CUDA版本
python install.py --onnxruntime cuda

4. 安装对应版本的cuDNN

  1. 查看当前onnxruntime版本:
pip list | findstr onnxruntime
  1. ONNX Runtime CUDA要求文档 中查找对应的cuDNN版本要求

  2. 安装对应版本的cuDNN:

# 以下是示例,版本号需要根据实际情况调整
conda install -c conda-forge cudnn=9.3.0.75
  1. 重新运行安装命令:
python install.py --onnxruntime cuda

5. 下载模型文件

保持代理开启状态:

python facefusion.py run

等待所有模型文件下载完成,下载完成后可能会报错,这里的报错的原因是代理没有关闭。

6. 正式运行

  1. 关闭代理软件并且清除环境:
set HTTP_PROXY=
set HTTPS_PROXY=
  1. 重新运行程序:
python facefusion.py run
  1. 在指定端口和ip运行程序: 修改facefusion/uis/layouts/default.py(run函数在文件末尾位置)
def run(ui : gradio.Blocks) -> None:
    ui.launch(
        favicon_path = 'facefusion.ico',
        inbrowser = state_manager.get_item('open_browser'),
        server_name = '0.0.0.0',    # 添加这行
        server_port = 7860,         # 添加这行
        share = False               # 可选,确保不会使用gradio的公共链接
    )

然后再运行程序

python facefusion.py run

WebUI使用说明

  • SOURCE:放置源头像(你想替换成谁的脸)
  • TARGET:放置目标图片/视频(要被替换的人的图片/视频)
  • 确保EXECUTION PROVIDERS中选择了CUDA
  • 第一次使用建议只开启face_swapper功能
  • 推荐先用简单的正面照片测试效果