Deep-Live-Cam inswapper_128 ONNX 模型加载失败:3 种报错的排查,一次搞定
2026/9/16 11:13:44 网站建设 项目流程

Deep-Live-Cam inswapper_128 ONNX 模型加载失败:3 种报错的排查,一次搞定

【免费下载链接】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 模型,加载环节卡住时,问题九成集中在三处。你大概率也卡在这三处,咱们一个个过。本文只解决 ONNX 模型加载失败,不谈换脸效果和编码参数。

🔍 症状分诊

先对号入座,三种形态:CUDAExecutionProvider not foundModel not found in .../modelsLoading face swapper model之后进程直接退出。

逐层排障

切到 CPU 执行提供器,先验证模型文件

现象:控制台抛CUDAExecutionProvider not found,会话建不起来,模型加载直接失败。

根因:几乎都是 onnxruntime-gpu 缺 CUDA 运行库组件(cuDNN 没装、版本对不上),modules/processors/frame/face_swapper.py 创建会话时拿到的提供器根本跑不动;模型文件本身通常是无辜的。

操作:不动任何文件,换一个确定可用的提供器绕开会话创建:

python run.py --execution-provider cpu

验证:状态栏出现Face swapper model loaded successfully.,实时帧率会降但管线跑通。CPU 能加载而 CUDA 不能,问题就锁定到环境侧,之后单独补 cuDNN,不必怀疑模型文件。

补齐 models 目录下的 inswapper 文件

现象:状态栏提示Model not found in .../models

根因:pre_start检查要求inswapper_128_fp16.onnx(约 275MB)与inswapper_128.onnx(约 550MB)至少存在其一;pre_check虽然会经 modules/model_downloader.py 尝试自动下载,但网络不通时下载失败,目录保持为空。

操作:先看目录现状:

ls models/

确认为空或文件截断后,按 models/instructions.txt 给出的地址下载对应文件放入models/

验证:重启后检查通过;两个文件都在时,get_face_swapper会在 torch 能感知 CUDA 且 fp16 文件存在时自动选 FP16,否则回退 FP32。

锁定执行提供器回退链顺序

现象:状态栏停在Loading face swapper model ...后进程退出,或者报Failed to load library libcudnn.soError loading face swapper model

根因:Linux 下 cuDNN 的预加载逻辑内置在run.py里(用 ctypes 预载 venv 内的 nvidia 运行库),绕过它直接python -m modules.core启动,onnxruntime 就感知不到 cuDNN。

操作:坚持用python run.py启动,别绕过其预加载逻辑;无界面场景还可以直接固定回退链:

execution_providers = ["CUDAExecutionProvider", "CPUExecutionProvider"]

验证:ONNX Runtime 按列表顺序执行,第一个提供器跑不动的算子自动落到下一个;CUDA 确实不可用时所有子图在 CPU 执行,加载不再失败,性能等同纯 CPU。

🧰 跑之前花两分钟确认的环境基线

Python 版本:最低 3.11(onnxruntime 已放弃 3.10),README 推荐 3.14。多版本共存时确认python指向正确解释器,不匹配就重建 venv。

onnxruntime 版本:requirements.txt 在非 macOS 平台锁定onnxruntime-gpu==1.26.0,直接pip install -r requirements.txt对齐,别手动装别的版本。

CUDA 环境:nvidia-smi能看到显卡、CUDA 12.x;没有就先走 cpu 提供器,别急着修驱动。

models 目录权限:首次启动会自动创建,但运行用户对所在分区必须可写,否则pre_check直接报Failed to create directory ... permission错误。

inswapper 文件:两个文件至少存其一,完整大小分别约 275MB 与 550MB;差几个字节基本就是下载截断。

磁盘剩余空间:模型加处理时的临时帧,给models/所在分区留 5GB 以上。

可用提供器列表:onnxruntime.get_available_providers()返回值非空,且你想用的提供器在列表里;execution_providers里每一项都得是列表内成员,对不上就重传--execution-provider参数。

⚙️ 加载稳定之后的调优旋钮

  • FP16/FP32 自动选择:get_face_swapper在 torch 能感知 CUDA 且 fp16 文件存在时选 FP16,否则回退 FP32;16xx 系显卡 FP16 会出 NaN,老卡留意型号。
  • 批处理大小:modules/processors/frame/core.py按帧数与线程数自动推导 batch_size,没有手工参数;内存吃紧时调低--execution-threads--max-memory,间接缩小批次。
  • 日志级别:modules.globals.log_level透传给 ffmpeg,默认 error;切 debug 后处理帧时输出变啰嗦,排查完记得改回去。
  • 模型完整性校验:怀疑文件损坏时,直接跑onnx.checker.check_model(onnx.load("models/inswapper_128_fp16.onnx")),无异常输出即通过,onnx 1.22.0 已随 requirements 装好。

仍然卡住?

把完整控制台输出和onnxruntime.get_available_providers()的返回值一起收集,去项目官方 issues 页找相同报错特征的先例。顺带说明:CUDA graph init failed, using standard session不是加载失败,它只表示 CUDA 图不可用、已自动回退标准会话,忽略即可。

【免费下载链接】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),仅供参考

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

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

立即咨询