ComfyUI reactor 换脸插件执行报错

背景说明

  1. 已下载安装好comfyui-reactor-node插件到comfyui中。
  2. 安装的依赖模块onnxruntime是onnxruntime-gpu的版本。

执行换脸插件报错信息

Traceback (most recent call last):
  File "E:\AI\study\ComfyUI\execution.py", line 151, in recursive_execute
    output_data, output_ui = get_output_data(obj, input_data_all)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\AI\study\ComfyUI\execution.py", line 81, in get_output_data
    return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\AI\study\ComfyUI\execution.py", line 74, in map_node_over_list
    results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\AI\study\ComfyUI\custom_nodes\comfyui-reactor-node\nodes.py", line 244, in execute
    script.process(
  File "E:\AI\study\ComfyUI\custom_nodes\comfyui-reactor-node\scripts\reactor_faceswap.py", line 86, in process
    result = swap_face(
             ^^^^^^^^^^
  File "E:\AI\study\ComfyUI\custom_nodes\comfyui-reactor-node\scripts\reactor_swapper.py", line 199, in swap_face
    source_faces = analyze_faces(source_img)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\AI\study\ComfyUI\custom_nodes\comfyui-reactor-node\scripts\reactor_swapper.py", line 118, in analyze_faces
    face_analyser = copy.deepcopy(getAnalysisModel())
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\ProgramData\anaconda3\envs\comfy\Lib\copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\ProgramData\anaconda3\envs\comfy\Lib\copy.py", line 271, in _reconstruct
    state = deepcopy(state, memo)
            ^^^^^^^^^^^^^^^^^^^^^
  File "E:\ProgramData\anaconda3\envs\comfy\Lib\copy.py", line 146, in deepcopy
    y = copier(x, memo)
        ^^^^^^^^^^^^^^^
  File "E:\ProgramData\anaconda3\envs\comfy\Lib\copy.py", line 231, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
                             ^^^^^^^^^^^^^^^^^^^^^
  File "E:\ProgramData\anaconda3\envs\comfy\Lib\copy.py", line 146, in deepcopy
    y = copier(x, memo)
        ^^^^^^^^^^^^^^^
  File "E:\ProgramData\anaconda3\envs\comfy\Lib\copy.py", line 231, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
                             ^^^^^^^^^^^^^^^^^^^^^
  File "E:\ProgramData\anaconda3\envs\comfy\Lib\copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\ProgramData\anaconda3\envs\comfy\Lib\copy.py", line 271, in _reconstruct
    state = deepcopy(state, memo)
            ^^^^^^^^^^^^^^^^^^^^^
  File "E:\ProgramData\anaconda3\envs\comfy\Lib\copy.py", line 146, in deepcopy
    y = copier(x, memo)
        ^^^^^^^^^^^^^^^
  File "E:\ProgramData\anaconda3\envs\comfy\Lib\copy.py", line 231, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
                             ^^^^^^^^^^^^^^^^^^^^^
  File "E:\ProgramData\anaconda3\envs\comfy\Lib\copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\ProgramData\anaconda3\envs\comfy\Lib\copy.py", line 273, in _reconstruct
    y.__setstate__(state)
  File "E:\ProgramData\anaconda3\envs\comfy\Lib\site-packages\insightface\model_zoo\model_zoo.py", line 33, in __setstate__
    self.__init__(model_path)
  File "E:\ProgramData\anaconda3\envs\comfy\Lib\site-packages\insightface\model_zoo\model_zoo.py", line 25, in __init__
    super().__init__(model_path, **kwargs)
  File "E:\ProgramData\anaconda3\envs\comfy\Lib\site-packages\onnxruntime\capi\onnxruntime_inference_collection.py", line 432, in __init__
    raise e
  File "E:\ProgramData\anaconda3\envs\comfy\Lib\site-packages\onnxruntime\capi\onnxruntime_inference_collection.py", line 419, in __init__
    self._create_inference_session(providers, provider_options, disabled_optimizers)
  File "E:\ProgramData\anaconda3\envs\comfy\Lib\site-packages\onnxruntime\capi\onnxruntime_inference_collection.py", line 451, in _create_inference_session
    self.disable_fallback()
ValueError: This ORT build has ['TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider'] enabled. Since ORT 1.9, you are required to explicitly set the providers parameter when instantiating InferenceSession. For example, onnxruntime.InferenceSession(..., providers=['TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider'], ...)

解决方式

  1. 打开报错目录对应的onnxruntime_inference_collection.py文件。
  2. 定位到451行,做一下修改
        providers=['CUDAExecutionProvider', 'CPUExecutionProvider'] #新增此行
        if not providers and len(available_providers) > 1:
            self.disable_fallback()
            raise ValueError(
                f"This ORT build has {available_providers} enabled. "
                "Since ORT 1.9, you are required to explicitly set "
                "the providers parameter when instantiating InferenceSession. For example, "
                f"onnxruntime.InferenceSession(..., providers={available_providers}, ...)"
            )
    
  1. 重启comfyui,执行换脸就不再报错。
<think>好的,我现在需要帮助用户解决ComfyUIReActor节点由于NSFW检测模型加载失败的问题,特别是关于vit-base-nsfw-detector模型中pytorch_model.bin缺失的错误。首先,我得先理解用户的问题是什么。 用户提到在运行ReActor节点时,出现了NSFW检测模型加载失败的错误,具体是pytorch_model.bin文件缺失。根据用户提供的引用信息,模型需要下载到特定的目录下。可能的原因有几个:模型文件没有正确下载,存放路径错误,或者文件损坏。另外,用户还提到可能没有下载ONNX文件,但之前没出错,但这次出现了问题。 首先,我需要确认模型的正确下载路径。根据引用[1],模型应该放在models\nsfw_detector\vit-base-nsfw-detector目录下。用户可能没有创建这个深层目录,或者文件放错了位置。这时候需要检查目录结构是否正确,确保pytorch_model.bin和其他相关文件都在该目录中。 接下来,用户可能需要重新下载模型文件,特别是pytorch_model.bin。引用[1]中的链接是Hugging Face的地址,可能需要指导用户如何正确下载所有必需的文件,而不仅仅是部分。此外,要确保下载的文件没有损坏,可以通过校验哈希值或者重新下载来解决。 另外,引用[2]和[3]提到了其他模型如inswapper_128.onnx的下载和存放位置,虽然这些可能不是直接导致当前问题的原因,但需要确认是否所有相关模型都已正确安装,避免其他潜在问题。例如,用户可能在安装ReActor节点时没有正确执行install.py,导致某些依赖模型未下载,但根据引用[3],用户手动下载并放置模型可能更可靠。 另外,权限问题也可能导致模型加载失败。用户需要检查ComfyUI目录的读写权限,确保程序有权限访问这些文件。同时,文件路径长度限制在Windows系统中有时会导致问题,尤其是深层目录,可能需要缩短路径或移动目录。 还有,用户可能使用了错误的模型版本,比如下载了ONNX格式的模型而不是PyTorch的bin文件。需要确认下载的模型文件是否与ReActor节点要求的格式一致。此外,检查ComfyUIReActor插件的版本是否兼容,过时的版本可能导致模型加载问题,建议更新到最新版本。 如果以上步骤都确认无误,但问题仍然存在,可能需要查看详细的错误日志,确定具体的失败原因。用户可以通过命令行运行ComfyUI,查看加载模型时的具体报错信息,从而进一步排查问题。 最后,建议用户在社区或GitHub上搜索类似问题,看看是否有其他用户遇到并解决了相同的问题,或者直接向插件开发者提交Issue,提供详细的错误信息和日志,以便获得更针对性的帮助。</think>### ComfyUI Reactor节点NSFW模型加载失败解决方案 --- #### **错误原因分析** 1. **模型文件未正确下载或路径错误** NSFW检测模型`vit-base-nsfw-detector`需下载`pytorch_model.bin`等文件,并严格存放至`models\nsfw_detector\vit-base-nsfw-detector`目录[^1]。 - 若路径层级缺失或文件放错位置,会导致加载失败。 - 例如,Windows系统可能因路径过长或特殊字符引发问题。 2. **ONNX模型依赖问题** 用户反馈未下载ONNX文件时未报错,但NSFW检测需要完整的PyTorch模型文件。需确认`pytorch_model.bin`和`config.json`均存在。 --- #### **逐步解决方案** 1. **确认模型文件下载与存放路径** - 访问Hugging Face模型仓库: [vit-base-nsfw-detector](https://huggingface.co/AdamCodd/vit-base-nsfw-detector/tree/main) 下载以下文件: ``` pytorch_model.bin config.json tokenizer.json vocab.txt ``` - 存放路径: ``` ComfyUI根目录/models/nsfw_detector/vit-base-nsfw-detector/ ``` - **验证目录结构**: ```plaintext models └── nsfw_detector └── vit-base-nsfw-detector ├── pytorch_model.bin ├── config.json ├── tokenizer.json └── vocab.txt ``` 2. **修复文件权限与路径问题** - **Windows系统**: 缩短路径长度(如将`ComfyUI`放在磁盘根目录),或启用长路径支持。 - **Linux/macOS**: 使用`chmod`命令赋予目录读写权限: ```bash chmod -R 755 ComfyUI/models/nsfw_detector ``` 3. **重新安装ReActor节点依赖** - 进入ReActor插件目录,执行安装脚本: ```bash cd ComfyUI/custom_nodes/comfyui-reactor-node python install.py ``` - 若安装过程中断,需手动下载`inswapper_128.onnx`[^2]并放置到: ``` ComfyUI/customer_nodes/facerestore_models/ ``` 4. **检查日志定位具体错误** - 通过命令行启动ComfyUI,观察加载模型时的报错信息: ```bash python main.py ``` - 若提示`FileNotFoundError`,需核对路径;若提示版本冲突,需更新PyTorch或插件。 --- #### **附加优化建议** - **使用镜像站加速下载**: 替`https://huggingface.co`为`https://hf-mirror.com`,例如: ```plaintext https://hf-mirror.com/AdamCodd/vit-base-nsfw-detector/tree/main ``` - **验证文件完整性**: 对比文件哈希值(如Hugging Face页面的`sha256`值)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值