在运行comfyui工作流的时候,如果工作流中用到了insightface节点,经常会在经历了一次节点更新或者是网络情况不好的时候,insightface节点中的antelopev2中的5个模型(1k3d68.onnx、2d106det.onnx、genderage.onnx、glintr100.onnx、scrfd_10g_bnkps.onnx)会被莫名其妙的删除,举个例子,节点“ComfyUI-InstantID”首次运行就会自动下载上述的5个onnx模型,然而在更新节点或者是网络不好无法连接上huggingface网站的时候,本来存在的5个模型会被自动删除掉,但是又无法下载新的模型,导致insightface节点报错!这是由于代码中的模型下载部分存在某些问题导致的!
解决这个问题的方法是修改py文件,将模型下载的逻辑修改为先检测本地是否存在该模型,如果不存在再下载,如果存在则直接使用本地模型文件!
修改前的代码:
def load_insight_face_antelopev2(self, provider): model = FaceAnalysis(name="antelopev2", root=current_directory, providers=[provider + 'ExecutionProvider',]) model.prepare(ctx_id=0, det_size=(640, 640)) return (model,)
修改后的代码:
# 在模型加载之前添加检查和下载的逻辑 def load_insight_face_antelopev2(self, provider): # 检查模型文件是否存在 model_path = os.path.join(current_directory, "antelopev2") if not os.path.exists(model_path): # 模型文件不存在,则进行下载 model = FaceAnalysis(name="antelopev2", root=current_directory, providers=[provider + 'ExecutionProvider',]) model.prepare(ctx_id=0, det_size=(640, 640)) else: # 模型文件存在,则直接加载本地模型 model = FaceAnalysis(name="antelopev2", root=current_directory) model.prepare(ctx_id=0, det_size=(640, 640), all_models=True) return (model,)
原创文章,作者:朋远方,如若转载,请注明出处:https://caovan.com/guanyucomfyuideinsightfacejiedianzhongdeantelopev2moxingjingchangbeizidongshanchudejiejuefangan/.html