Gourieff / comfyui-reactor-node

Fast and Simple Face Swap Extension Node for ComfyUI
GNU General Public License v3.0
1.09k stars 114 forks source link

Crash during face swap #230

Closed QkiZMR closed 2 months ago

QkiZMR commented 4 months ago

First, confirm

What happened?

I created a simple workflow with face swap using a face model and source image. Reactor throw the following exception:

got prompt
[ReActor] 21:15:47 - STATUS - Building Face Model...
[ReActor] 21:15:51 - STATUS - --Done!--
Face model has been saved to '/home/qkiz/AI/ComfyUI/models/reactor/faces/def-comfy.safetensors'
Prompt executed in 5.04 seconds
got prompt
[ReActor] 21:17:39 - STATUS - Working: source face index [0], target face index [0]
[ReActor] 21:17:39 - STATUS - Using Loaded Source Face Model...
[ReActor] 21:17:39 - STATUS - Using Hashed Target Face(s) Model...
[ReActor] 21:17:39 - STATUS - Target Face 0: Detected Gender -F-
[ReActor] 21:17:39 - STATUS - OK - Detected Gender matches Condition
[ReActor] 21:17:39 - STATUS - Swapping...
ERROR:root:!!! Exception during processing !!!
ERROR:root:Traceback (most recent call last):
  File "/home/qkiz/AI/ComfyUI/execution.py", line 152, in recursive_execute
    output_data, output_ui = get_output_data(obj, input_data_all)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/qkiz/AI/ComfyUI/execution.py", line 82, in get_output_data
    return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/qkiz/AI/ComfyUI/execution.py", line 75, in map_node_over_list
    results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/qkiz/AI/ComfyUI/custom_nodes/comfyui-reactor-node/nodes.py", line 234, in execute
    script.process(
  File "/home/qkiz/AI/ComfyUI/custom_nodes/comfyui-reactor-node/scripts/reactor_faceswap.py", line 81, in process
    result = swap_face(
             ^^^^^^^^^^
  File "/home/qkiz/AI/ComfyUI/custom_nodes/comfyui-reactor-node/scripts/reactor_swapper.py", line 258, in swap_face
    result = face_swapper.get(result, target_face, source_face)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/qkiz/AI/ComfyUI/venv/lib/python3.11/site-packages/insightface/model_zoo/inswapper.py", line 53, in get
    pred = self.session.run(self.output_names, {self.input_names[0]: blob, self.input_names[1]: latent})[0]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/qkiz/AI/ComfyUI/venv/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 220, in run
    return self._sess.run(output_names, input_feed, run_options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
onnxruntime.capi.onnxruntime_pybind11_state.Fail: [ONNXRuntimeError] : 1 : FAIL : /onnxruntime_src/onnxruntime/core/providers/cuda/cuda_call.cc:121 std::conditional_t<THRW, void, onnxruntime::common::Status> onnxruntime::CudaCall(ERRTYPE, const char*, const char*, ERRTYPE, const char*, const char*, int) [with ERRTYPE = cublasStatus_t; bool THRW = true; std::conditional_t<THRW, void, onnxruntime::common::Status> = void] /onnxruntime_src/onnxruntime/core/providers/cuda/cuda_call.cc:114 std::conditional_t<THRW, void, onnxruntime::common::Status> onnxruntime::CudaCall(ERRTYPE, const char*, const char*, ERRTYPE, const char*, const char*, int) [with ERRTYPE = cublasStatus_t; bool THRW = true; std::conditional_t<THRW, void, onnxruntime::common::Status> = void] CUBLAS failure 3: CUBLAS_STATUS_ALLOC_FAILED ; GPU=0 ; hostname=drag0n ; file=/onnxruntime_src/onnxruntime/core/providers/cuda/cuda_stream_handle.cc ; line=73 ; expr=cublasCreate(&cublas_handle_); 

Prompt executed in 0.34 seconds

Steps to reproduce the problem

Your workflow faceswap.json

Sysinfo

OS: Ubuntu Linux 23.10 Browser: Firefox 123 GPU: NVidia 840m other nodes:

ComfyUI-Embedding_Picker
ComfyUI-Impact-Pack
ComfyUI-Manager
ComfyUI-Openpose-Editor-Plus
comfyui-reactor-node
comfyui-styles-all

Relevant console log

got prompt
[ReActor] 21:15:47 - STATUS - Building Face Model...
[ReActor] 21:15:51 - STATUS - --Done!--
Face model has been saved to '/home/qkiz/AI/ComfyUI/models/reactor/faces/def-comfy.safetensors'
Prompt executed in 5.04 seconds
got prompt
[ReActor] 21:17:39 - STATUS - Working: source face index [0], target face index [0]
[ReActor] 21:17:39 - STATUS - Using Loaded Source Face Model...
[ReActor] 21:17:39 - STATUS - Using Hashed Target Face(s) Model...
[ReActor] 21:17:39 - STATUS - Target Face 0: Detected Gender -F-
[ReActor] 21:17:39 - STATUS - OK - Detected Gender matches Condition
[ReActor] 21:17:39 - STATUS - Swapping...
ERROR:root:!!! Exception during processing !!!
ERROR:root:Traceback (most recent call last):
  File "/home/qkiz/AI/ComfyUI/execution.py", line 152, in recursive_execute
    output_data, output_ui = get_output_data(obj, input_data_all)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/qkiz/AI/ComfyUI/execution.py", line 82, in get_output_data
    return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/qkiz/AI/ComfyUI/execution.py", line 75, in map_node_over_list
    results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/qkiz/AI/ComfyUI/custom_nodes/comfyui-reactor-node/nodes.py", line 234, in execute
    script.process(
  File "/home/qkiz/AI/ComfyUI/custom_nodes/comfyui-reactor-node/scripts/reactor_faceswap.py", line 81, in process
    result = swap_face(
             ^^^^^^^^^^
  File "/home/qkiz/AI/ComfyUI/custom_nodes/comfyui-reactor-node/scripts/reactor_swapper.py", line 258, in swap_face
    result = face_swapper.get(result, target_face, source_face)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/qkiz/AI/ComfyUI/venv/lib/python3.11/site-packages/insightface/model_zoo/inswapper.py", line 53, in get
    pred = self.session.run(self.output_names, {self.input_names[0]: blob, self.input_names[1]: latent})[0]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/qkiz/AI/ComfyUI/venv/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 220, in run
    return self._sess.run(output_names, input_feed, run_options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
onnxruntime.capi.onnxruntime_pybind11_state.Fail: [ONNXRuntimeError] : 1 : FAIL : /onnxruntime_src/onnxruntime/core/providers/cuda/cuda_call.cc:121 std::conditional_t<THRW, void, onnxruntime::common::Status> onnxruntime::CudaCall(ERRTYPE, const char*, const char*, ERRTYPE, const char*, const char*, int) [with ERRTYPE = cublasStatus_t; bool THRW = true; std::conditional_t<THRW, void, onnxruntime::common::Status> = void] /onnxruntime_src/onnxruntime/core/providers/cuda/cuda_call.cc:114 std::conditional_t<THRW, void, onnxruntime::common::Status> onnxruntime::CudaCall(ERRTYPE, const char*, const char*, ERRTYPE, const char*, const char*, int) [with ERRTYPE = cublasStatus_t; bool THRW = true; std::conditional_t<THRW, void, onnxruntime::common::Status> = void] CUBLAS failure 3: CUBLAS_STATUS_ALLOC_FAILED ; GPU=0 ; hostname=drag0n ; file=/onnxruntime_src/onnxruntime/core/providers/cuda/cuda_stream_handle.cc ; line=73 ; expr=cublasCreate(&cublas_handle_); 

Prompt executed in 0.34 seconds

Additional information

Reactor in A1111 webui works fine without any issues.

Gourieff commented 3 months ago

https://github.com/Gourieff/comfyui-reactor-node/issues?q=is%3Aissue+is%3Aclosed+%5BONNXRuntimeError%5D+%3A+1+%3A+FAIL