melMass / comfy_mtb

Animation oriented nodes pack for ComfyUI
MIT License
425 stars 46 forks source link

[bug] Unable to composite GIF #169

Open idesign2018 opened 5 months ago

idesign2018 commented 5 months ago

Describe the bug

Using the fourth workflowprovided, the GIF could not be synthesized in the last step

The following is the error code: 1713504345132

Reproduction

No response

Expected behavior

No response

Operating System

Windows (Default)

Comfy Mode

Comfy Portable (embed) (Default)

Console output

[rgthree] Using rgthree's optimized recursive execution.
100%|██████████████████████████████████████████████████████████████████████████████████| 15/15 [00:01<00:00, 10.93it/s]
Prompt executed in 4.37 seconds
[rgthree] Using rgthree's optimized recursive execution.
!!! Exception during processing !!!
Traceback (most recent call last):
  File "urllib\request.py", line 1348, in do_open
  File "http\client.py", line 1298, in request
  File "http\client.py", line 1344, in _send_request
  File "http\client.py", line 1293, in endheaders
  File "http\client.py", line 1052, in _send_output
  File "http\client.py", line 990, in send
  File "http\client.py", line 956, in connect
  File "socket.py", line 851, in create_connection
  File "socket.py", line 836, in create_connection
OSError: [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\execution.py", line 151, in recursive_execute
    output_data, output_ui = get_output_data(obj, input_data_all)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\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 "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\execution.py", line 74, in map_node_over_list
    results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\custom_nodes\comfy_mtb\nodes\graph_utils.py", line 312, in load_from_history
    output = self.load_batch_frames(response, offset, count, frames)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\custom_nodes\comfy_mtb\nodes\graph_utils.py", line 328, in load_batch_frames
    image_data = get_image(
                 ^^^^^^^^^^
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\custom_nodes\comfy_mtb\nodes\graph_utils.py", line 35, in get_image
    with urllib.request.urlopen(url) as response:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "urllib\request.py", line 216, in urlopen
  File "urllib\request.py", line 519, in open
  File "urllib\request.py", line 536, in _open
  File "urllib\request.py", line 496, in _call_chain
  File "urllib\request.py", line 1377, in http_open
  File "urllib\request.py", line 1351, in do_open
urllib.error.URLError: <urlopen error [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。>

Prompt executed in 0.38 seconds
[rgthree] Using rgthree's optimized recursive execution.
!!! Exception during processing !!!
Traceback (most recent call last):
  File "urllib\request.py", line 1348, in do_open
  File "http\client.py", line 1298, in request
  File "http\client.py", line 1344, in _send_request
  File "http\client.py", line 1293, in endheaders
  File "http\client.py", line 1052, in _send_output
  File "http\client.py", line 990, in send
  File "http\client.py", line 956, in connect
  File "socket.py", line 851, in create_connection
  File "socket.py", line 836, in create_connection
OSError: [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\execution.py", line 151, in recursive_execute
    output_data, output_ui = get_output_data(obj, input_data_all)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\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 "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\execution.py", line 74, in map_node_over_list
    results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\custom_nodes\comfy_mtb\nodes\graph_utils.py", line 311, in load_from_history
    with urllib.request.urlopen(history_url) as response:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "urllib\request.py", line 216, in urlopen
  File "urllib\request.py", line 519, in open
  File "urllib\request.py", line 536, in _open
  File "urllib\request.py", line 496, in _call_chain
  File "urllib\request.py", line 1377, in http_open
  File "urllib\request.py", line 1351, in do_open
urllib.error.URLError: <urlopen error [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。>

Prompt executed in 0.02 seconds
[rgthree] Using rgthree's optimized recursive execution.
!!! Exception during processing !!!
Traceback (most recent call last):
  File "urllib\request.py", line 1348, in do_open
  File "http\client.py", line 1298, in request
  File "http\client.py", line 1344, in _send_request
  File "http\client.py", line 1293, in endheaders
  File "http\client.py", line 1052, in _send_output
  File "http\client.py", line 990, in send
  File "http\client.py", line 956, in connect
  File "socket.py", line 851, in create_connection
  File "socket.py", line 836, in create_connection
OSError: [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\execution.py", line 151, in recursive_execute
    output_data, output_ui = get_output_data(obj, input_data_all)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\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 "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\execution.py", line 74, in map_node_over_list
    results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\custom_nodes\comfy_mtb\nodes\graph_utils.py", line 311, in load_from_history
    with urllib.request.urlopen(history_url) as response:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "urllib\request.py", line 216, in urlopen
  File "urllib\request.py", line 519, in open
  File "urllib\request.py", line 536, in _open
  File "urllib\request.py", line 496, in _call_chain
  File "urllib\request.py", line 1377, in http_open
  File "urllib\request.py", line 1351, in do_open
urllib.error.URLError: <urlopen error [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。>

Prompt executed in 0.02 seconds
[rgthree] Using rgthree's optimized recursive execution.
!!! Exception during processing !!!
Traceback (most recent call last):
  File "urllib\request.py", line 1348, in do_open
  File "http\client.py", line 1298, in request
  File "http\client.py", line 1344, in _send_request
  File "http\client.py", line 1293, in endheaders
  File "http\client.py", line 1052, in _send_output
  File "http\client.py", line 990, in send
  File "http\client.py", line 956, in connect
  File "socket.py", line 851, in create_connection
  File "socket.py", line 836, in create_connection
OSError: [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\execution.py", line 151, in recursive_execute
    output_data, output_ui = get_output_data(obj, input_data_all)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\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 "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\execution.py", line 74, in map_node_over_list
    results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\custom_nodes\comfy_mtb\nodes\graph_utils.py", line 311, in load_from_history
    with urllib.request.urlopen(history_url) as response:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "urllib\request.py", line 216, in urlopen
  File "urllib\request.py", line 519, in open
  File "urllib\request.py", line 536, in _open
  File "urllib\request.py", line 496, in _call_chain
  File "urllib\request.py", line 1377, in http_open
  File "urllib\request.py", line 1351, in do_open
urllib.error.URLError: <urlopen error [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。>

Prompt executed in 0.02 seconds
[rgthree] Using rgthree's optimized recursive execution.
!!! Exception during processing !!!
Traceback (most recent call last):
  File "urllib\request.py", line 1348, in do_open
  File "http\client.py", line 1298, in request
  File "http\client.py", line 1344, in _send_request
  File "http\client.py", line 1293, in endheaders
  File "http\client.py", line 1052, in _send_output
  File "http\client.py", line 990, in send
  File "http\client.py", line 956, in connect
  File "socket.py", line 851, in create_connection
  File "socket.py", line 836, in create_connection
OSError: [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\execution.py", line 151, in recursive_execute
    output_data, output_ui = get_output_data(obj, input_data_all)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\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 "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\execution.py", line 74, in map_node_over_list
    results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\custom_nodes\comfy_mtb\nodes\graph_utils.py", line 311, in load_from_history
    with urllib.request.urlopen(history_url) as response:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "urllib\request.py", line 216, in urlopen
  File "urllib\request.py", line 519, in open
  File "urllib\request.py", line 536, in _open
  File "urllib\request.py", line 496, in _call_chain
  File "urllib\request.py", line 1377, in http_open
  File "urllib\request.py", line 1351, in do_open
urllib.error.URLError: <urlopen error [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。>

Prompt executed in 0.02 seconds
[rgthree] Using rgthree's optimized recursive execution.
!!! Exception during processing !!!
Traceback (most recent call last):
  File "urllib\request.py", line 1348, in do_open
  File "http\client.py", line 1298, in request
  File "http\client.py", line 1344, in _send_request
  File "http\client.py", line 1293, in endheaders
  File "http\client.py", line 1052, in _send_output
  File "http\client.py", line 990, in send
  File "http\client.py", line 956, in connect
  File "socket.py", line 851, in create_connection
  File "socket.py", line 836, in create_connection
OSError: [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\execution.py", line 151, in recursive_execute
    output_data, output_ui = get_output_data(obj, input_data_all)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\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 "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\execution.py", line 74, in map_node_over_list
    results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\custom_nodes\comfy_mtb\nodes\graph_utils.py", line 311, in load_from_history
    with urllib.request.urlopen(history_url) as response:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "urllib\request.py", line 216, in urlopen
  File "urllib\request.py", line 519, in open
  File "urllib\request.py", line 536, in _open
  File "urllib\request.py", line 496, in _call_chain
  File "urllib\request.py", line 1377, in http_open
  File "urllib\request.py", line 1351, in do_open
urllib.error.URLError: <urlopen error [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。>

Prompt executed in 0.02 seconds
[rgthree] Using rgthree's optimized recursive execution.
!!! Exception during processing !!!
Traceback (most recent call last):
  File "urllib\request.py", line 1348, in do_open
  File "http\client.py", line 1298, in request
  File "http\client.py", line 1344, in _send_request
  File "http\client.py", line 1293, in endheaders
  File "http\client.py", line 1052, in _send_output
  File "http\client.py", line 990, in send
  File "http\client.py", line 956, in connect
  File "socket.py", line 851, in create_connection
  File "socket.py", line 836, in create_connection
OSError: [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\execution.py", line 151, in recursive_execute
    output_data, output_ui = get_output_data(obj, input_data_all)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\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 "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\execution.py", line 74, in map_node_over_list
    results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Meta\SD\ComfyUI_windows_portable_4_9\ComfyUI\custom_nodes\comfy_mtb\nodes\graph_utils.py", line 311, in load_from_history
    with urllib.request.urlopen(history_url) as response:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "urllib\request.py", line 216, in urlopen
  File "urllib\request.py", line 519, in open
  File "urllib\request.py", line 536, in _open
  File "urllib\request.py", line 496, in _call_chain
  File "urllib\request.py", line 1377, in http_open
  File "urllib\request.py", line 1351, in do_open
urllib.error.URLError: <urlopen error [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。>

Prompt executed in 0.02 seconds

Additional context

1713504345132

melMass commented 5 months ago

I'm seing this issue just now sorry, for some reason I did not get a notification.

The error you are seing comes from BatchFromHistory. It should provide clearer errors, I will work on that today, but my guess is your workflow has more than one OUTPUT_NODE ? If you check the short explanation in the wiki it's an unfortunatte drawback of it. Now with more knowledge I will revisit its implementation.

I will merge #160 today and look at adding better errors to it then

Thanks for the report

idesign2018 commented 5 months ago

I'm seing this issue just now sorry, for some reason I did not get a notification.

The error you are seing comes from BatchFromHistory. It should provide clearer errors, I will work on that today, but my guess is your workflow has more than one OUTPUT_NODE ? If you check the short explanation in the wiki it's an unfortunatte drawback of it. Now with more knowledge I will revisit its implementation.

I will merge #160 today and look at adding better errors to it then

Thanks for the report

Okay, thank you very much

melMass commented 5 months ago

@idesign2018 Can you share the workflow or a repro of it? That would help to identify gotchas and maybe find workarounds