FaceDetailerPipe RuntimeError: The default implementation of __deepcopy__() for non-wrapper subclasses only works for subclass types that implement new_empty() and for which that function returns another instance of the same subclass.
DigitalBeer opened this issue · 2 comments
DigitalBeer commented
Hi, I'm trying to run a workflow that builds character sheets. After the initial creation, it's upscaled by Ultimate SD Upscale, at the point it hands off to FaceDetailer (pipe) from the Impact-Pack it fails with the following error. I deleted the node folder and reinstalled from scratch, updated everything several times over a few days but I'm still seeing the same error. I couldn't find anyone else mentioning this same issue though. Happy to troubleshoot it if it helps or redirect it to comfyui if it's not a node issue.
Thank you.
ComfyUI Error Report
Error Details
- Node Type: FaceDetailerPipe
- Exception Type: RuntimeError
- Exception Message: The default implementation of deepcopy() for non-wrapper subclasses only works for subclass types that implement new_empty() and for which that function returns another instance of the same subclass. You should either properly implement new_empty() for your subclass or override deepcopy() if it is intended behavior for new_empty() to return an instance of a different type.
Stack Trace
File "D:\aitools\ComfyUI\ComfyUI\execution.py", line 323, in execute
output_data, output_ui, has_subgraph = get_output_data(obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb)
File "D:\aitools\ComfyUI\ComfyUI\execution.py", line 198, in get_output_data
return_values = _map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb)
File "D:\aitools\ComfyUI\ComfyUI\execution.py", line 169, in _map_node_over_list
process_inputs(input_dict, i)
File "D:\aitools\ComfyUI\ComfyUI\execution.py", line 158, in process_inputs
results.append(getattr(obj, func)(**inputs))
File "D:\aitools\ComfyUI\ComfyUI\custom_nodes\ComfyUI-Impact-Pack\modules\impact\impact_pack.py", line 1396, in doit
enhanced_img, cropped_enhanced, cropped_enhanced_alpha, mask, cnet_pil_list = FaceDetailer.enhance_face(
File "D:\aitools\ComfyUI\ComfyUI\custom_nodes\ComfyUI-Impact-Pack\modules\impact\impact_pack.py", line 547, in enhance_face
DetailerForEach.do_detail(image, segs, model, clip, vae, guide_size, guide_size_for_bbox, max_size, seed, steps, cfg,
File "D:\aitools\ComfyUI\ComfyUI\custom_nodes\ComfyUI-Impact-Pack\modules\impact\impact_pack.py", line 323, in do_detail
enhanced_image, cnet_pils = core.enhance_detail(cropped_image, model, clip, vae, guide_size, guide_size_for_bbox, max_size,
File "D:\aitools\ComfyUI\ComfyUI\custom_nodes\ComfyUI-Impact-Pack\modules\impact\core.py", line 356, in enhance_detail
refined_latent = detailer_hook.pre_decode(refined_latent)
File "D:\aitools\ComfyUI\ComfyUI\custom_nodes\ComfyUI-Impact-Pack\modules\impact\hooks.py", line 235, in pre_decode
new_samples = copy.deepcopy(samples)
File "C:\Users\matde\AppData\Local\Programs\Python\Python310\lib\copy.py", line 146, in deepcopy
y = copier(x, memo)
File "C:\Users\matde\AppData\Local\Programs\Python\Python310\lib\copy.py", line 231, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "C:\Users\matde\AppData\Local\Programs\Python\Python310\lib\copy.py", line 153, in deepcopy
y = copier(memo)
File "D:\aitools\ComfyUI\ComfyUI\custom_nodes\ComfyUI-GGUF\ops.py", line 44, in __deepcopy__
new = super().__deepcopy__(*args, **kwargs)
File "C:\Users\matde\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\_tensor.py", line 84, in __deepcopy__
return handle_torch_function(Tensor.__deepcopy__, (self,), self, memo)
File "C:\Users\matde\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\overrides.py", line 1636, in handle_torch_function
result = torch_func_method(public_api, types, args, kwargs)
File "C:\Users\matde\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\_tensor.py", line 1443, in __torch_function__
ret = func(*args, **kwargs)
File "C:\Users\matde\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\_tensor.py", line 174, in __deepcopy__
raise RuntimeError(
System Information
- ComfyUI Version: v0.2.3-10-gc695c4a
- Arguments: main.py --highvram --disable-auto-launch
- OS: nt
- Python Version: 3.10.6 (tags/v3.10.6:9c7b4bd, Aug 1 2022, 21:53:49) [MSC v.1932 64 bit (AMD64)]
- Embedded Python: false
- PyTorch Version: 2.3.1+cu121
Devices
- Name: cuda:0 NVIDIA GeForce RTX 4090 : cudaMallocAsync
- Type: cuda
- VRAM Total: 25756696576
- VRAM Free: 4376772760
- Torch VRAM Total: 19730006016
- Torch VRAM Free: 279183512
Logs
2024-10-16 12:31:23,655 - root - ERROR - !!! Exception during processing !!! The default implementation of __deepcopy__() for non-wrapper subclasses only works for subclass types that implement new_empty() and for which that function returns another instance of the same subclass. You should either properly implement new_empty() for your subclass or override __deepcopy__() if it is intended behavior for new_empty() to return an instance of a different type.
2024-10-16 12:31:23,656 - root - ERROR - Traceback (most recent call last):
File "D:\aitools\ComfyUI\ComfyUI\execution.py", line 323, in execute
output_data, output_ui, has_subgraph = get_output_data(obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb)
File "D:\aitools\ComfyUI\ComfyUI\execution.py", line 198, in get_output_data
return_values = _map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb)
File "D:\aitools\ComfyUI\ComfyUI\execution.py", line 169, in _map_node_over_list
process_inputs(input_dict, i)
File "D:\aitools\ComfyUI\ComfyUI\execution.py", line 158, in process_inputs
results.append(getattr(obj, func)(**inputs))
File "D:\aitools\ComfyUI\ComfyUI\custom_nodes\ComfyUI-Impact-Pack\modules\impact\impact_pack.py", line 1396, in doit
enhanced_img, cropped_enhanced, cropped_enhanced_alpha, mask, cnet_pil_list = FaceDetailer.enhance_face(
File "D:\aitools\ComfyUI\ComfyUI\custom_nodes\ComfyUI-Impact-Pack\modules\impact\impact_pack.py", line 547, in enhance_face
DetailerForEach.do_detail(image, segs, model, clip, vae, guide_size, guide_size_for_bbox, max_size, seed, steps, cfg,
File "D:\aitools\ComfyUI\ComfyUI\custom_nodes\ComfyUI-Impact-Pack\modules\impact\impact_pack.py", line 323, in do_detail
enhanced_image, cnet_pils = core.enhance_detail(cropped_image, model, clip, vae, guide_size, guide_size_for_bbox, max_size,
File "D:\aitools\ComfyUI\ComfyUI\custom_nodes\ComfyUI-Impact-Pack\modules\impact\core.py", line 356, in enhance_detail
refined_latent = detailer_hook.pre_decode(refined_latent)
File "D:\aitools\ComfyUI\ComfyUI\custom_nodes\ComfyUI-Impact-Pack\modules\impact\hooks.py", line 235, in pre_decode
new_samples = copy.deepcopy(samples)
File "C:\Users\matde\AppData\Local\Programs\Python\Python310\lib\copy.py", line 146, in deepcopy
y = copier(x, memo)
File "C:\Users\matde\AppData\Local\Programs\Python\Python310\lib\copy.py", line 231, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "C:\Users\matde\AppData\Local\Programs\Python\Python310\lib\copy.py", line 153, in deepcopy
y = copier(memo)
File "D:\aitools\ComfyUI\ComfyUI\custom_nodes\ComfyUI-GGUF\ops.py", line 44, in __deepcopy__
new = super().__deepcopy__(*args, **kwargs)
File "C:\Users\matde\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\_tensor.py", line 84, in __deepcopy__
return handle_torch_function(Tensor.__deepcopy__, (self,), self, memo)
File "C:\Users\matde\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\overrides.py", line 1636, in handle_torch_function
result = torch_func_method(public_api, types, args, kwargs)
File "C:\Users\matde\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\_tensor.py", line 1443, in __torch_function__
ret = func(*args, **kwargs)
File "C:\Users\matde\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\_tensor.py", line 174, in __deepcopy__
raise RuntimeError(
RuntimeError: The default implementation of __deepcopy__() for non-wrapper subclasses only works for subclass types that implement new_empty() and for which that function returns another instance of the same subclass. You should either properly implement new_empty() for your subclass or override __deepcopy__() if it is intended behavior for new_empty() to return an instance of a different type.
2024-10-16 12:31:23,659 - root - INFO - Prompt executed in 576.68 seconds
Attached Workflow
ltdrdata commented
This is an issue of ComfyUI-GGUF not a Impact Pack issue.