winget install -e --id Git.Git
git --version
winget install -e --id Gyan.FFmpeg
添加环境变量:
C:\Program Files\ffmpeg\bin
在 conda 环境中配置 FFmpeg(两种方法):
方法一:单独添加 FFmpeg 路径
# 激活环境
conda activate py310_facefusion
# 添加 FFmpeg 路径到 conda 环境
conda env config vars set PATH="%PATH%;C:\Users\yuuu\AppData\Local\Microsoft\WinGet\Links"
# 重新激活环境使变更生效
conda deactivate
conda activate py310_facefusion
方法二:继承系统 PATH(推荐)
# 激活环境
conda activate py310_facefusion
# 将系统环境变量复制到 conda 环境
conda env config vars set PATH="%PATH%"
# 重新激活环境使变更生效
conda deactivate
conda activate py310_facefusion
验证安装:
# 确保在 conda 环境中
conda activate py310_facefusion
# 验证 FFmpeg
where ffmpeg
ffmpeg -version
winget install -e --id CodecGuide.K-LiteCodecPack.Basic
C:\ProgramData\Anaconda3
conda --version
python --version
# 创建环境时继承系统环境变量
conda create -n py310_facefusion python=3.10 --copy-system-site-packages
如果环境已经创建,可以修改现有环境:
# 激活环境
conda activate py310_facefusion
# 将系统环境变量复制到 conda 环境
conda env config vars set PATH="%PATH%"
# 或者编辑 conda 环境配置文件
# 打开 C:\Users\<用户名>\.conda\envs\py310_facefusion\etc\conda\activate.d\env_vars.bat
# 添加以下内容:
@echo off
set "PATH=%PATH%;C:\Users\yuuu\AppData\Local\Programs\Python\Python310;C:\Users\yuuu\AppData\Local\Programs\Python\Python310\Scripts"
如果只想添加 Python 路径:
conda env config vars set PATH="%PATH%;C:\Users\yuuu\AppData\Local\Programs\Python\Python310;C:\Users\yuuu\AppData\Local\Programs\Python\Python310\Scripts"
# 重新激活环境使变更生效
conda deactivate
conda activate py310_facefusion
验证 Python 是否可用:
where python
python --version
注意:
取消当前环境的 PATH 配置:
# 1. 查看当前环境变量配置
conda env config vars list
# 2. 取消 PATH 变量设置
conda env config vars unset PATH
# 3. 重新激活环境使更改生效
conda deactivate
conda activate py310_facefusion
# 4. 验证环境变量是否已清除
conda env config vars list
如果还有其他配置文件:
# 删除 activate.d 目录下的配置文件
del C:\Users\yuuu\.conda\envs\py310_facefusion\etc\conda\activate.d\env_vars.bat
del C:\Users\yuuu\.conda\envs\py310_facefusion\etc\conda\activate.d\path.bat
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
FFmpeg 未找到:
Conda 命令未找到:
pip 或 conda 下载速度慢:
nvidia-smi
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
conda install -c conda-forge cudnn
pip install tensorrt --extra-index-url https://pypi.nvidia.com
pip install openvino
验证cuda相关的安装.py
:import torch
import sys
def check_cuda():
print(f"Python 版本: {sys.version}")
print(f"PyTorch 版本: {torch.__version__}")
print(f"CUDA 是否可用: {torch.cuda.is_available()}")
if torch.cuda.is_available():
print(f"CUDA 版本: {torch.version.cuda}")
print(f"cuDNN 版本: {torch.backends.cudnn.version()}")
print(f"GPU 设备名称: {torch.cuda.get_device_name(0)}")
print(f"GPU 数量: {torch.cuda.device_count()}")
# 测试 CUDA 计算
x = torch.rand(5, 3)
print("\n测试 CPU 张量:")
print(x)
print("\n测试 GPU 张量:")
if torch.cuda.is_available():
x = x.cuda()
print(x)
else:
print("CUDA 不可用,请检查安装")
if __name__ == "__main__":
check_cuda()
python 验证cuda相关的安装.py
CUDA 版本要求:
内存管理:
CUDA 不可用:
显存不足:
版本不匹配:
mkdir S:\AI_App
cd S:\AI_App
git clone https://github.com/facefusion/facefusion.git
cd facefusion
conda activate py310_facefusion
# 安装 gradio 用于 UI 界面
pip install gradio gradio_rangeslider
# 运行项目的安装脚本
python install.py
# 自动下载所需的模型文件
python facefusion.py force-download
该命令会执行以下操作:
检查 .assets/models/
目录是否存在,不存在则创建
下载以下必需的模型文件:
retinaface_10g.onnx
(人脸定位)scrfd_2.5g.onnx
(人脸检测)yoloface_8n.onnx
(人脸识别)recognition_hybrid.onnx
(人脸特征提取)recognition_dynamic.onnx
(动态特征识别)inswapper_128.onnx
(人脸交换)GFPGANv1.4.pth
(人脸增强)79999_iter.pth
(表情恢复)parsing_parsenet.onnx
(人脸解析)下载过程:
下载源包括:
注意事项:
常见问题处理:
手动下载(如果自动下载太慢):
a. 创建目录结构:
mkdir -p .assets/models
b. 从以下地址下载模型文件:
主要下载源:
GitHub:
Hugging Face:
注意:下载时需要将路径模板中的 {base_name} 替换为 “models”,{file_name} 替换为具体的模型文件名
需要下载的模型文件:
retinaface_10g.onnx
(约 20MB)scrfd_2.5g.onnx
(约 5MB)yoloface_8n.onnx
(约 8MB)recognition_hybrid.onnx
(约 90MB)recognition_dynamic.onnx
(约 45MB)inswapper_128.onnx
(约 1.2GB)GFPGANv1.4.pth
(约 350MB)79999_iter.pth
(约 450MB)parsing_parsenet.onnx
(约 100MB)c. 放置文件:
.assets/models/
目录.assets/
└── models/
├── retinaface_10g.onnx
├── scrfd_2.5g.onnx
├── yoloface_8n.onnx
├── recognition_hybrid.onnx
├── recognition_dynamic.onnx
├── inswapper_128.onnx
├── GFPGANv1.4.pth
├── 79999_iter.pth
└── parsing_parsenet.onnx
d. 验证文件完整性:
# 运行程序会自动检查模型文件
python facefusion.py run
e. 常见问题:
force-download
命令获取最新链接当看到类似 “[FACEFUSION.DOWNLOAD] Validating hash for xxx failed” 的错误时:
# Windows
del .assets\models\alexandra_daddario_224
# 或 Linux/Mac
rm .assets/models/alexandra_daddario_224
重新下载的方法:
a. 使用命令行:
python facefusion.py force-download
b. 或手动下载:
验证步骤:
预防措施:
facefusion.ini
:[general]
# 执行提供程序设置
execution_providers = ['cuda'] # 可选值: ['cpu', 'cuda', 'coreml', 'directml', 'openvino', 'rocm', 'tensorrt']
execution_thread_count = 8 # 范围: 1-32,控制处理线程数
execution_queue_count = 1 # 范围: 1-4,控制任务队列数
[memory]
# 显存管理策略
video_memory_strategy = 'strict' # 可选值: ['strict', 'moderate', 'tolerant']
system_memory_limit = 0 # 范围: 0-128,系统内存限制(GB),0表示不限制
[face_detector]
# 人脸检测器设置
model = 'retinaface' # 可选值: ['many', 'retinaface', 'scrfd', 'yoloface']
size = '640x640' # 检测尺寸,根据模型支持的尺寸选择
score = 0.5 # 范围: 0.0-1.0,检测置信度阈值
[face_selector]
# 人脸选择器设置
mode = 'reference' # 可选值: ['many', 'one', 'reference']
order = 'left-right' # 可选值: ['left-right', 'right-left', 'top-bottom', 'bottom-top', 'small-large', 'large-small', 'best-worst', 'worst-best']
[frame_processor]
# 帧处理器设置
blend = 0.8 # 范围: 0.0-1.0,融合强度
quality = 80 # 范围: 0-100,输出质量
[temp]
# 临时文件设置
format = 'jpg' # 可选值: ['jpg', 'png']
folder = 'temp' # 临时文件夹路径
配置文件说明:
general 部分:
memory 部分:
face_detector 部分:
face_selector 部分:
frame_processor 部分:
temp 部分:
python facefusion.py run
如果遇到错误:
Error launching UI: expected str, bytes or os.PathLike object, not NoneType
[FACEFUSION.CORE] CURL is not installed
解决方法:
# 在 conda 环境中安装 curl
conda install curl
# 或使用 pip 安装 pycurl
pip install pycurl
修复 UI 启动错误:
a. 确保已安装 gradio:
pip install --upgrade gradio gradio_rangeslider
b. 检查项目依赖:
# 重新运行安装脚本
python install.py
# 或手动安装核心依赖
pip install -r requirements.txt
c. 清理临时文件:
# 删除临时文件夹
rm -rf temp/
mkdir temp
验证安装:
# 检查 curl 是否可用
curl --version
# 检查 Python 依赖
pip list | findstr curl
pip list | findstr gradio
# 处理单个文件
python facefusion.py run -s <源图片> -t <目标图片/视频> -o <输出路径>
# 批量处理
python facefusion.py batch-run -s <源目录> -t <目标目录> -o <输出目录>
项目目录权限:
模型文件:
运行环境:
模型下载失败:
依赖安装错误:
启动失败:
人脸检测:支持多种检测器
人脸识别与分析
人脸编辑
python facefusion.py run
# 单文件处理
python facefusion.py run -s <源图片> -t <目标图片/视频> -o <输出路径>
# 批量处理
python facefusion.py batch-run -s <源目录> -t <目标目录> -o <输出目录>
[face_detector]
model = 'retinaface' # 检测模型选择
size = '640x640' # 检测尺寸
score = 0.5 # 置信度阈值
[face_selector]
mode = 'reference' # 选择模式
order = 'left-right' # 处理顺序
[frame_processor]
blend = 0.8 # 融合强度
quality = 80 # 输出质量