Deep-Live-Cam inswapper_128 模型加载失败:现象、定位与完整修复指南
2026/9/16 23:20:41 网站建设 项目流程

Deep-Live-Cam inswapper_128 模型加载失败:现象、定位与完整修复指南

【免费下载链接】Deep-Live-Camreal time face swap and one-click video deepfake with only a single image项目地址: https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam

Deep-Live-Cam 是单图驱动的实时换脸工具,而 inswapper_128 这个 ONNX 模型是整条换脸管线的第一环,绝大多数"启动即失败"都卡在这一步。最常见的根因是 models 目录缺文件或 GPU 执行环境缺 cuDNN 组件。典型现象有三类:控制台报CUDAExecutionProvider not found;状态栏提示Model not found in .../models;显示 Loading face swapper model 后进程退出。本文只处理 inswapper_128 的加载失败,不涉及换脸质量与视频编码参数。

先确定你属于哪种

按报错关键词和界面表现对号入座,再跳到对应小节。

现象可能根因对应小节
控制台报CUDAExecutionProvider not foundonnxruntime-gpu 找不到 CUDA 运行库(cuDNN 缺失或版本不匹配)切换 CPU 提供器验证
状态栏Model not found in .../modelsmodels/ 下两个 inswapper 文件都不存在补全 inswapper_128 模型文件
Failed to load library libcudnn.so没走run.py的预加载逻辑,cuDNN 没被 onnxruntime 感知固定执行提供器链
Error loading face swapper model: ...模型文件损坏或下载截断先跑小节 1 隔离,再重走小节 2

按步修复

1. 用 CPU 执行提供器先排除模型文件

原理:执行提供器(Execution Provider)是 ONNX Runtime 的算子后端。CPU 提供器不依赖任何 CUDA 组件,如果文件本身能加载,问题就锁定在 GPU 环境侧,与模型无关。

python run.py --execution-provider cpu

预期效果:模型完整加载,状态栏出现Face swapper model loaded successfully。实时帧率会降,但管线跑通。

验证:状态栏提示加载成功、换脸出图。此时不必再怀疑模型文件,回到第 3 节修 CUDA 环境。

2. 补全 inswapper_128 模型文件

原理:启动时 modules/processors/frame/face_swapper.py 的 pre_check 会尝试联网自动下载,网络不通时静默失败,models/ 目录保持为空。

ls models/

预期效果:确认目录为空或文件截断(正常大小见 环境核对表)。按 models/instructions.txt 给出的地址把inswapper_128_fp16.onnx(约 275MB)与inswapper_128.onnx(约 550MB)放入models/

验证:两者存其一即可启动;两个都在时程序按 GPU 情况自动选 FP16 或回退 FP32。重新运行,状态栏不再出现Model not found

3. CUDA 在前、CPU 兜底的执行提供器链

原理:ONNX Runtime 按modules/globals.pyexecution_providers列表的顺序执行,第一个提供器跑不动的算子自动落到下一个,因此 GPU 链路失效时模型依然能加载。

前提是先确认你是用python run.py启动的——该文件内置了 cuDNN 的预加载逻辑(Windows 注册 DLL 目录、Linux 用ctypes预加载 venv 内 wheel 自带的库)。直接python -m modules.core启动会漏掉这一步。无界面场景可在modules/globals.py固定回退链:

execution_providers = ["CUDAExecutionProvider", "CPUExecutionProvider"]

预期效果:加载不再失败。CUDA 确实可用时 GPU 推理;不可用时所有算子落到 CPU,加载成功但性能等同纯 CPU。

验证:状态栏显示加载成功;如果控制台出现CUDA graph init failed, using standard session,这不是加载失败,程序已自动回退标准会话,忽略即可。

环境核对表:inswapper 模型文件与环境核对清单

检查项期望值不满足时怎么办
Python 版本3.11–3.14(README 推荐 3.14)用匹配版本重建 venv
onnxruntime-gpu 版本1.26.0(requirements.txt 锁定)pip install -r requirements.txt
CUDA 环境CUDA 12.x,nvidia-smi可见显卡修驱动,或改用 cpu 提供器
models/ 目录存在且可写(首次启动自动创建)换有权限的用户运行,报permission即为此因
inswapper_128_fp16.onnx存在,约 275MB按 models/instructions.txt 下载
inswapper_128.onnx存在,约 550MB(二者存其一即可)同上
磁盘剩余空间models/ 所在盘 ≥5GB清理磁盘或换盘
onnxruntime 可用提供器列表非空且含目标提供器重装对应 onnxruntime 变体
execution_providers 当前值非空,且每项都在可用列表内重新传--execution-provider参数

还是不通?

收集以下三项,再去项目官方 issues 页搜相同报错特征的先例:

  1. 完整控制台输出(从启动到报错,不要截断)
  2. import onnxruntime; print(onnxruntime.__version__, onnxruntime.get_available_providers())的输出
  3. 你传入的--execution-provider值或modules/globals.pyexecution_providers的当前值

高频报错速查:

报错关键词一句话修复
CUDAExecutionProvider not found重装 onnxruntime-gpu==1.26.0,仍失败则传--execution-provider cpu
Model not found in .../models下载 inswapper_128.onnx 放入 models/
Failed to load library libcudnn.so改用python run.py启动,不要绕过其预加载逻辑
Failed to create directory ... permission换有权限的用户运行或给 models/ 授权
Error loading face swapper model重新下载模型,截断文件需整包重下

稳定之后

  • GTX 16xx 系显卡跑 FP16 会出 NaN,遇到黑脸或数值异常时删掉 fp16 文件强制走 FP32。
  • 怀疑模型损坏时做完整性校验:python -c "import onnx; onnx.checker.check_model('models/inswapper_128_fp16.onnx')"
  • 批处理大小由 modules/processors/frame/core.py 按帧数与线程数自动推导,没有手工参数;视频处理内存吃紧时调低--execution-threads间接缩小批。

【免费下载链接】Deep-Live-Camreal time face swap and one-click video deepfake with only a single image项目地址: https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询