From 641ed5f6e71a700c59fdf99a48d74f6ee55ccd48 Mon Sep 17 00:00:00 2001 From: comfy-test Date: Sun, 10 May 2026 21:23:48 +0000 Subject: [PATCH] Update dev/linux-cpu --- dev/linux-cpu/index.html | 48 +- dev/linux-cpu/logs/sharp_basic.log | 345 +++++-- dev/linux-cpu/logs/sharp_basic_console.log | 42 +- dev/linux-cpu/logs/sharp_basic_resources.csv | 31 +- dev/linux-cpu/logs/sharp_exif.log | 238 +++-- dev/linux-cpu/logs/sharp_exif_console.log | 34 +- dev/linux-cpu/logs/sharp_exif_resources.csv | 14 +- dev/linux-cpu/models.json | 39 + dev/linux-cpu/results.json | 24 +- dev/linux-cpu/session.log | 956 ++++++++++-------- .../videos/sharp_basic/frame_000.jpg | Bin 109273 -> 109273 bytes .../videos/sharp_basic/frame_001.jpg | Bin 114005 -> 112337 bytes .../videos/sharp_basic/frame_002.jpg | Bin 0 -> 112283 bytes .../videos/sharp_basic/frame_003.jpg | Bin 0 -> 112436 bytes .../videos/sharp_basic/frame_004.jpg | Bin 0 -> 112623 bytes .../videos/sharp_basic/frame_005.jpg | Bin 0 -> 111925 bytes dev/linux-cpu/videos/sharp_exif/frame_000.jpg | Bin 110735 -> 110733 bytes 17 files changed, 1125 insertions(+), 646 deletions(-) create mode 100644 dev/linux-cpu/models.json create mode 100644 dev/linux-cpu/videos/sharp_basic/frame_002.jpg create mode 100644 dev/linux-cpu/videos/sharp_basic/frame_003.jpg create mode 100644 dev/linux-cpu/videos/sharp_basic/frame_004.jpg create mode 100644 dev/linux-cpu/videos/sharp_basic/frame_005.jpg diff --git a/dev/linux-cpu/index.html b/dev/linux-cpu/index.html index bda1d16..11c184f 100644 --- a/dev/linux-cpu/index.html +++ b/dev/linux-cpu/index.html @@ -924,7 +924,7 @@

PozzettiAndrea/ComfyUI-Sharp Test Results

- 2026-05-10 20:52 UTC Linux-6.17.0-1010-azure-x86_64-with-glibc2.39 AMD EPYC 7763 64-Core Processor + 2026-05-10 21:23 UTC Linux-6.17.0-1010-azure-x86_64-with-glibc2.39 AMD EPYC 7763 64-Core Processor
@@ -960,7 +960,7 @@ fail
- 9.05s + 21.23s
@@ -974,7 +974,7 @@ fail
- 6.32s + 6.37s
@@ -988,31 +988,55 @@
sharp_basic - 9.05s + 21.23s
-
Workflow execution failed: {'prompt_id': '2da0a0a3-0f1d-4008-9544-3b71b057b9f6', 'node_id': '2', 'node_type': 'LoadSharpModel', 'executed': ['1'], 'exception_message': 'No module named \'comfy_aimdo\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 170, in execute\n import comfy.model_management\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in <module>\n import comfy_aimdo.vram_buffer\nModuleNotFoundError: No module named \'comfy_aimdo\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'precision': ['auto']}, 'current_outputs': ['5', '1', '2', '4'], 'timestamp': 1778446342071} +
Workflow execution failed: {'prompt_id': '680e7efb-b7e3-4246-98ac-baa7a4da9ce6', 'node_id': '5', 'node_type': 'SharpPredict', 'executed': ['1', '2'], 'exception_message': 'No module named \'scipy\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n ^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute\n patcher = _load_sharp_model(model)\n ^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model\n import comfy.model_patcher\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in <module>\n import comfy.hooks\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in <module>\n import comfy.lora\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in <module>\n import comfy.model_base\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in <module>\n from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in <module>\n from ..sdpose import HeatmapHead\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in <module>\n from scipy.ndimage import gaussian_filter\nModuleNotFoundError: No module named \'scipy\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n ^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n ^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'focal_length_mm': [30], 'output_prefix': ['sharp'], 'model': ["{'model_path': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/models/sharp/sharp_2572gikvuh.pt', 'precision': 'auto', 'dtype': 'fp32'}"], 'image': ['tensor([[[[0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n ...,\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000]],\n\n [[0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n ...,\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000]],\n\n [[0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n ...,\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000]],\n\n ...,\n\n [[0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n ...,\n [0.5098, 0.4627, 0.4235],\n [0.5098, 0.4627, 0.4235],\n [0.5098, 0.4627, 0.4235]],\n\n [[0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n ...,\n [0.5059, 0.4588, 0.4392],\n [0.5059, 0.4627, 0.4314],\n [0.5059, 0.4627, 0.4314]],\n\n [[0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n ...,\n [0.5059, 0.4588, 0.4392],\n [0.5059, 0.4627, 0.4314],\n [0.5059, 0.4627, 0.4314]]]])'], 'prompt': ["{'1': {'inputs': {'image': 'beach.jpg'}, 'class_type': 'LoadImage', '_meta': {'title': 'Load Image'}, 'is_changed': ['ee4f94632a5ec7038826e875829a62a81dc2a9b85ed59440f2eaa37b3704fa24']}, '2': {'inputs': {'precision': 'auto'}, 'class_type': 'LoadSharpModel', '_meta': {'title': '(Down)Load SHARP Model'}}, '4': {'inputs': {'preview_gaussian': '', 'ply_path': ['5', 0], 'extrinsics': ['5', 1], 'intrinsics': ['5', 2]}, 'class_type': 'GeomPackPreviewGaussian', '_meta': {'title': 'Preview Gaussian'}}, '5': {'inputs': {'focal_length_mm': 30.0, 'output_prefix': 'sharp', 'model': ['2', 0], 'image': ['1', 0]}, 'class_type': 'SharpPredict', '_meta': {'title': 'SHARP Predict (Image to PLY)'}}}"], 'extra_pnginfo': ["{'workflow': {'id': 'sharp-basic-workflow', 'revision': 0, 'last_node_id': 5, 'last_link_id': 10, 'nodes': [{'id': 2, 'type': 'LoadSharpModel', 'pos': [-150, -400], 'size': [270, 106.65625], 'flags': {}, 'order': 0, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'model_config', 'type': 'SHARP_MODEL_CONFIG', 'links': [6]}], 'properties': {'Node name for S&R': 'LoadSharpModel', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': '9f1b9c726e2cfc0118866c3df783e7f6bc895226'}, 'widgets_values': ['auto']}, {'id': 1, 'type': 'LoadImage', 'pos': [-150, -100], 'size': [274, 340], 'flags': {}, 'order': 1, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'IMAGE', 'type': 'IMAGE', 'links': [7]}, {'name': 'MASK', 'type': 'MASK', 'links': []}], 'properties': {'Node name for S&R': 'LoadImage', 'cnr_id': 'comfy-core', 'ver': '0.5.1'}, 'widgets_values': ['beach.jpg', 'image']}, {'id': 5, 'type': 'SharpPredict', 'pos': [181.546875, -251.55078125], 'size': [298.890625, 212], 'flags': {}, 'order': 2, 'mode': 0, 'inputs': [{'name': 'model', 'type': 'SHARP_MODEL_CONFIG', 'link': 6}, {'name': 'image', 'type': 'IMAGE', 'link': 7}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': None}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': None}], 'outputs': [{'name': 'ply_path', 'type': 'STRING', 'links': [8]}, {'name': 'extrinsics', 'type': 'EXTRINSICS', 'links': [9]}, {'name': 'intrinsics', 'type': 'INTRINSICS', 'links': [10]}], 'properties': {'Node name for S&R': 'SharpPredict', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'aa98b213e3d0770477bbf46046094c5cb8ff6052'}, 'widgets_values': [30, 'sharp']}, {'id': 4, 'type': 'GeomPackPreviewGaussian', 'pos': [629.92578125, -322.046875], 'size': [512, 658], 'flags': {}, 'order': 3, 'mode': 0, 'inputs': [{'name': 'ply_path', 'type': 'STRING', 'link': 8}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': 9}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': 10}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewGaussian', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack', 'ver': 'b7df285fc5b3fef7aad434d8b6e8698efed6358b', 'cnr_id': 'comfyui-geometrypack'}, 'widgets_values': ['']}], 'links': [[6, 2, 0, 5, 0, 'SHARP_MODEL'], [7, 1, 0, 5, 1, 'IMAGE'], [8, 5, 0, 4, 0, 'STRING'], [9, 5, 1, 4, 1, 'EXTRINSICS'], [10, 5, 2, 4, 2, 'INTRINSICS']], 'groups': [], 'config': {}, 'extra': {'ds': {'scale': 1, 'offset': [300.79296875, 604.72265625]}, 'workflowRendererVersion': 'LG', 'frontendVersion': '1.43.18'}, 'version': 0.4}}"]}, 'current_outputs': ['1', '2', '5', '4'], 'timestamp': 1778448202982} Details: -Workflow: /tmp/comfy-test-run-frk8o1_6/ComfyUI-Sharp/workflows/sharp_basic.json -Node error: LoadSharpModel
+Workflow: /tmp/comfy-test-run-25wt5ji7/ComfyUI-Sharp/workflows/sharp_basic.json +Node error: SharpPredict
sharp_exif - 6.32s + 6.37s
-
Workflow execution failed: {'prompt_id': 'fb1b8573-b39c-489a-9b0c-0f581bba098d', 'node_id': '2', 'node_type': 'LoadSharpModel', 'executed': ['9'], 'exception_message': 'No module named \'comfy_aimdo\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 170, in execute\n import comfy.model_management\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in <module>\n import comfy_aimdo.vram_buffer\nModuleNotFoundError: No module named \'comfy_aimdo\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'precision': ['auto']}, 'current_outputs': ['9', '8', '2', '7'], 'timestamp': 1778446348934} +
Workflow execution failed: {'prompt_id': '17b4c6a0-5277-443b-9e4a-9650d557d2fd', 'node_id': '7', 'node_type': 'SharpPredict', 'executed': ['2', '9'], 'exception_message': 'No module named \'scipy\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n ^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute\n patcher = _load_sharp_model(model)\n ^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model\n import comfy.model_patcher\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in <module>\n import comfy.hooks\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in <module>\n import comfy.lora\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in <module>\n import comfy.model_base\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in <module>\n from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in <module>\n from ..sdpose import HeatmapHead\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in <module>\n from scipy.ndimage import gaussian_filter\nModuleNotFoundError: No module named \'scipy\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n ^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n ^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'focal_length_mm': [20], 'output_prefix': ['sharp'], 'model': ["{'model_path': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/models/sharp/sharp_2572gikvuh.pt', 'precision': 'auto', 'dtype': 'fp32'}"], 'image': ['tensor([[[[0.2157, 0.1647, 0.1569],\n [0.2275, 0.1608, 0.1608],\n [0.2275, 0.1647, 0.1529],\n ...,\n [0.4471, 0.4745, 0.4863],\n [0.4510, 0.4745, 0.4863],\n [0.4431, 0.4745, 0.4745]],\n\n [[0.2196, 0.1686, 0.1569],\n [0.2314, 0.1647, 0.1608],\n [0.2353, 0.1647, 0.1647],\n ...,\n [0.4549, 0.4784, 0.4706],\n [0.4549, 0.4706, 0.4784],\n [0.4431, 0.4706, 0.4667]],\n\n [[0.2314, 0.1725, 0.1569],\n [0.2510, 0.1725, 0.1608],\n [0.2392, 0.1725, 0.1686],\n ...,\n [0.4588, 0.4745, 0.4627],\n [0.4510, 0.4745, 0.4667],\n [0.4471, 0.4706, 0.4627]],\n\n ...,\n\n [[0.1569, 0.1647, 0.1843],\n [0.1647, 0.1725, 0.1882],\n [0.1490, 0.1686, 0.1922],\n ...,\n [0.1020, 0.1137, 0.1373],\n [0.1137, 0.1176, 0.1412],\n [0.0863, 0.1176, 0.1373]],\n\n [[0.1569, 0.1686, 0.1804],\n [0.1569, 0.1647, 0.1961],\n [0.1490, 0.1647, 0.1961],\n ...,\n [0.1059, 0.1216, 0.1294],\n [0.1176, 0.1216, 0.1333],\n [0.1059, 0.1137, 0.1373]],\n\n [[0.1608, 0.1686, 0.1843],\n [0.1608, 0.1686, 0.1882],\n [0.1569, 0.1686, 0.1882],\n ...,\n [0.1059, 0.1176, 0.1333],\n [0.1137, 0.1176, 0.1333],\n [0.1333, 0.1176, 0.1333]]]])'], 'prompt': ["{'2': {'inputs': {'precision': 'auto'}, 'class_type': 'LoadSharpModel', '_meta': {'title': '(Down)Load SHARP Model'}}, '7': {'inputs': {'focal_length_mm': ['9', 2], 'output_prefix': 'sharp', 'model': ['2', 0], 'image': ['9', 0]}, 'class_type': 'SharpPredict', '_meta': {'title': 'SHARP Predict (Image to PLY)'}}, '8': {'inputs': {'preview_gaussian': '', 'ply_path': ['7', 0], 'extrinsics': ['7', 1], 'intrinsics': ['7', 2]}, 'class_type': 'GeomPackPreviewGaussian', '_meta': {'title': 'Preview Gaussian'}}, '9': {'inputs': {'image': 'eth3d.png', 'default_focal_mm': 30.0}, 'class_type': 'LoadImageWithExif', '_meta': {'title': 'Load Image with EXIF (Focal Length)'}}}"], 'extra_pnginfo': ["{'workflow': {'id': 'sharp-basic-workflow', 'revision': 0, 'last_node_id': 10, 'last_link_id': 21, 'nodes': [{'id': 2, 'type': 'LoadSharpModel', 'pos': [-150, -400], 'size': [270, 106.65625], 'flags': {}, 'order': 0, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'model_config', 'type': 'SHARP_MODEL_CONFIG', 'links': [11]}], 'properties': {'Node name for S&R': 'LoadSharpModel', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': '9f1b9c726e2cfc0118866c3df783e7f6bc895226'}, 'widgets_values': ['auto']}, {'id': 9, 'type': 'LoadImageWithExif', 'pos': [-208.74978010739324, -99.02778023242435], 'size': [342.28125, 420], 'flags': {}, 'order': 1, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'image', 'type': 'IMAGE', 'links': [19]}, {'name': 'mask', 'type': 'MASK', 'links': None}, {'name': 'focal_length_mm', 'type': 'FLOAT', 'links': [20]}], 'properties': {'Node name for S&R': 'LoadImageWithExif', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'c69751a59b587c3b83d0e37cfe2bab3bc838574a'}, 'widgets_values': ['eth3d.png', 30, 'image']}, {'id': 7, 'type': 'SharpPredict', 'pos': [226.15696022727278, -245.70490056818184], 'size': [298.890625, 212], 'flags': {}, 'order': 2, 'mode': 0, 'inputs': [{'name': 'model', 'type': 'SHARP_MODEL_CONFIG', 'link': 11}, {'name': 'image', 'type': 'IMAGE', 'link': 19}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': None}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': None}, {'name': 'focal_length_mm', 'shape': 7, 'type': 'FLOAT', 'widget': {'name': 'focal_length_mm'}, 'link': 20}], 'outputs': [{'name': 'ply_path', 'type': 'STRING', 'links': [16]}, {'name': 'extrinsics', 'type': 'EXTRINSICS', 'links': [17]}, {'name': 'intrinsics', 'type': 'INTRINSICS', 'links': [18]}], 'properties': {'Node name for S&R': 'SharpPredict', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'c69751a59b587c3b83d0e37cfe2bab3bc838574a'}, 'widgets_values': [30, 'sharp']}, {'id': 8, 'type': 'GeomPackPreviewGaussian', 'pos': [641.9426914835157, -275.49795068697], 'size': [512, 658], 'flags': {}, 'order': 3, 'mode': 0, 'inputs': [{'name': 'ply_path', 'type': 'STRING', 'link': 16}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': 17}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': 18}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewGaussian', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack', 'ver': 'df6bf3d73d0dda9c6ad7428eb58a00dc8cbaf6ed', 'cnr_id': 'comfyui-geometrypack'}, 'widgets_values': ['']}], 'links': [[11, 2, 0, 7, 0, 'SHARP_MODEL'], [16, 7, 0, 8, 0, 'STRING'], [17, 7, 1, 8, 1, 'EXTRINSICS'], [18, 7, 2, 8, 2, 'INTRINSICS'], [19, 9, 0, 7, 1, 'IMAGE'], [20, 9, 2, 7, 4, 'FLOAT']], 'groups': [], 'config': {}, 'extra': {'ds': {'scale': 1.1, 'offset': [292.8560303656579, 525.3669699599554]}, 'workflowRendererVersion': 'LG', 'frontendVersion': '1.43.18'}, 'version': 0.4}}"]}, 'current_outputs': ['7', '8', '2', '9'], 'timestamp': 1778448210087} Details: -Workflow: /tmp/comfy-test-run-frk8o1_6/ComfyUI-Sharp/workflows/sharp_exif.json -Node error: LoadSharpModel
+Workflow: /tmp/comfy-test-run-25wt5ji7/ComfyUI-Sharp/workflows/sharp_exif.json +Node error: SharpPredict
+
+
+

Downloaded Models

+ 4 files · 2.6 GB +
+ +
+ + models/sharp/ + + + 2.6 GB + + +
+
sharp_2572gikvuh.pt2.6 GB
+
.cache/huggingface/CACHEDIR.TAG191.0 B
+
.cache/huggingface/download/sharp_2572gikvuh.pt.metadata125.0 B
+
.cache/huggingface/.gitignore1.0 B
+
+
+ +
+ }); } - const workflowData = {"sharp_basic": {"src": "", "title": "sharp_basic", "status": "fail", "duration": "9.05", "log": "Capturing execution frames: sharp_basic.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n [ComfyUI] === /validate endpoint called ===\n [ComfyUI] === /validate endpoint called ===\n [ComfyUI] Received JSON with keys: ['prompt']\n [ComfyUI] Received JSON with keys: ['prompt']\n [ComfyUI] Prompt has 4 nodes\n [ComfyUI] Prompt has 4 nodes\n [ComfyUI] Node 1: LoadImage\n [ComfyUI] Node 1: LoadImage\n Queuing workflow for execution...\n [ComfyUI] Inputs: {\"image\": \"beach.jpg\"}\n [ComfyUI] Inputs: {\"image\": \"beach.jpg\"}\n [ComfyUI] Node 2: LoadSharpModel\n [ComfyUI] Node 2: LoadSharpModel\n [ComfyUI] Inputs: {\"precision\": \"auto\"}\n [ComfyUI] Inputs: {\"precision\": \"auto\"}\n [ComfyUI] Node 4: GeomPackPreviewGaussian\n [ComfyUI] Node 4: GeomPackPreviewGaussian\n [ComfyUI] Inputs: {\"preview_gaussian\": \"\", \"ply_path\": [\"5\", 0], \"extrinsics\": [\"5\", 1], \"intrinsics\": [\"5\", 2]}\n [ComfyUI] Inputs: {\"preview_gaussian\": \"\", \"ply_path\": [\"5\", 0], \"extrinsics\": [\"5\", 1], \"intrinsics\": [\"5\", 2]}\n [ComfyUI] Node 5: SharpPredict\n [ComfyUI] Node 5: SharpPredict\n [ComfyUI] Inputs: {\"focal_length_mm\": 30, \"output_prefix\": \"sharp\", \"model\": [\"2\", 0], \"image\": [\"1\", 0]}\n [ComfyUI] Inputs: {\"focal_length_mm\": 30, \"output_prefix\": \"sharp\", \"model\": [\"2\", 0], \"image\": [\"1\", 0]}\n [ComfyUI] Generated prompt_id: 635b5af1-b930-4f69-8cc3-bcac3ab45338\n [ComfyUI] Generated prompt_id: 635b5af1-b930-4f69-8cc3-bcac3ab45338\n [ComfyUI] Calling execution.validate_prompt()...\n [ComfyUI] Calling execution.validate_prompt()...\n [ComfyUI] Validation result: valid=True\n [ComfyUI] Validation result: valid=True\n [ComfyUI] === Validation PASSED ===\n [ComfyUI] === Validation PASSED ===\n [ComfyUI] got prompt\n [ComfyUI] got prompt\n [ComfyUI] [comfy-env] SubprocessWorker: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python\n [ComfyUI] [comfy-env] SubprocessWorker: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python\n [ComfyUI] [comfy-env] Running LoadSharpModel: precision: 'auto'\n [ComfyUI] [comfy-env] Running LoadSharpModel: precision: 'auto'\n [ComfyUI] [comfy-env] env_vars: {'COMFYUI_BASE': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI'}\n [ComfyUI] [comfy-env] env_vars: {'COMFYUI_BASE': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI'}\n [ComfyUI] [SubprocessWorker] call_method: nodes.load_model.LoadSharpModel.EXECUTE_NORMALIZED\n [ComfyUI] [SubprocessWorker] call_method: nodes.load_model.LoadSharpModel.EXECUTE_NORMALIZED\n [ComfyUI] [ComfyUI-Sharp] python: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python\n [ComfyUI] [ComfyUI-Sharp] python: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python\n [ComfyUI] [ComfyUI-Sharp] sys_path sent to worker: ['/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.10/site-packages', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp']\n [ComfyUI] [ComfyUI-Sharp] sys_path sent to worker: ['/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.10/site-packages', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp']\n [ComfyUI] [SubprocessWorker] acquired lock, ensuring started...\n [ComfyUI] [SubprocessWorker] acquired lock, ensuring started...\n [ComfyUI] [SubprocessWorker] is_pixi=True, python=/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python\n [ComfyUI] [SubprocessWorker] is_pixi=True, python=/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python\n [ComfyUI] [SubprocessWorker] launching cmd=['/home/runner/.pixi/bin/pixi', 'run', '--as-is', '--manifest-path', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/pixi.toml', '-e', 'sharp-nodes', 'python', '/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py', 'abstract://comfy_worker_0640d77dd0ff']...\n [ComfyUI] [SubprocessWorker] launching cmd=['/home/runner/.pixi/bin/pixi', 'run', '--as-is', '--manifest-path', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/pixi.toml', '-e', 'sharp-nodes', 'python', '/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py', 'abstract://comfy_worker_0640d77dd0ff']...\n [ComfyUI] [SubprocessWorker] socket_addr=abstract://comfy_worker_0640d77dd0ff (abstract, no filesystem path)\n [ComfyUI] [SubprocessWorker] socket_addr=abstract://comfy_worker_0640d77dd0ff (abstract, no filesystem path)\n [ComfyUI] [worker:ComfyUI-Sharp] ERROR: Failed to import comfy_kitchen, Error: No module named 'comfy_kitchen', fp8 and fp4 support will not be available.\n [ComfyUI] [worker:ComfyUI-Sharp] ERROR: Failed to import comfy_kitchen, Error: No module named 'comfy_kitchen', fp8 and fp4 support will not be available.\n [ComfyUI] [SubprocessWorker] worker started/confirmed\n [ComfyUI] [SubprocessWorker] worker started/confirmed\n [ComfyUI] [SubprocessWorker] serializing kwargs to shm...\n [ComfyUI] [SubprocessWorker] serializing kwargs to shm...\n [ComfyUI] [SubprocessWorker] created 0 shm blocks\n [ComfyUI] [SubprocessWorker] created 0 shm blocks\n [ComfyUI] [SubprocessWorker] sending request via socket...\n [ComfyUI] [SubprocessWorker] sending request via socket...\n [ComfyUI] [SubprocessWorker] call_id=1 sending call_method\n [ComfyUI] [SubprocessWorker] call_id=1 sending call_method\n [ComfyUI] [SubprocessWorker] got response: error\n [ComfyUI] [SubprocessWorker] got response: error\n [ComfyUI] !!! Exception during processing !!! No module named 'comfy_aimdo'\n [ComfyUI] !!! Exception during processing !!! No module named 'comfy_aimdo'\n [ComfyUI] \n [ComfyUI] \n [ComfyUI] Worker traceback:\n [ComfyUI] Worker traceback:\n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py\", line 1762, in main\n [ComfyUI] File \"/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py\", line 1762, in main\n [ComfyUI] result = method(**inputs)\n [ComfyUI] result = method(**inputs)\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\n [ComfyUI] to_return = cls.execute(*args, **kwargs)\n [ComfyUI] to_return = cls.execute(*args, **kwargs)\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 170, in execute\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 170, in execute\n [ComfyUI] import comfy.model_management\n [ComfyUI] import comfy.model_management\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py\", line 34, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py\", line 34, in \n [ComfyUI] import comfy_aimdo.vram_buffer\n [ComfyUI] import comfy_aimdo.vram_buffer\n [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo'\n [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo'\n [ComfyUI] \n [ComfyUI] \n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 535, in execute\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 535, in execute\n [ComfyUI] output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n [ComfyUI] output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 335, in get_output_data\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 335, in get_output_data\n [ComfyUI] return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n [ComfyUI] return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\n [ComfyUI] await process_inputs(input_dict, i)\n [ComfyUI] await process_inputs(input_dict, i)\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 297, in process_inputs\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 297, in process_inputs\n [ComfyUI] result = f(**inputs)\n [ComfyUI] result = f(**inputs)\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\n [ComfyUI] result = worker.call_method(\n [ComfyUI] result = worker.call_method(\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\n [ComfyUI] raise WorkerError(\n [ComfyUI] raise WorkerError(\n [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'comfy_aimdo'\n [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'comfy_aimdo'\n [ComfyUI] \n [ComfyUI] \n [ComfyUI] Worker traceback:\n [ComfyUI] Worker traceback:\n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py\", line 1762, in main\n [ComfyUI] File \"/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py\", line 1762, in main\n [ComfyUI] result = method(**inputs)\n [ComfyUI] result = method(**inputs)\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\n [ComfyUI] to_return = cls.execute(*args, **kwargs)\n [ComfyUI] to_return = cls.execute(*args, **kwargs)\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 170, in execute\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 170, in execute\n [ComfyUI] import comfy.model_management\n [ComfyUI] import comfy.model_management\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py\", line 34, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py\", line 34, in \n [ComfyUI] import comfy_aimdo.vram_buffer\n [ComfyUI] import comfy_aimdo.vram_buffer\n [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo'\n [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo'\n [ComfyUI] \n [ComfyUI] \n [ComfyUI] \n [ComfyUI] \n [ComfyUI] Prompt executed in 1.97 seconds\n [ComfyUI] Prompt executed in 1.97 seconds\n Frame 2 saved (frame_001.jpg, t=2.3s)\n [capture-periodic] freeze=9ms shot=118ms unfreeze=5ms saved=True\n Execution complete (t=2.3s)\n Execution error: {'prompt_id': '2da0a0a3-0f1d-4008-9544-3b71b057b9f6', 'node_id': '2', 'node_type': 'LoadSharpModel', 'executed': ['1'], 'exception_message': 'No module named \\'comfy_aimdo\\'\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 170, in execute\\n import comfy.model_management\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py\", line 34, in \\n import comfy_aimdo.vram_buffer\\nModuleNotFoundError: No module named \\'comfy_aimdo\\'\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\\n result = worker.call_method(\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n'], 'current_inputs': {'precision': ['auto']}, 'current_outputs': ['5', '1', '2', '4'], 'timestamp': 1778446342071}\n Status: FAILED\n Error: Workflow execution failed: {'prompt_id': '2da0a0a3-0f1d-4008-9544-3b71b057b9f6', 'node_id': '2', 'node_type': 'LoadSharpModel', 'executed': ['1'], 'exception_message': 'No module named \\'comfy_aimdo\\'\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 170, in execute\\n import comfy.model_management\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py\", line 34, in \\n import comfy_aimdo.vram_buffer\\nModuleNotFoundError: No module named \\'comfy_aimdo\\'\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\\n result = worker.call_method(\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n'], 'current_inputs': {'precision': ['auto']}, 'current_outputs': ['5', '1', '2', '4'], 'timestamp': 1778446342071}\n Details: Workflow: /tmp/comfy-test-run-frk8o1_6/ComfyUI-Sharp/workflows/sharp_basic.json\nNode error: LoadSharpModel", "hardware": {"os": "Linux-6.17.0-1010-azure-x86_64-with-glibc2.39", "cpu": "AMD EPYC 7763 64-Core Processor"}}, "sharp_exif": {"src": "", "title": "sharp_exif", "status": "fail", "duration": "6.32", "log": "Capturing execution frames: sharp_exif.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n [ComfyUI] === /validate endpoint called ===\n [ComfyUI] === /validate endpoint called ===\n [ComfyUI] Received JSON with keys: ['prompt']\n [ComfyUI] Received JSON with keys: ['prompt']\n [ComfyUI] Prompt has 4 nodes\n [ComfyUI] Prompt has 4 nodes\n [ComfyUI] Node 2: LoadSharpModel\n [ComfyUI] Node 2: LoadSharpModel\n [ComfyUI] Inputs: {\"precision\": \"auto\"}\n [ComfyUI] Inputs: {\"precision\": \"auto\"}\n [ComfyUI] Node 7: SharpPredict\n [ComfyUI] Node 7: SharpPredict\n Queuing workflow for execution...\n [ComfyUI] Inputs: {\"focal_length_mm\": [\"9\", 2], \"output_prefix\": \"sharp\", \"model\": [\"2\", 0], \"image\": [\"9\", 0]}\n [ComfyUI] Inputs: {\"focal_length_mm\": [\"9\", 2], \"output_prefix\": \"sharp\", \"model\": [\"2\", 0], \"image\": [\"9\", 0]}\n [ComfyUI] Node 8: GeomPackPreviewGaussian\n [ComfyUI] Node 8: GeomPackPreviewGaussian\n [ComfyUI] Inputs: {\"preview_gaussian\": \"\", \"ply_path\": [\"7\", 0], \"extrinsics\": [\"7\", 1], \"intrinsics\": [\"7\", 2]}\n [ComfyUI] Inputs: {\"preview_gaussian\": \"\", \"ply_path\": [\"7\", 0], \"extrinsics\": [\"7\", 1], \"intrinsics\": [\"7\", 2]}\n [ComfyUI] Node 9: LoadImageWithExif\n [ComfyUI] Node 9: LoadImageWithExif\n [ComfyUI] Inputs: {\"image\": \"eth3d.png\", \"default_focal_mm\": 30}\n [ComfyUI] Inputs: {\"image\": \"eth3d.png\", \"default_focal_mm\": 30}\n [ComfyUI] Generated prompt_id: 40c6a680-cf48-4922-bb94-60f2da64fb1a\n [ComfyUI] Generated prompt_id: 40c6a680-cf48-4922-bb94-60f2da64fb1a\n [ComfyUI] Calling execution.validate_prompt()...\n [ComfyUI] Calling execution.validate_prompt()...\n [ComfyUI] Validation result: valid=True\n [ComfyUI] Validation result: valid=True\n [ComfyUI] === Validation PASSED ===\n [ComfyUI] === Validation PASSED ===\n [ComfyUI] got prompt\n [ComfyUI] got prompt\n [ComfyUI] [comfy-env] Running LoadImageWithExif: image: 'eth3d.png', default_focal_mm: 30.0\n [ComfyUI] [comfy-env] Running LoadImageWithExif: image: 'eth3d.png', default_focal_mm: 30.0\n [ComfyUI] [SubprocessWorker] call_method: nodes.load_image_exif.LoadImageWithExif.EXECUTE_NORMALIZED\n [ComfyUI] [SubprocessWorker] call_method: nodes.load_image_exif.LoadImageWithExif.EXECUTE_NORMALIZED\n [ComfyUI] [SubprocessWorker] acquired lock, ensuring started...\n [ComfyUI] [SubprocessWorker] acquired lock, ensuring started...\n [ComfyUI] [ComfyUI-Sharp] Health check: ping (timeout=5.0s)...\n [ComfyUI] [ComfyUI-Sharp] Health check: ping (timeout=5.0s)...\n [ComfyUI] [ComfyUI-Sharp] Health check: ok\n [ComfyUI] [ComfyUI-Sharp] Health check: ok\n [ComfyUI] [SubprocessWorker] worker started/confirmed\n [ComfyUI] [SubprocessWorker] worker started/confirmed\n [ComfyUI] [SubprocessWorker] serializing kwargs to shm...\n [ComfyUI] [SubprocessWorker] serializing kwargs to shm...\n [ComfyUI] [SubprocessWorker] created 0 shm blocks\n [ComfyUI] [SubprocessWorker] created 0 shm blocks\n [ComfyUI] [SubprocessWorker] sending request via socket...\n [ComfyUI] [SubprocessWorker] sending request via socket...\n [ComfyUI] [SubprocessWorker] call_id=2 sending call_method\n [ComfyUI] [SubprocessWorker] call_id=2 sending call_method\n [ComfyUI] [SubprocessWorker] got response: ok\n [ComfyUI] [SubprocessWorker] got response: ok\n [ComfyUI] [comfy-env] LoadImageWithExif done (0.30s): result: NodeOutput\n [ComfyUI] [comfy-env] LoadImageWithExif done (0.30s): result: NodeOutput\n [ComfyUI] [comfy-env] Running LoadSharpModel: precision: 'auto'\n [ComfyUI] [comfy-env] Running LoadSharpModel: precision: 'auto'\n [ComfyUI] [SubprocessWorker] call_method: nodes.load_model.LoadSharpModel.EXECUTE_NORMALIZED\n [ComfyUI] [SubprocessWorker] call_method: nodes.load_model.LoadSharpModel.EXECUTE_NORMALIZED\n [ComfyUI] [SubprocessWorker] acquired lock, ensuring started...\n [ComfyUI] [SubprocessWorker] acquired lock, ensuring started...\n [ComfyUI] [ComfyUI-Sharp] Health check: ping (timeout=5.0s)...\n [ComfyUI] [ComfyUI-Sharp] Health check: ping (timeout=5.0s)...\n [ComfyUI] [ComfyUI-Sharp] Health check: ok\n [ComfyUI] [ComfyUI-Sharp] Health check: ok\n [ComfyUI] [SubprocessWorker] worker started/confirmed\n [ComfyUI] [SubprocessWorker] worker started/confirmed\n [ComfyUI] [SubprocessWorker] serializing kwargs to shm...\n [ComfyUI] [SubprocessWorker] serializing kwargs to shm...\n [ComfyUI] [SubprocessWorker] created 0 shm blocks\n [ComfyUI] [SubprocessWorker] created 0 shm blocks\n [ComfyUI] [SubprocessWorker] sending request via socket...\n [ComfyUI] [SubprocessWorker] sending request via socket...\n [ComfyUI] [SubprocessWorker] call_id=3 sending call_method\n [ComfyUI] [SubprocessWorker] call_id=3 sending call_method\n [ComfyUI] [SubprocessWorker] got response: error\n [ComfyUI] [SubprocessWorker] got response: error\n [ComfyUI] !!! Exception during processing !!! No module named 'comfy_aimdo'\n [ComfyUI] !!! Exception during processing !!! No module named 'comfy_aimdo'\n [ComfyUI] \n [ComfyUI] \n [ComfyUI] Worker traceback:\n [ComfyUI] Worker traceback:\n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py\", line 1762, in main\n [ComfyUI] File \"/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py\", line 1762, in main\n [ComfyUI] result = method(**inputs)\n [ComfyUI] result = method(**inputs)\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\n [ComfyUI] to_return = cls.execute(*args, **kwargs)\n [ComfyUI] to_return = cls.execute(*args, **kwargs)\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 170, in execute\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 170, in execute\n [ComfyUI] import comfy.model_management\n [ComfyUI] import comfy.model_management\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py\", line 34, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py\", line 34, in \n [ComfyUI] import comfy_aimdo.vram_buffer\n [ComfyUI] import comfy_aimdo.vram_buffer\n [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo'\n [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo'\n [ComfyUI] \n [ComfyUI] \n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 535, in execute\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 535, in execute\n [ComfyUI] output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n [ComfyUI] output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 335, in get_output_data\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 335, in get_output_data\n [ComfyUI] return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n [ComfyUI] return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\n [ComfyUI] await process_inputs(input_dict, i)\n [ComfyUI] await process_inputs(input_dict, i)\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 297, in process_inputs\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 297, in process_inputs\n [ComfyUI] result = f(**inputs)\n [ComfyUI] result = f(**inputs)\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\n [ComfyUI] result = worker.call_method(\n [ComfyUI] result = worker.call_method(\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\n [ComfyUI] raise WorkerError(\n [ComfyUI] raise WorkerError(\n [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'comfy_aimdo'\n [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'comfy_aimdo'\n [ComfyUI] \n [ComfyUI] \n [ComfyUI] Worker traceback:\n [ComfyUI] Worker traceback:\n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py\", line 1762, in main\n [ComfyUI] File \"/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py\", line 1762, in main\n [ComfyUI] result = method(**inputs)\n [ComfyUI] result = method(**inputs)\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\n [ComfyUI] to_return = cls.execute(*args, **kwargs)\n [ComfyUI] to_return = cls.execute(*args, **kwargs)\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 170, in execute\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 170, in execute\n [ComfyUI] import comfy.model_management\n [ComfyUI] import comfy.model_management\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py\", line 34, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py\", line 34, in \n [ComfyUI] import comfy_aimdo.vram_buffer\n [ComfyUI] import comfy_aimdo.vram_buffer\n [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo'\n [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo'\n [ComfyUI] \n [ComfyUI] \n [ComfyUI] \n [ComfyUI] \n [ComfyUI] Prompt executed in 0.31 seconds\n [ComfyUI] Prompt executed in 0.31 seconds\n Execution complete (t=0.6s)\n Execution error: {'prompt_id': 'fb1b8573-b39c-489a-9b0c-0f581bba098d', 'node_id': '2', 'node_type': 'LoadSharpModel', 'executed': ['9'], 'exception_message': 'No module named \\'comfy_aimdo\\'\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 170, in execute\\n import comfy.model_management\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py\", line 34, in \\n import comfy_aimdo.vram_buffer\\nModuleNotFoundError: No module named \\'comfy_aimdo\\'\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\\n result = worker.call_method(\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n'], 'current_inputs': {'precision': ['auto']}, 'current_outputs': ['9', '8', '2', '7'], 'timestamp': 1778446348934}\n Status: FAILED\n Error: Workflow execution failed: {'prompt_id': 'fb1b8573-b39c-489a-9b0c-0f581bba098d', 'node_id': '2', 'node_type': 'LoadSharpModel', 'executed': ['9'], 'exception_message': 'No module named \\'comfy_aimdo\\'\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 170, in execute\\n import comfy.model_management\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py\", line 34, in \\n import comfy_aimdo.vram_buffer\\nModuleNotFoundError: No module named \\'comfy_aimdo\\'\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\\n result = worker.call_method(\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n'], 'current_inputs': {'precision': ['auto']}, 'current_outputs': ['9', '8', '2', '7'], 'timestamp': 1778446348934}\n Details: Workflow: /tmp/comfy-test-run-frk8o1_6/ComfyUI-Sharp/workflows/sharp_exif.json\nNode error: LoadSharpModel", "hardware": {"os": "Linux-6.17.0-1010-azure-x86_64-with-glibc2.39", "cpu": "AMD EPYC 7763 64-Core Processor"}}}; + const workflowData = {"sharp_basic": {"src": "", "title": "sharp_basic", "status": "fail", "duration": "21.23", "log": "Capturing execution frames: sharp_basic.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n [ComfyUI] === /validate endpoint called ===\n [ComfyUI] === /validate endpoint called ===\n [ComfyUI] Received JSON with keys: ['prompt']\n [ComfyUI] Received JSON with keys: ['prompt']\n [ComfyUI] Prompt has 4 nodes\n [ComfyUI] Prompt has 4 nodes\n [ComfyUI] Node 1: LoadImage\n [ComfyUI] Node 1: LoadImage\n [ComfyUI] Inputs: {\"image\": \"beach.jpg\"}\n [ComfyUI] Inputs: {\"image\": \"beach.jpg\"}\n [ComfyUI] Node 2: LoadSharpModel\n [ComfyUI] Node 2: LoadSharpModel\n [ComfyUI] Inputs: {\"precision\": \"auto\"}\n [ComfyUI] Inputs: {\"precision\": \"auto\"}\n [ComfyUI] Node 4: GeomPackPreviewGaussian\n [ComfyUI] Node 4: GeomPackPreviewGaussian\n [ComfyUI] Inputs: {\"preview_gaussian\": \"\", \"ply_path\": [\"5\", 0], \"extrinsics\": [\"5\", 1], \"intrinsics\": [\"5\", 2]}\n [ComfyUI] Inputs: {\"preview_gaussian\": \"\", \"ply_path\": [\"5\", 0], \"extrinsics\": [\"5\", 1], \"intrinsics\": [\"5\", 2]}\n [ComfyUI] Node 5: SharpPredict\n [ComfyUI] Node 5: SharpPredict\n [ComfyUI] Inputs: {\"focal_length_mm\": 30, \"output_prefix\": \"sharp\", \"model\": [\"2\", 0], \"image\": [\"1\", 0]}\n [ComfyUI] Inputs: {\"focal_length_mm\": 30, \"output_prefix\": \"sharp\", \"model\": [\"2\", 0], \"image\": [\"1\", 0]}\n [ComfyUI] Generated prompt_id: 51fa9ff4-7a87-4e50-afea-54864870cb31\n [ComfyUI] Generated prompt_id: 51fa9ff4-7a87-4e50-afea-54864870cb31\n [ComfyUI] Calling execution.validate_prompt()...\n [ComfyUI] Calling execution.validate_prompt()...\n [ComfyUI] Validation result: valid=True\n [ComfyUI] Validation result: valid=True\n [ComfyUI] === Validation PASSED ===\n [ComfyUI] === Validation PASSED ===\n Queuing workflow for execution...\n [ComfyUI] got prompt\n [ComfyUI] got prompt\n [ComfyUI] [comfy-env] Running LoadSharpModel: precision: 'auto'\n [ComfyUI] [comfy-env] Running LoadSharpModel: precision: 'auto'\n [ComfyUI] [SubprocessWorker] call_method: nodes.load_model.LoadSharpModel.EXECUTE_NORMALIZED\n [ComfyUI] [SubprocessWorker] call_method: nodes.load_model.LoadSharpModel.EXECUTE_NORMALIZED\n [ComfyUI] [comfy-env] SubprocessWorker: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python\n [ComfyUI] [comfy-env] SubprocessWorker: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python\n [ComfyUI] [comfy-env] env_vars: {'COMFYUI_BASE': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI'}\n [ComfyUI] [comfy-env] env_vars: {'COMFYUI_BASE': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI'}\n [ComfyUI] [ComfyUI-Sharp] python: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python\n [ComfyUI] [ComfyUI-Sharp] python: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python\n [ComfyUI] [ComfyUI-Sharp] sys_path sent to worker: ['/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp']\n [ComfyUI] [ComfyUI-Sharp] sys_path sent to worker: ['/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp']\n [ComfyUI] [SubprocessWorker] acquired lock, ensuring started...\n [ComfyUI] [SubprocessWorker] acquired lock, ensuring started...\n [ComfyUI] [SubprocessWorker] is_pixi=True, python=/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python\n [ComfyUI] [SubprocessWorker] is_pixi=True, python=/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python\n [ComfyUI] [SubprocessWorker] launching cmd=['/home/runner/.pixi/bin/pixi', 'run', '--as-is', '--manifest-path', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/pixi.toml', '-e', 'sharp-nodes', 'python', '/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py', 'abstract://comfy_worker_0f5107705732']...\n [ComfyUI] [SubprocessWorker] launching cmd=['/home/runner/.pixi/bin/pixi', 'run', '--as-is', '--manifest-path', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/pixi.toml', '-e', 'sharp-nodes', 'python', '/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py', 'abstract://comfy_worker_0f5107705732']...\n [ComfyUI] [SubprocessWorker] socket_addr=abstract://comfy_worker_0f5107705732 (abstract, no filesystem path)\n [ComfyUI] [SubprocessWorker] socket_addr=abstract://comfy_worker_0f5107705732 (abstract, no filesystem path)\n [ComfyUI] [worker:ComfyUI-Sharp] ERROR: Failed to import comfy_kitchen, Error: No module named 'comfy_kitchen', fp8 and fp4 support will not be available.\n [ComfyUI] [worker:ComfyUI-Sharp] ERROR: Failed to import comfy_kitchen, Error: No module named 'comfy_kitchen', fp8 and fp4 support will not be available.\n [ComfyUI] [SubprocessWorker] worker started/confirmed\n [ComfyUI] [SubprocessWorker] worker started/confirmed\n [ComfyUI] [SubprocessWorker] serializing kwargs to shm...\n [ComfyUI] [SubprocessWorker] serializing kwargs to shm...\n [ComfyUI] [SubprocessWorker] created 0 shm blocks\n [ComfyUI] [SubprocessWorker] created 0 shm blocks\n [ComfyUI] [SubprocessWorker] sending request via socket...\n [ComfyUI] [SubprocessWorker] sending request via socket...\n [ComfyUI] [SubprocessWorker] call_id=1 sending call_method\n [ComfyUI] [SubprocessWorker] call_id=1 sending call_method\n [ComfyUI] \n [ComfyUI] \n Frame 2 saved (frame_001.jpg, t=2.4s)\n [capture-periodic] freeze=5ms shot=120ms unfreeze=2ms saved=True\n [ComfyUI] sharp_2572gikvuh.pt: 0%| | 0.00/2.81G [00:00\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py\", line 32, in \n [ComfyUI] import comfy.hooks\n [ComfyUI] import comfy.hooks\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py\", line 14, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py\", line 14, in \n [ComfyUI] import comfy.lora\n [ComfyUI] import comfy.lora\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py\", line 23, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py\", line 23, in \n [ComfyUI] import comfy.model_base\n [ComfyUI] import comfy.model_base\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py\", line 25, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py\", line 25, in \n [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\n [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py\", line 21, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py\", line 21, in \n [ComfyUI] from ..sdpose import HeatmapHead\n [ComfyUI] from ..sdpose import HeatmapHead\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py\", line 3, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py\", line 3, in \n [ComfyUI] from scipy.ndimage import gaussian_filter\n [ComfyUI] from scipy.ndimage import gaussian_filter\n [ComfyUI] ModuleNotFoundError: No module named 'scipy'\n [ComfyUI] ModuleNotFoundError: No module named 'scipy'\n [ComfyUI] \n [ComfyUI] \n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 535, in execute\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 535, in execute\n [ComfyUI] output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n [ComfyUI] output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 335, in get_output_data\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 335, in get_output_data\n [ComfyUI] return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n [ComfyUI] return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\n [ComfyUI] await process_inputs(input_dict, i)\n [ComfyUI] await process_inputs(input_dict, i)\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 297, in process_inputs\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 297, in process_inputs\n [ComfyUI] result = f(**inputs)\n [ComfyUI] result = f(**inputs)\n [ComfyUI] ^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\n [ComfyUI] result = worker.call_method(\n [ComfyUI] result = worker.call_method(\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\n [ComfyUI] raise WorkerError(\n [ComfyUI] raise WorkerError(\n [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'scipy'\n [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'scipy'\n [ComfyUI] \n [ComfyUI] \n [ComfyUI] Worker traceback:\n [ComfyUI] Worker traceback:\n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py\", line 1762, in main\n [ComfyUI] File \"/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py\", line 1762, in main\n [ComfyUI] result = method(**inputs)\n [ComfyUI] result = method(**inputs)\n [ComfyUI] ^^^^^^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\n [ComfyUI] to_return = cls.execute(*args, **kwargs)\n [ComfyUI] to_return = cls.execute(*args, **kwargs)\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py\", line 124, in decorate_context\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py\", line 124, in decorate_context\n [ComfyUI] return func(*args, **kwargs)\n [ComfyUI] return func(*args, **kwargs)\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py\", line 111, in execute\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py\", line 111, in execute\n [ComfyUI] patcher = _load_sharp_model(model)\n [ComfyUI] patcher = _load_sharp_model(model)\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 75, in _load_sharp_model\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 75, in _load_sharp_model\n [ComfyUI] import comfy.model_patcher\n [ComfyUI] import comfy.model_patcher\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py\", line 32, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py\", line 32, in \n [ComfyUI] import comfy.hooks\n [ComfyUI] import comfy.hooks\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py\", line 14, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py\", line 14, in \n [ComfyUI] import comfy.lora\n [ComfyUI] import comfy.lora\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py\", line 23, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py\", line 23, in \n [ComfyUI] import comfy.model_base\n [ComfyUI] import comfy.model_base\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py\", line 25, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py\", line 25, in \n [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\n [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py\", line 21, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py\", line 21, in \n [ComfyUI] from ..sdpose import HeatmapHead\n [ComfyUI] from ..sdpose import HeatmapHead\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py\", line 3, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py\", line 3, in \n [ComfyUI] from scipy.ndimage import gaussian_filter\n [ComfyUI] from scipy.ndimage import gaussian_filter\n [ComfyUI] ModuleNotFoundError: No module named 'scipy'\n [ComfyUI] ModuleNotFoundError: No module named 'scipy'\n [ComfyUI] \n [ComfyUI] \n [ComfyUI] \n [ComfyUI] \n [ComfyUI] Prompt executed in 14.46 seconds\n [ComfyUI] Prompt executed in 14.46 seconds\n Execution complete (t=15.1s)\n Execution error: {'prompt_id': '680e7efb-b7e3-4246-98ac-baa7a4da9ce6', 'node_id': '5', 'node_type': 'SharpPredict', 'executed': ['1', '2'], 'exception_message': 'No module named \\'scipy\\'\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n ^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py\", line 124, in decorate_context\\n return func(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py\", line 111, in execute\\n patcher = _load_sharp_model(model)\\n ^^^^^^^^^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 75, in _load_sharp_model\\n import comfy.model_patcher\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py\", line 32, in \\n import comfy.hooks\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py\", line 14, in \\n import comfy.lora\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py\", line 23, in \\n import comfy.model_base\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py\", line 25, in \\n from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py\", line 21, in \\n from ..sdpose import HeatmapHead\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py\", line 3, in \\n from scipy.ndimage import gaussian_filter\\nModuleNotFoundError: No module named \\'scipy\\'\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n ^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\\n result = worker.call_method(\\n ^^^^^^^^^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n'], 'current_inputs': {'focal_length_mm': [30], 'output_prefix': ['sharp'], 'model': [\"{'model_path': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/models/sharp/sharp_2572gikvuh.pt', 'precision': 'auto', 'dtype': 'fp32'}\"], 'image': ['tensor([[[[0.0039, 0.4824, 0.9569],\\n [0.0039, 0.4824, 0.9569],\\n [0.0039, 0.4824, 0.9569],\\n ...,\\n [0.0510, 0.0275, 0.0000],\\n [0.0510, 0.0275, 0.0000],\\n [0.0510, 0.0275, 0.0000]],\\n\\n [[0.0039, 0.4824, 0.9569],\\n [0.0039, 0.4824, 0.9569],\\n [0.0039, 0.4824, 0.9569],\\n ...,\\n [0.0510, 0.0275, 0.0000],\\n [0.0510, 0.0275, 0.0000],\\n [0.0510, 0.0275, 0.0000]],\\n\\n [[0.0039, 0.4824, 0.9569],\\n [0.0039, 0.4824, 0.9569],\\n [0.0039, 0.4824, 0.9569],\\n ...,\\n [0.0510, 0.0275, 0.0000],\\n [0.0510, 0.0275, 0.0000],\\n [0.0510, 0.0275, 0.0000]],\\n\\n ...,\\n\\n [[0.6824, 0.6118, 0.5333],\\n [0.6824, 0.6118, 0.5333],\\n [0.6824, 0.6118, 0.5333],\\n ...,\\n [0.5098, 0.4627, 0.4235],\\n [0.5098, 0.4627, 0.4235],\\n [0.5098, 0.4627, 0.4235]],\\n\\n [[0.6824, 0.6118, 0.5333],\\n [0.6824, 0.6118, 0.5333],\\n [0.6824, 0.6118, 0.5333],\\n ...,\\n [0.5059, 0.4588, 0.4392],\\n [0.5059, 0.4627, 0.4314],\\n [0.5059, 0.4627, 0.4314]],\\n\\n [[0.6824, 0.6118, 0.5333],\\n [0.6824, 0.6118, 0.5333],\\n [0.6824, 0.6118, 0.5333],\\n ...,\\n [0.5059, 0.4588, 0.4392],\\n [0.5059, 0.4627, 0.4314],\\n [0.5059, 0.4627, 0.4314]]]])'], 'prompt': [\"{'1': {'inputs': {'image': 'beach.jpg'}, 'class_type': 'LoadImage', '_meta': {'title': 'Load Image'}, 'is_changed': ['ee4f94632a5ec7038826e875829a62a81dc2a9b85ed59440f2eaa37b3704fa24']}, '2': {'inputs': {'precision': 'auto'}, 'class_type': 'LoadSharpModel', '_meta': {'title': '(Down)Load SHARP Model'}}, '4': {'inputs': {'preview_gaussian': '', 'ply_path': ['5', 0], 'extrinsics': ['5', 1], 'intrinsics': ['5', 2]}, 'class_type': 'GeomPackPreviewGaussian', '_meta': {'title': 'Preview Gaussian'}}, '5': {'inputs': {'focal_length_mm': 30.0, 'output_prefix': 'sharp', 'model': ['2', 0], 'image': ['1', 0]}, 'class_type': 'SharpPredict', '_meta': {'title': 'SHARP Predict (Image to PLY)'}}}\"], 'extra_pnginfo': [\"{'workflow': {'id': 'sharp-basic-workflow', 'revision': 0, 'last_node_id': 5, 'last_link_id': 10, 'nodes': [{'id': 2, 'type': 'LoadSharpModel', 'pos': [-150, -400], 'size': [270, 106.65625], 'flags': {}, 'order': 0, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'model_config', 'type': 'SHARP_MODEL_CONFIG', 'links': [6]}], 'properties': {'Node name for S&R': 'LoadSharpModel', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': '9f1b9c726e2cfc0118866c3df783e7f6bc895226'}, 'widgets_values': ['auto']}, {'id': 1, 'type': 'LoadImage', 'pos': [-150, -100], 'size': [274, 340], 'flags': {}, 'order': 1, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'IMAGE', 'type': 'IMAGE', 'links': [7]}, {'name': 'MASK', 'type': 'MASK', 'links': []}], 'properties': {'Node name for S&R': 'LoadImage', 'cnr_id': 'comfy-core', 'ver': '0.5.1'}, 'widgets_values': ['beach.jpg', 'image']}, {'id': 5, 'type': 'SharpPredict', 'pos': [181.546875, -251.55078125], 'size': [298.890625, 212], 'flags': {}, 'order': 2, 'mode': 0, 'inputs': [{'name': 'model', 'type': 'SHARP_MODEL_CONFIG', 'link': 6}, {'name': 'image', 'type': 'IMAGE', 'link': 7}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': None}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': None}], 'outputs': [{'name': 'ply_path', 'type': 'STRING', 'links': [8]}, {'name': 'extrinsics', 'type': 'EXTRINSICS', 'links': [9]}, {'name': 'intrinsics', 'type': 'INTRINSICS', 'links': [10]}], 'properties': {'Node name for S&R': 'SharpPredict', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'aa98b213e3d0770477bbf46046094c5cb8ff6052'}, 'widgets_values': [30, 'sharp']}, {'id': 4, 'type': 'GeomPackPreviewGaussian', 'pos': [629.92578125, -322.046875], 'size': [512, 658], 'flags': {}, 'order': 3, 'mode': 0, 'inputs': [{'name': 'ply_path', 'type': 'STRING', 'link': 8}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': 9}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': 10}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewGaussian', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack', 'ver': 'b7df285fc5b3fef7aad434d8b6e8698efed6358b', 'cnr_id': 'comfyui-geometrypack'}, 'widgets_values': ['']}], 'links': [[6, 2, 0, 5, 0, 'SHARP_MODEL'], [7, 1, 0, 5, 1, 'IMAGE'], [8, 5, 0, 4, 0, 'STRING'], [9, 5, 1, 4, 1, 'EXTRINSICS'], [10, 5, 2, 4, 2, 'INTRINSICS']], 'groups': [], 'config': {}, 'extra': {'ds': {'scale': 1, 'offset': [300.79296875, 604.72265625]}, 'workflowRendererVersion': 'LG', 'frontendVersion': '1.43.18'}, 'version': 0.4}}\"]}, 'current_outputs': ['1', '2', '5', '4'], 'timestamp': 1778448202982}\n Status: FAILED\n Error: Workflow execution failed: {'prompt_id': '680e7efb-b7e3-4246-98ac-baa7a4da9ce6', 'node_id': '5', 'node_type': 'SharpPredict', 'executed': ['1', '2'], 'exception_message': 'No module named \\'scipy\\'\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n ^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py\", line 124, in decorate_context\\n return func(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py\", line 111, in execute\\n patcher = _load_sharp_model(model)\\n ^^^^^^^^^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 75, in _load_sharp_model\\n import comfy.model_patcher\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py\", line 32, in \\n import comfy.hooks\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py\", line 14, in \\n import comfy.lora\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py\", line 23, in \\n import comfy.model_base\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py\", line 25, in \\n from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py\", line 21, in \\n from ..sdpose import HeatmapHead\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py\", line 3, in \\n from scipy.ndimage import gaussian_filter\\nModuleNotFoundError: No module named \\'scipy\\'\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n ^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\\n result = worker.call_method(\\n ^^^^^^^^^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n'], 'current_inputs': {'focal_length_mm': [30], 'output_prefix': ['sharp'], 'model': [\"{'model_path': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/models/sharp/sharp_2572gikvuh.pt', 'precision': 'auto', 'dtype': 'fp32'}\"], 'image': ['tensor([[[[0.0039, 0.4824, 0.9569],\\n [0.0039, 0.4824, 0.9569],\\n [0.0039, 0.4824, 0.9569],\\n ...,\\n [0.0510, 0.0275, 0.0000],\\n [0.0510, 0.0275, 0.0000],\\n [0.0510, 0.0275, 0.0000]],\\n\\n [[0.0039, 0.4824, 0.9569],\\n [0.0039, 0.4824, 0.9569],\\n [0.0039, 0.4824, 0.9569],\\n ...,\\n [0.0510, 0.0275, 0.0000],\\n [0.0510, 0.0275, 0.0000],\\n [0.0510, 0.0275, 0.0000]],\\n\\n [[0.0039, 0.4824, 0.9569],\\n [0.0039, 0.4824, 0.9569],\\n [0.0039, 0.4824, 0.9569],\\n ...,\\n [0.0510, 0.0275, 0.0000],\\n [0.0510, 0.0275, 0.0000],\\n [0.0510, 0.0275, 0.0000]],\\n\\n ...,\\n\\n [[0.6824, 0.6118, 0.5333],\\n [0.6824, 0.6118, 0.5333],\\n [0.6824, 0.6118, 0.5333],\\n ...,\\n [0.5098, 0.4627, 0.4235],\\n [0.5098, 0.4627, 0.4235],\\n [0.5098, 0.4627, 0.4235]],\\n\\n [[0.6824, 0.6118, 0.5333],\\n [0.6824, 0.6118, 0.5333],\\n [0.6824, 0.6118, 0.5333],\\n ...,\\n [0.5059, 0.4588, 0.4392],\\n [0.5059, 0.4627, 0.4314],\\n [0.5059, 0.4627, 0.4314]],\\n\\n [[0.6824, 0.6118, 0.5333],\\n [0.6824, 0.6118, 0.5333],\\n [0.6824, 0.6118, 0.5333],\\n ...,\\n [0.5059, 0.4588, 0.4392],\\n [0.5059, 0.4627, 0.4314],\\n [0.5059, 0.4627, 0.4314]]]])'], 'prompt': [\"{'1': {'inputs': {'image': 'beach.jpg'}, 'class_type': 'LoadImage', '_meta': {'title': 'Load Image'}, 'is_changed': ['ee4f94632a5ec7038826e875829a62a81dc2a9b85ed59440f2eaa37b3704fa24']}, '2': {'inputs': {'precision': 'auto'}, 'class_type': 'LoadSharpModel', '_meta': {'title': '(Down)Load SHARP Model'}}, '4': {'inputs': {'preview_gaussian': '', 'ply_path': ['5', 0], 'extrinsics': ['5', 1], 'intrinsics': ['5', 2]}, 'class_type': 'GeomPackPreviewGaussian', '_meta': {'title': 'Preview Gaussian'}}, '5': {'inputs': {'focal_length_mm': 30.0, 'output_prefix': 'sharp', 'model': ['2', 0], 'image': ['1', 0]}, 'class_type': 'SharpPredict', '_meta': {'title': 'SHARP Predict (Image to PLY)'}}}\"], 'extra_pnginfo': [\"{'workflow': {'id': 'sharp-basic-workflow', 'revision': 0, 'last_node_id': 5, 'last_link_id': 10, 'nodes': [{'id': 2, 'type': 'LoadSharpModel', 'pos': [-150, -400], 'size': [270, 106.65625], 'flags': {}, 'order': 0, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'model_config', 'type': 'SHARP_MODEL_CONFIG', 'links': [6]}], 'properties': {'Node name for S&R': 'LoadSharpModel', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': '9f1b9c726e2cfc0118866c3df783e7f6bc895226'}, 'widgets_values': ['auto']}, {'id': 1, 'type': 'LoadImage', 'pos': [-150, -100], 'size': [274, 340], 'flags': {}, 'order': 1, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'IMAGE', 'type': 'IMAGE', 'links': [7]}, {'name': 'MASK', 'type': 'MASK', 'links': []}], 'properties': {'Node name for S&R': 'LoadImage', 'cnr_id': 'comfy-core', 'ver': '0.5.1'}, 'widgets_values': ['beach.jpg', 'image']}, {'id': 5, 'type': 'SharpPredict', 'pos': [181.546875, -251.55078125], 'size': [298.890625, 212], 'flags': {}, 'order': 2, 'mode': 0, 'inputs': [{'name': 'model', 'type': 'SHARP_MODEL_CONFIG', 'link': 6}, {'name': 'image', 'type': 'IMAGE', 'link': 7}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': None}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': None}], 'outputs': [{'name': 'ply_path', 'type': 'STRING', 'links': [8]}, {'name': 'extrinsics', 'type': 'EXTRINSICS', 'links': [9]}, {'name': 'intrinsics', 'type': 'INTRINSICS', 'links': [10]}], 'properties': {'Node name for S&R': 'SharpPredict', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'aa98b213e3d0770477bbf46046094c5cb8ff6052'}, 'widgets_values': [30, 'sharp']}, {'id': 4, 'type': 'GeomPackPreviewGaussian', 'pos': [629.92578125, -322.046875], 'size': [512, 658], 'flags': {}, 'order': 3, 'mode': 0, 'inputs': [{'name': 'ply_path', 'type': 'STRING', 'link': 8}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': 9}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': 10}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewGaussian', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack', 'ver': 'b7df285fc5b3fef7aad434d8b6e8698efed6358b', 'cnr_id': 'comfyui-geometrypack'}, 'widgets_values': ['']}], 'links': [[6, 2, 0, 5, 0, 'SHARP_MODEL'], [7, 1, 0, 5, 1, 'IMAGE'], [8, 5, 0, 4, 0, 'STRING'], [9, 5, 1, 4, 1, 'EXTRINSICS'], [10, 5, 2, 4, 2, 'INTRINSICS']], 'groups': [], 'config': {}, 'extra': {'ds': {'scale': 1, 'offset': [300.79296875, 604.72265625]}, 'workflowRendererVersion': 'LG', 'frontendVersion': '1.43.18'}, 'version': 0.4}}\"]}, 'current_outputs': ['1', '2', '5', '4'], 'timestamp': 1778448202982}\n Details: Workflow: /tmp/comfy-test-run-25wt5ji7/ComfyUI-Sharp/workflows/sharp_basic.json\nNode error: SharpPredict", "hardware": {"os": "Linux-6.17.0-1010-azure-x86_64-with-glibc2.39", "cpu": "AMD EPYC 7763 64-Core Processor"}}, "sharp_exif": {"src": "", "title": "sharp_exif", "status": "fail", "duration": "6.37", "log": "Capturing execution frames: sharp_exif.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n [ComfyUI] === /validate endpoint called ===\n [ComfyUI] === /validate endpoint called ===\n [ComfyUI] Received JSON with keys: ['prompt']\n [ComfyUI] Received JSON with keys: ['prompt']\n [ComfyUI] Prompt has 4 nodes\n [ComfyUI] Prompt has 4 nodes\n [ComfyUI] Node 2: LoadSharpModel\n [ComfyUI] Node 2: LoadSharpModel\n Queuing workflow for execution...\n [ComfyUI] Inputs: {\"precision\": \"auto\"}\n [ComfyUI] Inputs: {\"precision\": \"auto\"}\n [ComfyUI] Node 7: SharpPredict\n [ComfyUI] Node 7: SharpPredict\n [ComfyUI] Inputs: {\"focal_length_mm\": [\"9\", 2], \"output_prefix\": \"sharp\", \"model\": [\"2\", 0], \"image\": [\"9\", 0]}\n [ComfyUI] Inputs: {\"focal_length_mm\": [\"9\", 2], \"output_prefix\": \"sharp\", \"model\": [\"2\", 0], \"image\": [\"9\", 0]}\n [ComfyUI] Node 8: GeomPackPreviewGaussian\n [ComfyUI] Node 8: GeomPackPreviewGaussian\n [ComfyUI] Inputs: {\"preview_gaussian\": \"\", \"ply_path\": [\"7\", 0], \"extrinsics\": [\"7\", 1], \"intrinsics\": [\"7\", 2]}\n [ComfyUI] Inputs: {\"preview_gaussian\": \"\", \"ply_path\": [\"7\", 0], \"extrinsics\": [\"7\", 1], \"intrinsics\": [\"7\", 2]}\n [ComfyUI] Node 9: LoadImageWithExif\n [ComfyUI] Node 9: LoadImageWithExif\n [ComfyUI] Inputs: {\"image\": \"eth3d.png\", \"default_focal_mm\": 30}\n [ComfyUI] Inputs: {\"image\": \"eth3d.png\", \"default_focal_mm\": 30}\n [ComfyUI] Generated prompt_id: e1e5db64-9ff1-4f8a-b8ff-d68adb858593\n [ComfyUI] Generated prompt_id: e1e5db64-9ff1-4f8a-b8ff-d68adb858593\n [ComfyUI] Calling execution.validate_prompt()...\n [ComfyUI] Calling execution.validate_prompt()...\n [ComfyUI] Validation result: valid=True\n [ComfyUI] Validation result: valid=True\n [ComfyUI] === Validation PASSED ===\n [ComfyUI] === Validation PASSED ===\n [ComfyUI] got prompt\n [ComfyUI] got prompt\n [ComfyUI] [comfy-env] Running LoadImageWithExif: image: 'eth3d.png', default_focal_mm: 30.0\n [ComfyUI] [comfy-env] Running LoadImageWithExif: image: 'eth3d.png', default_focal_mm: 30.0\n [ComfyUI] [SubprocessWorker] call_method: nodes.load_image_exif.LoadImageWithExif.EXECUTE_NORMALIZED\n [ComfyUI] [SubprocessWorker] call_method: nodes.load_image_exif.LoadImageWithExif.EXECUTE_NORMALIZED\n [ComfyUI] [SubprocessWorker] acquired lock, ensuring started...\n [ComfyUI] [SubprocessWorker] acquired lock, ensuring started...\n [ComfyUI] [ComfyUI-Sharp] Health check: ping (timeout=5.0s)...\n [ComfyUI] [ComfyUI-Sharp] Health check: ping (timeout=5.0s)...\n [ComfyUI] [ComfyUI-Sharp] Health check: ok\n [ComfyUI] [ComfyUI-Sharp] Health check: ok\n [ComfyUI] [SubprocessWorker] worker started/confirmed\n [ComfyUI] [SubprocessWorker] worker started/confirmed\n [ComfyUI] [SubprocessWorker] serializing kwargs to shm...\n [ComfyUI] [SubprocessWorker] serializing kwargs to shm...\n [ComfyUI] [SubprocessWorker] created 0 shm blocks\n [ComfyUI] [SubprocessWorker] created 0 shm blocks\n [ComfyUI] [SubprocessWorker] sending request via socket...\n [ComfyUI] [SubprocessWorker] sending request via socket...\n [ComfyUI] [SubprocessWorker] call_id=3 sending call_method\n [ComfyUI] [SubprocessWorker] call_id=3 sending call_method\n [ComfyUI] [SubprocessWorker] got response: ok\n [ComfyUI] [SubprocessWorker] got response: ok\n [ComfyUI] [comfy-env] LoadImageWithExif done (0.29s): result: NodeOutput\n [ComfyUI] [comfy-env] LoadImageWithExif done (0.29s): result: NodeOutput\n [ComfyUI] [comfy-env] Running LoadSharpModel: precision: 'auto'\n [ComfyUI] [comfy-env] Running LoadSharpModel: precision: 'auto'\n [ComfyUI] [SubprocessWorker] call_method: nodes.load_model.LoadSharpModel.EXECUTE_NORMALIZED\n [ComfyUI] [SubprocessWorker] call_method: nodes.load_model.LoadSharpModel.EXECUTE_NORMALIZED\n [ComfyUI] [SubprocessWorker] acquired lock, ensuring started...\n [ComfyUI] [SubprocessWorker] acquired lock, ensuring started...\n [ComfyUI] [ComfyUI-Sharp] Health check: ping (timeout=5.0s)...\n [ComfyUI] [ComfyUI-Sharp] Health check: ping (timeout=5.0s)...\n [ComfyUI] [ComfyUI-Sharp] Health check: ok\n [ComfyUI] [ComfyUI-Sharp] Health check: ok\n [ComfyUI] [SubprocessWorker] worker started/confirmed\n [ComfyUI] [SubprocessWorker] worker started/confirmed\n [ComfyUI] [SubprocessWorker] serializing kwargs to shm...\n [ComfyUI] [SubprocessWorker] serializing kwargs to shm...\n [ComfyUI] [SubprocessWorker] created 0 shm blocks\n [ComfyUI] [SubprocessWorker] created 0 shm blocks\n [ComfyUI] [SubprocessWorker] sending request via socket...\n [ComfyUI] [SubprocessWorker] sending request via socket...\n [ComfyUI] [SubprocessWorker] call_id=4 sending call_method\n [ComfyUI] [SubprocessWorker] call_id=4 sending call_method\n [ComfyUI] [SubprocessWorker] got response: ok\n [ComfyUI] [SubprocessWorker] got response: ok\n [ComfyUI] [comfy-env] LoadSharpModel done (0.11s): result: NodeOutput\n [ComfyUI] [comfy-env] LoadSharpModel done (0.11s): result: NodeOutput\n [ComfyUI] [comfy-env] Running SharpPredict: focal_length_mm: 20.0, output_prefix: 'sharp', model: dict, image: torch.float32 [1,2022,3040,3] cpu\n [ComfyUI] [comfy-env] Running SharpPredict: focal_length_mm: 20.0, output_prefix: 'sharp', model: dict, image: torch.float32 [1,2022,3040,3] cpu\n [ComfyUI] [SubprocessWorker] call_method: nodes.predict.SharpPredict.EXECUTE_NORMALIZED\n [ComfyUI] [SubprocessWorker] call_method: nodes.predict.SharpPredict.EXECUTE_NORMALIZED\n [ComfyUI] [SubprocessWorker] acquired lock, ensuring started...\n [ComfyUI] [SubprocessWorker] acquired lock, ensuring started...\n [ComfyUI] [ComfyUI-Sharp] Health check: ping (timeout=5.0s)...\n [ComfyUI] [ComfyUI-Sharp] Health check: ping (timeout=5.0s)...\n [ComfyUI] [ComfyUI-Sharp] Health check: ok\n [ComfyUI] [ComfyUI-Sharp] Health check: ok\n [ComfyUI] [SubprocessWorker] worker started/confirmed\n [ComfyUI] [SubprocessWorker] worker started/confirmed\n [ComfyUI] [comfy-env] PRE-SERIALIZE 'image' shape: torch.Size([1, 2022, 3040, 3])\n [ComfyUI] [comfy-env] PRE-SERIALIZE 'image' shape: torch.Size([1, 2022, 3040, 3])\n [ComfyUI] [SubprocessWorker] serializing kwargs to shm...\n [ComfyUI] [SubprocessWorker] serializing kwargs to shm...\n [ComfyUI] [SubprocessWorker] created 0 shm blocks\n [ComfyUI] [SubprocessWorker] created 0 shm blocks\n [ComfyUI] [SubprocessWorker] sending request via socket...\n [ComfyUI] [SubprocessWorker] sending request via socket...\n [ComfyUI] [SubprocessWorker] call_id=5 sending call_method\n [ComfyUI] [SubprocessWorker] call_id=5 sending call_method\n [ComfyUI] [worker:ComfyUI-Sharp] [comfy-env] _from_shm got dict with keys: ['__type__', 'strategy', 'parent_pid', 'fd', 'storage_size']\n [ComfyUI] [worker:ComfyUI-Sharp] [comfy-env] _from_shm got dict with keys: ['__type__', 'strategy', 'parent_pid', 'fd', 'storage_size']\n [ComfyUI] [worker:ComfyUI-Sharp] [comfy-env] DESERIALIZE TensorRef: tensor_size=[1, 2022, 3040, 3]\n [ComfyUI] [worker:ComfyUI-Sharp] [comfy-env] DESERIALIZE TensorRef: tensor_size=[1, 2022, 3040, 3]\n [ComfyUI] [worker:ComfyUI-Sharp] [comfy-env] DESERIALIZED tensor shape: torch.Size([1, 2022, 3040, 3])\n [ComfyUI] [worker:ComfyUI-Sharp] [comfy-env] DESERIALIZED tensor shape: torch.Size([1, 2022, 3040, 3])\n [ComfyUI] [SubprocessWorker] got response: error\n [ComfyUI] [SubprocessWorker] got response: error\n [ComfyUI] !!! Exception during processing !!! No module named 'scipy'\n [ComfyUI] !!! Exception during processing !!! No module named 'scipy'\n [ComfyUI] \n [ComfyUI] \n [ComfyUI] Worker traceback:\n [ComfyUI] Worker traceback:\n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py\", line 1762, in main\n [ComfyUI] File \"/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py\", line 1762, in main\n [ComfyUI] result = method(**inputs)\n [ComfyUI] result = method(**inputs)\n [ComfyUI] ^^^^^^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\n [ComfyUI] to_return = cls.execute(*args, **kwargs)\n [ComfyUI] to_return = cls.execute(*args, **kwargs)\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py\", line 124, in decorate_context\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py\", line 124, in decorate_context\n [ComfyUI] return func(*args, **kwargs)\n [ComfyUI] return func(*args, **kwargs)\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py\", line 111, in execute\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py\", line 111, in execute\n [ComfyUI] patcher = _load_sharp_model(model)\n [ComfyUI] patcher = _load_sharp_model(model)\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 75, in _load_sharp_model\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 75, in _load_sharp_model\n [ComfyUI] import comfy.model_patcher\n [ComfyUI] import comfy.model_patcher\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py\", line 32, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py\", line 32, in \n [ComfyUI] import comfy.hooks\n [ComfyUI] import comfy.hooks\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py\", line 14, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py\", line 14, in \n [ComfyUI] import comfy.lora\n [ComfyUI] import comfy.lora\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py\", line 23, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py\", line 23, in \n [ComfyUI] import comfy.model_base\n [ComfyUI] import comfy.model_base\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py\", line 25, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py\", line 25, in \n [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\n [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py\", line 21, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py\", line 21, in \n [ComfyUI] from ..sdpose import HeatmapHead\n [ComfyUI] from ..sdpose import HeatmapHead\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py\", line 3, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py\", line 3, in \n [ComfyUI] from scipy.ndimage import gaussian_filter\n [ComfyUI] from scipy.ndimage import gaussian_filter\n [ComfyUI] ModuleNotFoundError: No module named 'scipy'\n [ComfyUI] ModuleNotFoundError: No module named 'scipy'\n [ComfyUI] \n [ComfyUI] \n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 535, in execute\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 535, in execute\n [ComfyUI] output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n [ComfyUI] output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 335, in get_output_data\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 335, in get_output_data\n [ComfyUI] return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n [ComfyUI] return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\n [ComfyUI] await process_inputs(input_dict, i)\n [ComfyUI] await process_inputs(input_dict, i)\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 297, in process_inputs\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 297, in process_inputs\n [ComfyUI] result = f(**inputs)\n [ComfyUI] result = f(**inputs)\n [ComfyUI] ^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\n [ComfyUI] result = worker.call_method(\n [ComfyUI] result = worker.call_method(\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\n [ComfyUI] raise WorkerError(\n [ComfyUI] raise WorkerError(\n [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'scipy'\n [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'scipy'\n [ComfyUI] \n [ComfyUI] \n [ComfyUI] Worker traceback:\n [ComfyUI] Worker traceback:\n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py\", line 1762, in main\n [ComfyUI] File \"/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py\", line 1762, in main\n [ComfyUI] result = method(**inputs)\n [ComfyUI] result = method(**inputs)\n [ComfyUI] ^^^^^^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\n [ComfyUI] to_return = cls.execute(*args, **kwargs)\n [ComfyUI] to_return = cls.execute(*args, **kwargs)\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py\", line 124, in decorate_context\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py\", line 124, in decorate_context\n [ComfyUI] return func(*args, **kwargs)\n [ComfyUI] return func(*args, **kwargs)\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py\", line 111, in execute\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py\", line 111, in execute\n [ComfyUI] patcher = _load_sharp_model(model)\n [ComfyUI] patcher = _load_sharp_model(model)\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 75, in _load_sharp_model\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 75, in _load_sharp_model\n [ComfyUI] import comfy.model_patcher\n [ComfyUI] import comfy.model_patcher\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py\", line 32, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py\", line 32, in \n [ComfyUI] import comfy.hooks\n [ComfyUI] import comfy.hooks\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py\", line 14, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py\", line 14, in \n [ComfyUI] import comfy.lora\n [ComfyUI] import comfy.lora\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py\", line 23, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py\", line 23, in \n [ComfyUI] import comfy.model_base\n [ComfyUI] import comfy.model_base\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py\", line 25, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py\", line 25, in \n [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\n [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py\", line 21, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py\", line 21, in \n [ComfyUI] from ..sdpose import HeatmapHead\n [ComfyUI] from ..sdpose import HeatmapHead\n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py\", line 3, in \n [ComfyUI] File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py\", line 3, in \n [ComfyUI] from scipy.ndimage import gaussian_filter\n [ComfyUI] from scipy.ndimage import gaussian_filter\n [ComfyUI] ModuleNotFoundError: No module named 'scipy'\n [ComfyUI] ModuleNotFoundError: No module named 'scipy'\n [ComfyUI] \n [ComfyUI] \n [ComfyUI] \n [ComfyUI] \n [ComfyUI] Prompt executed in 0.46 seconds\n [ComfyUI] Prompt executed in 0.46 seconds\n Execution complete (t=0.7s)\n Execution error: {'prompt_id': '17b4c6a0-5277-443b-9e4a-9650d557d2fd', 'node_id': '7', 'node_type': 'SharpPredict', 'executed': ['2', '9'], 'exception_message': 'No module named \\'scipy\\'\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n ^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py\", line 124, in decorate_context\\n return func(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py\", line 111, in execute\\n patcher = _load_sharp_model(model)\\n ^^^^^^^^^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 75, in _load_sharp_model\\n import comfy.model_patcher\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py\", line 32, in \\n import comfy.hooks\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py\", line 14, in \\n import comfy.lora\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py\", line 23, in \\n import comfy.model_base\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py\", line 25, in \\n from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py\", line 21, in \\n from ..sdpose import HeatmapHead\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py\", line 3, in \\n from scipy.ndimage import gaussian_filter\\nModuleNotFoundError: No module named \\'scipy\\'\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n ^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\\n result = worker.call_method(\\n ^^^^^^^^^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n'], 'current_inputs': {'focal_length_mm': [20], 'output_prefix': ['sharp'], 'model': [\"{'model_path': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/models/sharp/sharp_2572gikvuh.pt', 'precision': 'auto', 'dtype': 'fp32'}\"], 'image': ['tensor([[[[0.2157, 0.1647, 0.1569],\\n [0.2275, 0.1608, 0.1608],\\n [0.2275, 0.1647, 0.1529],\\n ...,\\n [0.4471, 0.4745, 0.4863],\\n [0.4510, 0.4745, 0.4863],\\n [0.4431, 0.4745, 0.4745]],\\n\\n [[0.2196, 0.1686, 0.1569],\\n [0.2314, 0.1647, 0.1608],\\n [0.2353, 0.1647, 0.1647],\\n ...,\\n [0.4549, 0.4784, 0.4706],\\n [0.4549, 0.4706, 0.4784],\\n [0.4431, 0.4706, 0.4667]],\\n\\n [[0.2314, 0.1725, 0.1569],\\n [0.2510, 0.1725, 0.1608],\\n [0.2392, 0.1725, 0.1686],\\n ...,\\n [0.4588, 0.4745, 0.4627],\\n [0.4510, 0.4745, 0.4667],\\n [0.4471, 0.4706, 0.4627]],\\n\\n ...,\\n\\n [[0.1569, 0.1647, 0.1843],\\n [0.1647, 0.1725, 0.1882],\\n [0.1490, 0.1686, 0.1922],\\n ...,\\n [0.1020, 0.1137, 0.1373],\\n [0.1137, 0.1176, 0.1412],\\n [0.0863, 0.1176, 0.1373]],\\n\\n [[0.1569, 0.1686, 0.1804],\\n [0.1569, 0.1647, 0.1961],\\n [0.1490, 0.1647, 0.1961],\\n ...,\\n [0.1059, 0.1216, 0.1294],\\n [0.1176, 0.1216, 0.1333],\\n [0.1059, 0.1137, 0.1373]],\\n\\n [[0.1608, 0.1686, 0.1843],\\n [0.1608, 0.1686, 0.1882],\\n [0.1569, 0.1686, 0.1882],\\n ...,\\n [0.1059, 0.1176, 0.1333],\\n [0.1137, 0.1176, 0.1333],\\n [0.1333, 0.1176, 0.1333]]]])'], 'prompt': [\"{'2': {'inputs': {'precision': 'auto'}, 'class_type': 'LoadSharpModel', '_meta': {'title': '(Down)Load SHARP Model'}}, '7': {'inputs': {'focal_length_mm': ['9', 2], 'output_prefix': 'sharp', 'model': ['2', 0], 'image': ['9', 0]}, 'class_type': 'SharpPredict', '_meta': {'title': 'SHARP Predict (Image to PLY)'}}, '8': {'inputs': {'preview_gaussian': '', 'ply_path': ['7', 0], 'extrinsics': ['7', 1], 'intrinsics': ['7', 2]}, 'class_type': 'GeomPackPreviewGaussian', '_meta': {'title': 'Preview Gaussian'}}, '9': {'inputs': {'image': 'eth3d.png', 'default_focal_mm': 30.0}, 'class_type': 'LoadImageWithExif', '_meta': {'title': 'Load Image with EXIF (Focal Length)'}}}\"], 'extra_pnginfo': [\"{'workflow': {'id': 'sharp-basic-workflow', 'revision': 0, 'last_node_id': 10, 'last_link_id': 21, 'nodes': [{'id': 2, 'type': 'LoadSharpModel', 'pos': [-150, -400], 'size': [270, 106.65625], 'flags': {}, 'order': 0, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'model_config', 'type': 'SHARP_MODEL_CONFIG', 'links': [11]}], 'properties': {'Node name for S&R': 'LoadSharpModel', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': '9f1b9c726e2cfc0118866c3df783e7f6bc895226'}, 'widgets_values': ['auto']}, {'id': 9, 'type': 'LoadImageWithExif', 'pos': [-208.74978010739324, -99.02778023242435], 'size': [342.28125, 420], 'flags': {}, 'order': 1, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'image', 'type': 'IMAGE', 'links': [19]}, {'name': 'mask', 'type': 'MASK', 'links': None}, {'name': 'focal_length_mm', 'type': 'FLOAT', 'links': [20]}], 'properties': {'Node name for S&R': 'LoadImageWithExif', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'c69751a59b587c3b83d0e37cfe2bab3bc838574a'}, 'widgets_values': ['eth3d.png', 30, 'image']}, {'id': 7, 'type': 'SharpPredict', 'pos': [226.15696022727278, -245.70490056818184], 'size': [298.890625, 212], 'flags': {}, 'order': 2, 'mode': 0, 'inputs': [{'name': 'model', 'type': 'SHARP_MODEL_CONFIG', 'link': 11}, {'name': 'image', 'type': 'IMAGE', 'link': 19}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': None}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': None}, {'name': 'focal_length_mm', 'shape': 7, 'type': 'FLOAT', 'widget': {'name': 'focal_length_mm'}, 'link': 20}], 'outputs': [{'name': 'ply_path', 'type': 'STRING', 'links': [16]}, {'name': 'extrinsics', 'type': 'EXTRINSICS', 'links': [17]}, {'name': 'intrinsics', 'type': 'INTRINSICS', 'links': [18]}], 'properties': {'Node name for S&R': 'SharpPredict', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'c69751a59b587c3b83d0e37cfe2bab3bc838574a'}, 'widgets_values': [30, 'sharp']}, {'id': 8, 'type': 'GeomPackPreviewGaussian', 'pos': [641.9426914835157, -275.49795068697], 'size': [512, 658], 'flags': {}, 'order': 3, 'mode': 0, 'inputs': [{'name': 'ply_path', 'type': 'STRING', 'link': 16}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': 17}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': 18}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewGaussian', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack', 'ver': 'df6bf3d73d0dda9c6ad7428eb58a00dc8cbaf6ed', 'cnr_id': 'comfyui-geometrypack'}, 'widgets_values': ['']}], 'links': [[11, 2, 0, 7, 0, 'SHARP_MODEL'], [16, 7, 0, 8, 0, 'STRING'], [17, 7, 1, 8, 1, 'EXTRINSICS'], [18, 7, 2, 8, 2, 'INTRINSICS'], [19, 9, 0, 7, 1, 'IMAGE'], [20, 9, 2, 7, 4, 'FLOAT']], 'groups': [], 'config': {}, 'extra': {'ds': {'scale': 1.1, 'offset': [292.8560303656579, 525.3669699599554]}, 'workflowRendererVersion': 'LG', 'frontendVersion': '1.43.18'}, 'version': 0.4}}\"]}, 'current_outputs': ['7', '8', '2', '9'], 'timestamp': 1778448210087}\n Status: FAILED\n Error: Workflow execution failed: {'prompt_id': '17b4c6a0-5277-443b-9e4a-9650d557d2fd', 'node_id': '7', 'node_type': 'SharpPredict', 'executed': ['2', '9'], 'exception_message': 'No module named \\'scipy\\'\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n ^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py\", line 124, in decorate_context\\n return func(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py\", line 111, in execute\\n patcher = _load_sharp_model(model)\\n ^^^^^^^^^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 75, in _load_sharp_model\\n import comfy.model_patcher\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py\", line 32, in \\n import comfy.hooks\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py\", line 14, in \\n import comfy.lora\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py\", line 23, in \\n import comfy.model_base\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py\", line 25, in \\n from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py\", line 21, in \\n from ..sdpose import HeatmapHead\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py\", line 3, in \\n from scipy.ndimage import gaussian_filter\\nModuleNotFoundError: No module named \\'scipy\\'\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n ^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\\n result = worker.call_method(\\n ^^^^^^^^^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n'], 'current_inputs': {'focal_length_mm': [20], 'output_prefix': ['sharp'], 'model': [\"{'model_path': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/models/sharp/sharp_2572gikvuh.pt', 'precision': 'auto', 'dtype': 'fp32'}\"], 'image': ['tensor([[[[0.2157, 0.1647, 0.1569],\\n [0.2275, 0.1608, 0.1608],\\n [0.2275, 0.1647, 0.1529],\\n ...,\\n [0.4471, 0.4745, 0.4863],\\n [0.4510, 0.4745, 0.4863],\\n [0.4431, 0.4745, 0.4745]],\\n\\n [[0.2196, 0.1686, 0.1569],\\n [0.2314, 0.1647, 0.1608],\\n [0.2353, 0.1647, 0.1647],\\n ...,\\n [0.4549, 0.4784, 0.4706],\\n [0.4549, 0.4706, 0.4784],\\n [0.4431, 0.4706, 0.4667]],\\n\\n [[0.2314, 0.1725, 0.1569],\\n [0.2510, 0.1725, 0.1608],\\n [0.2392, 0.1725, 0.1686],\\n ...,\\n [0.4588, 0.4745, 0.4627],\\n [0.4510, 0.4745, 0.4667],\\n [0.4471, 0.4706, 0.4627]],\\n\\n ...,\\n\\n [[0.1569, 0.1647, 0.1843],\\n [0.1647, 0.1725, 0.1882],\\n [0.1490, 0.1686, 0.1922],\\n ...,\\n [0.1020, 0.1137, 0.1373],\\n [0.1137, 0.1176, 0.1412],\\n [0.0863, 0.1176, 0.1373]],\\n\\n [[0.1569, 0.1686, 0.1804],\\n [0.1569, 0.1647, 0.1961],\\n [0.1490, 0.1647, 0.1961],\\n ...,\\n [0.1059, 0.1216, 0.1294],\\n [0.1176, 0.1216, 0.1333],\\n [0.1059, 0.1137, 0.1373]],\\n\\n [[0.1608, 0.1686, 0.1843],\\n [0.1608, 0.1686, 0.1882],\\n [0.1569, 0.1686, 0.1882],\\n ...,\\n [0.1059, 0.1176, 0.1333],\\n [0.1137, 0.1176, 0.1333],\\n [0.1333, 0.1176, 0.1333]]]])'], 'prompt': [\"{'2': {'inputs': {'precision': 'auto'}, 'class_type': 'LoadSharpModel', '_meta': {'title': '(Down)Load SHARP Model'}}, '7': {'inputs': {'focal_length_mm': ['9', 2], 'output_prefix': 'sharp', 'model': ['2', 0], 'image': ['9', 0]}, 'class_type': 'SharpPredict', '_meta': {'title': 'SHARP Predict (Image to PLY)'}}, '8': {'inputs': {'preview_gaussian': '', 'ply_path': ['7', 0], 'extrinsics': ['7', 1], 'intrinsics': ['7', 2]}, 'class_type': 'GeomPackPreviewGaussian', '_meta': {'title': 'Preview Gaussian'}}, '9': {'inputs': {'image': 'eth3d.png', 'default_focal_mm': 30.0}, 'class_type': 'LoadImageWithExif', '_meta': {'title': 'Load Image with EXIF (Focal Length)'}}}\"], 'extra_pnginfo': [\"{'workflow': {'id': 'sharp-basic-workflow', 'revision': 0, 'last_node_id': 10, 'last_link_id': 21, 'nodes': [{'id': 2, 'type': 'LoadSharpModel', 'pos': [-150, -400], 'size': [270, 106.65625], 'flags': {}, 'order': 0, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'model_config', 'type': 'SHARP_MODEL_CONFIG', 'links': [11]}], 'properties': {'Node name for S&R': 'LoadSharpModel', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': '9f1b9c726e2cfc0118866c3df783e7f6bc895226'}, 'widgets_values': ['auto']}, {'id': 9, 'type': 'LoadImageWithExif', 'pos': [-208.74978010739324, -99.02778023242435], 'size': [342.28125, 420], 'flags': {}, 'order': 1, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'image', 'type': 'IMAGE', 'links': [19]}, {'name': 'mask', 'type': 'MASK', 'links': None}, {'name': 'focal_length_mm', 'type': 'FLOAT', 'links': [20]}], 'properties': {'Node name for S&R': 'LoadImageWithExif', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'c69751a59b587c3b83d0e37cfe2bab3bc838574a'}, 'widgets_values': ['eth3d.png', 30, 'image']}, {'id': 7, 'type': 'SharpPredict', 'pos': [226.15696022727278, -245.70490056818184], 'size': [298.890625, 212], 'flags': {}, 'order': 2, 'mode': 0, 'inputs': [{'name': 'model', 'type': 'SHARP_MODEL_CONFIG', 'link': 11}, {'name': 'image', 'type': 'IMAGE', 'link': 19}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': None}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': None}, {'name': 'focal_length_mm', 'shape': 7, 'type': 'FLOAT', 'widget': {'name': 'focal_length_mm'}, 'link': 20}], 'outputs': [{'name': 'ply_path', 'type': 'STRING', 'links': [16]}, {'name': 'extrinsics', 'type': 'EXTRINSICS', 'links': [17]}, {'name': 'intrinsics', 'type': 'INTRINSICS', 'links': [18]}], 'properties': {'Node name for S&R': 'SharpPredict', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'c69751a59b587c3b83d0e37cfe2bab3bc838574a'}, 'widgets_values': [30, 'sharp']}, {'id': 8, 'type': 'GeomPackPreviewGaussian', 'pos': [641.9426914835157, -275.49795068697], 'size': [512, 658], 'flags': {}, 'order': 3, 'mode': 0, 'inputs': [{'name': 'ply_path', 'type': 'STRING', 'link': 16}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': 17}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': 18}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewGaussian', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack', 'ver': 'df6bf3d73d0dda9c6ad7428eb58a00dc8cbaf6ed', 'cnr_id': 'comfyui-geometrypack'}, 'widgets_values': ['']}], 'links': [[11, 2, 0, 7, 0, 'SHARP_MODEL'], [16, 7, 0, 8, 0, 'STRING'], [17, 7, 1, 8, 1, 'EXTRINSICS'], [18, 7, 2, 8, 2, 'INTRINSICS'], [19, 9, 0, 7, 1, 'IMAGE'], [20, 9, 2, 7, 4, 'FLOAT']], 'groups': [], 'config': {}, 'extra': {'ds': {'scale': 1.1, 'offset': [292.8560303656579, 525.3669699599554]}, 'workflowRendererVersion': 'LG', 'frontendVersion': '1.43.18'}, 'version': 0.4}}\"]}, 'current_outputs': ['7', '8', '2', '9'], 'timestamp': 1778448210087}\n Details: Workflow: /tmp/comfy-test-run-25wt5ji7/ComfyUI-Sharp/workflows/sharp_exif.json\nNode error: SharpPredict", "hardware": {"os": "Linux-6.17.0-1010-azure-x86_64-with-glibc2.39", "cpu": "AMD EPYC 7763 64-Core Processor"}}}; const workflowNames = Object.keys(workflowData); const videoData = {}; diff --git a/dev/linux-cpu/logs/sharp_basic.log b/dev/linux-cpu/logs/sharp_basic.log index e8f61f2..248b3d8 100644 --- a/dev/linux-cpu/logs/sharp_basic.log +++ b/dev/linux-cpu/logs/sharp_basic.log @@ -9,51 +9,51 @@ Capturing execution frames: sharp_basic.json [ComfyUI] Prompt has 4 nodes [ComfyUI] Node 1: LoadImage [ComfyUI] Node 1: LoadImage + [ComfyUI] Inputs: {"image": "beach.jpg"} + [ComfyUI] Inputs: {"image": "beach.jpg"} + [ComfyUI] Node 2: LoadSharpModel + [ComfyUI] Node 2: LoadSharpModel + [ComfyUI] Inputs: {"precision": "auto"} + [ComfyUI] Inputs: {"precision": "auto"} + [ComfyUI] Node 4: GeomPackPreviewGaussian + [ComfyUI] Node 4: GeomPackPreviewGaussian + [ComfyUI] Inputs: {"preview_gaussian": "", "ply_path": ["5", 0], "extrinsics": ["5", 1], "intrinsics": ["5", 2]} + [ComfyUI] Inputs: {"preview_gaussian": "", "ply_path": ["5", 0], "extrinsics": ["5", 1], "intrinsics": ["5", 2]} + [ComfyUI] Node 5: SharpPredict + [ComfyUI] Node 5: SharpPredict + [ComfyUI] Inputs: {"focal_length_mm": 30, "output_prefix": "sharp", "model": ["2", 0], "image": ["1", 0]} + [ComfyUI] Inputs: {"focal_length_mm": 30, "output_prefix": "sharp", "model": ["2", 0], "image": ["1", 0]} + [ComfyUI] Generated prompt_id: 51fa9ff4-7a87-4e50-afea-54864870cb31 + [ComfyUI] Generated prompt_id: 51fa9ff4-7a87-4e50-afea-54864870cb31 + [ComfyUI] Calling execution.validate_prompt()... + [ComfyUI] Calling execution.validate_prompt()... + [ComfyUI] Validation result: valid=True + [ComfyUI] Validation result: valid=True + [ComfyUI] === Validation PASSED === + [ComfyUI] === Validation PASSED === Queuing workflow for execution... - [ComfyUI] Inputs: {"image": "beach.jpg"} - [ComfyUI] Inputs: {"image": "beach.jpg"} - [ComfyUI] Node 2: LoadSharpModel - [ComfyUI] Node 2: LoadSharpModel - [ComfyUI] Inputs: {"precision": "auto"} - [ComfyUI] Inputs: {"precision": "auto"} - [ComfyUI] Node 4: GeomPackPreviewGaussian - [ComfyUI] Node 4: GeomPackPreviewGaussian - [ComfyUI] Inputs: {"preview_gaussian": "", "ply_path": ["5", 0], "extrinsics": ["5", 1], "intrinsics": ["5", 2]} - [ComfyUI] Inputs: {"preview_gaussian": "", "ply_path": ["5", 0], "extrinsics": ["5", 1], "intrinsics": ["5", 2]} - [ComfyUI] Node 5: SharpPredict - [ComfyUI] Node 5: SharpPredict - [ComfyUI] Inputs: {"focal_length_mm": 30, "output_prefix": "sharp", "model": ["2", 0], "image": ["1", 0]} - [ComfyUI] Inputs: {"focal_length_mm": 30, "output_prefix": "sharp", "model": ["2", 0], "image": ["1", 0]} - [ComfyUI] Generated prompt_id: 635b5af1-b930-4f69-8cc3-bcac3ab45338 - [ComfyUI] Generated prompt_id: 635b5af1-b930-4f69-8cc3-bcac3ab45338 - [ComfyUI] Calling execution.validate_prompt()... - [ComfyUI] Calling execution.validate_prompt()... - [ComfyUI] Validation result: valid=True - [ComfyUI] Validation result: valid=True - [ComfyUI] === Validation PASSED === - [ComfyUI] === Validation PASSED === [ComfyUI] got prompt [ComfyUI] got prompt - [ComfyUI] [comfy-env] SubprocessWorker: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python - [ComfyUI] [comfy-env] SubprocessWorker: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python [ComfyUI] [comfy-env] Running LoadSharpModel: precision: 'auto' [ComfyUI] [comfy-env] Running LoadSharpModel: precision: 'auto' - [ComfyUI] [comfy-env] env_vars: {'COMFYUI_BASE': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI'} - [ComfyUI] [comfy-env] env_vars: {'COMFYUI_BASE': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI'} [ComfyUI] [SubprocessWorker] call_method: nodes.load_model.LoadSharpModel.EXECUTE_NORMALIZED [ComfyUI] [SubprocessWorker] call_method: nodes.load_model.LoadSharpModel.EXECUTE_NORMALIZED - [ComfyUI] [ComfyUI-Sharp] python: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python - [ComfyUI] [ComfyUI-Sharp] python: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python - [ComfyUI] [ComfyUI-Sharp] sys_path sent to worker: ['/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.10/site-packages', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp'] - [ComfyUI] [ComfyUI-Sharp] sys_path sent to worker: ['/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.10/site-packages', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp'] + [ComfyUI] [comfy-env] SubprocessWorker: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python + [ComfyUI] [comfy-env] SubprocessWorker: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python + [ComfyUI] [comfy-env] env_vars: {'COMFYUI_BASE': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI'} + [ComfyUI] [comfy-env] env_vars: {'COMFYUI_BASE': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI'} + [ComfyUI] [ComfyUI-Sharp] python: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python + [ComfyUI] [ComfyUI-Sharp] python: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python + [ComfyUI] [ComfyUI-Sharp] sys_path sent to worker: ['/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp'] + [ComfyUI] [ComfyUI-Sharp] sys_path sent to worker: ['/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp'] [ComfyUI] [SubprocessWorker] acquired lock, ensuring started... [ComfyUI] [SubprocessWorker] acquired lock, ensuring started... - [ComfyUI] [SubprocessWorker] is_pixi=True, python=/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python - [ComfyUI] [SubprocessWorker] is_pixi=True, python=/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python - [ComfyUI] [SubprocessWorker] launching cmd=['/home/runner/.pixi/bin/pixi', 'run', '--as-is', '--manifest-path', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/pixi.toml', '-e', 'sharp-nodes', 'python', '/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py', 'abstract://comfy_worker_0640d77dd0ff']... - [ComfyUI] [SubprocessWorker] launching cmd=['/home/runner/.pixi/bin/pixi', 'run', '--as-is', '--manifest-path', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/pixi.toml', '-e', 'sharp-nodes', 'python', '/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py', 'abstract://comfy_worker_0640d77dd0ff']... - [ComfyUI] [SubprocessWorker] socket_addr=abstract://comfy_worker_0640d77dd0ff (abstract, no filesystem path) - [ComfyUI] [SubprocessWorker] socket_addr=abstract://comfy_worker_0640d77dd0ff (abstract, no filesystem path) + [ComfyUI] [SubprocessWorker] is_pixi=True, python=/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python + [ComfyUI] [SubprocessWorker] is_pixi=True, python=/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python + [ComfyUI] [SubprocessWorker] launching cmd=['/home/runner/.pixi/bin/pixi', 'run', '--as-is', '--manifest-path', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/pixi.toml', '-e', 'sharp-nodes', 'python', '/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py', 'abstract://comfy_worker_0f5107705732']... + [ComfyUI] [SubprocessWorker] launching cmd=['/home/runner/.pixi/bin/pixi', 'run', '--as-is', '--manifest-path', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/pixi.toml', '-e', 'sharp-nodes', 'python', '/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py', 'abstract://comfy_worker_0f5107705732']... + [ComfyUI] [SubprocessWorker] socket_addr=abstract://comfy_worker_0f5107705732 (abstract, no filesystem path) + [ComfyUI] [SubprocessWorker] socket_addr=abstract://comfy_worker_0f5107705732 (abstract, no filesystem path) [ComfyUI] [worker:ComfyUI-Sharp] ERROR: Failed to import comfy_kitchen, Error: No module named 'comfy_kitchen', fp8 and fp4 support will not be available. [ComfyUI] [worker:ComfyUI-Sharp] ERROR: Failed to import comfy_kitchen, Error: No module named 'comfy_kitchen', fp8 and fp4 support will not be available. [ComfyUI] [SubprocessWorker] worker started/confirmed @@ -66,99 +66,266 @@ Capturing execution frames: sharp_basic.json [ComfyUI] [SubprocessWorker] sending request via socket... [ComfyUI] [SubprocessWorker] call_id=1 sending call_method [ComfyUI] [SubprocessWorker] call_id=1 sending call_method + [ComfyUI] + [ComfyUI] + Frame 2 saved (frame_001.jpg, t=2.4s) + [capture-periodic] freeze=5ms shot=120ms unfreeze=2ms saved=True + [ComfyUI] sharp_2572gikvuh.pt: 0%| | 0.00/2.81G [00:00 - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in - [ComfyUI] import comfy_aimdo.vram_buffer - [ComfyUI] import comfy_aimdo.vram_buffer - [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo' - [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo' + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context + [ComfyUI] return func(*args, **kwargs) + [ComfyUI] return func(*args, **kwargs) + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute + [ComfyUI] patcher = _load_sharp_model(model) + [ComfyUI] patcher = _load_sharp_model(model) + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model + [ComfyUI] import comfy.model_patcher + [ComfyUI] import comfy.model_patcher + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in + [ComfyUI] import comfy.hooks + [ComfyUI] import comfy.hooks + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in + [ComfyUI] import comfy.lora + [ComfyUI] import comfy.lora + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in + [ComfyUI] import comfy.model_base + [ComfyUI] import comfy.model_base + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in + [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep + [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in + [ComfyUI] from ..sdpose import HeatmapHead + [ComfyUI] from ..sdpose import HeatmapHead + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in + [ComfyUI] from scipy.ndimage import gaussian_filter + [ComfyUI] from scipy.ndimage import gaussian_filter + [ComfyUI] ModuleNotFoundError: No module named 'scipy' + [ComfyUI] ModuleNotFoundError: No module named 'scipy' [ComfyUI] [ComfyUI] [ComfyUI] Traceback (most recent call last): [ComfyUI] Traceback (most recent call last): - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 535, in execute - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 535, in execute + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 535, in execute + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 535, in execute [ComfyUI] output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data) [ComfyUI] output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data) - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 335, in get_output_data - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 335, in get_output_data + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 335, in get_output_data + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 335, in get_output_data [ComfyUI] return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data) [ComfyUI] return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data) - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 309, in _async_map_node_over_list - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 309, in _async_map_node_over_list + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 309, in _async_map_node_over_list + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 309, in _async_map_node_over_list [ComfyUI] await process_inputs(input_dict, i) [ComfyUI] await process_inputs(input_dict, i) - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 297, in process_inputs - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 297, in process_inputs + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 297, in process_inputs + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 297, in process_inputs [ComfyUI] result = f(**inputs) [ComfyUI] result = f(**inputs) - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy + [ComfyUI] ^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy [ComfyUI] result = worker.call_method( [ComfyUI] result = worker.call_method( - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method + [ComfyUI] ^^^^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method [ComfyUI] raise WorkerError( [ComfyUI] raise WorkerError( - [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'comfy_aimdo' - [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'comfy_aimdo' + [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'scipy' + [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'scipy' [ComfyUI] [ComfyUI] [ComfyUI] Worker traceback: [ComfyUI] Worker traceback: [ComfyUI] Traceback (most recent call last): [ComfyUI] Traceback (most recent call last): - [ComfyUI] File "/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py", line 1762, in main - [ComfyUI] File "/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py", line 1762, in main + [ComfyUI] File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main + [ComfyUI] File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main [ComfyUI] result = method(**inputs) [ComfyUI] result = method(**inputs) - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED + [ComfyUI] ^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED [ComfyUI] to_return = cls.execute(*args, **kwargs) [ComfyUI] to_return = cls.execute(*args, **kwargs) - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 170, in execute - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 170, in execute - [ComfyUI] import comfy.model_management - [ComfyUI] import comfy.model_management - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in - [ComfyUI] import comfy_aimdo.vram_buffer - [ComfyUI] import comfy_aimdo.vram_buffer - [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo' - [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo' + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context + [ComfyUI] return func(*args, **kwargs) + [ComfyUI] return func(*args, **kwargs) + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute + [ComfyUI] patcher = _load_sharp_model(model) + [ComfyUI] patcher = _load_sharp_model(model) + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model + [ComfyUI] import comfy.model_patcher + [ComfyUI] import comfy.model_patcher + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in + [ComfyUI] import comfy.hooks + [ComfyUI] import comfy.hooks + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in + [ComfyUI] import comfy.lora + [ComfyUI] import comfy.lora + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in + [ComfyUI] import comfy.model_base + [ComfyUI] import comfy.model_base + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in + [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep + [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in + [ComfyUI] from ..sdpose import HeatmapHead + [ComfyUI] from ..sdpose import HeatmapHead + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in + [ComfyUI] from scipy.ndimage import gaussian_filter + [ComfyUI] from scipy.ndimage import gaussian_filter + [ComfyUI] ModuleNotFoundError: No module named 'scipy' + [ComfyUI] ModuleNotFoundError: No module named 'scipy' [ComfyUI] [ComfyUI] [ComfyUI] [ComfyUI] - [ComfyUI] Prompt executed in 1.97 seconds - [ComfyUI] Prompt executed in 1.97 seconds - Frame 2 saved (frame_001.jpg, t=2.3s) - [capture-periodic] freeze=9ms shot=118ms unfreeze=5ms saved=True - Execution complete (t=2.3s) - Execution error: {'prompt_id': '2da0a0a3-0f1d-4008-9544-3b71b057b9f6', 'node_id': '2', 'node_type': 'LoadSharpModel', 'executed': ['1'], 'exception_message': 'No module named \'comfy_aimdo\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 170, in execute\n import comfy.model_management\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in \n import comfy_aimdo.vram_buffer\nModuleNotFoundError: No module named \'comfy_aimdo\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'precision': ['auto']}, 'current_outputs': ['5', '1', '2', '4'], 'timestamp': 1778446342071} + [ComfyUI] Prompt executed in 14.46 seconds + [ComfyUI] Prompt executed in 14.46 seconds + Execution complete (t=15.1s) + Execution error: {'prompt_id': '680e7efb-b7e3-4246-98ac-baa7a4da9ce6', 'node_id': '5', 'node_type': 'SharpPredict', 'executed': ['1', '2'], 'exception_message': 'No module named \'scipy\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n ^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute\n patcher = _load_sharp_model(model)\n ^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model\n import comfy.model_patcher\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in \n import comfy.hooks\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in \n import comfy.lora\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in \n import comfy.model_base\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in \n from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in \n from ..sdpose import HeatmapHead\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in \n from scipy.ndimage import gaussian_filter\nModuleNotFoundError: No module named \'scipy\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n ^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n ^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'focal_length_mm': [30], 'output_prefix': ['sharp'], 'model': ["{'model_path': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/models/sharp/sharp_2572gikvuh.pt', 'precision': 'auto', 'dtype': 'fp32'}"], 'image': ['tensor([[[[0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n ...,\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000]],\n\n [[0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n ...,\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000]],\n\n [[0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n ...,\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000]],\n\n ...,\n\n [[0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n ...,\n [0.5098, 0.4627, 0.4235],\n [0.5098, 0.4627, 0.4235],\n [0.5098, 0.4627, 0.4235]],\n\n [[0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n ...,\n [0.5059, 0.4588, 0.4392],\n [0.5059, 0.4627, 0.4314],\n [0.5059, 0.4627, 0.4314]],\n\n [[0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n ...,\n [0.5059, 0.4588, 0.4392],\n [0.5059, 0.4627, 0.4314],\n [0.5059, 0.4627, 0.4314]]]])'], 'prompt': ["{'1': {'inputs': {'image': 'beach.jpg'}, 'class_type': 'LoadImage', '_meta': {'title': 'Load Image'}, 'is_changed': ['ee4f94632a5ec7038826e875829a62a81dc2a9b85ed59440f2eaa37b3704fa24']}, '2': {'inputs': {'precision': 'auto'}, 'class_type': 'LoadSharpModel', '_meta': {'title': '(Down)Load SHARP Model'}}, '4': {'inputs': {'preview_gaussian': '', 'ply_path': ['5', 0], 'extrinsics': ['5', 1], 'intrinsics': ['5', 2]}, 'class_type': 'GeomPackPreviewGaussian', '_meta': {'title': 'Preview Gaussian'}}, '5': {'inputs': {'focal_length_mm': 30.0, 'output_prefix': 'sharp', 'model': ['2', 0], 'image': ['1', 0]}, 'class_type': 'SharpPredict', '_meta': {'title': 'SHARP Predict (Image to PLY)'}}}"], 'extra_pnginfo': ["{'workflow': {'id': 'sharp-basic-workflow', 'revision': 0, 'last_node_id': 5, 'last_link_id': 10, 'nodes': [{'id': 2, 'type': 'LoadSharpModel', 'pos': [-150, -400], 'size': [270, 106.65625], 'flags': {}, 'order': 0, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'model_config', 'type': 'SHARP_MODEL_CONFIG', 'links': [6]}], 'properties': {'Node name for S&R': 'LoadSharpModel', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': '9f1b9c726e2cfc0118866c3df783e7f6bc895226'}, 'widgets_values': ['auto']}, {'id': 1, 'type': 'LoadImage', 'pos': [-150, -100], 'size': [274, 340], 'flags': {}, 'order': 1, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'IMAGE', 'type': 'IMAGE', 'links': [7]}, {'name': 'MASK', 'type': 'MASK', 'links': []}], 'properties': {'Node name for S&R': 'LoadImage', 'cnr_id': 'comfy-core', 'ver': '0.5.1'}, 'widgets_values': ['beach.jpg', 'image']}, {'id': 5, 'type': 'SharpPredict', 'pos': [181.546875, -251.55078125], 'size': [298.890625, 212], 'flags': {}, 'order': 2, 'mode': 0, 'inputs': [{'name': 'model', 'type': 'SHARP_MODEL_CONFIG', 'link': 6}, {'name': 'image', 'type': 'IMAGE', 'link': 7}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': None}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': None}], 'outputs': [{'name': 'ply_path', 'type': 'STRING', 'links': [8]}, {'name': 'extrinsics', 'type': 'EXTRINSICS', 'links': [9]}, {'name': 'intrinsics', 'type': 'INTRINSICS', 'links': [10]}], 'properties': {'Node name for S&R': 'SharpPredict', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'aa98b213e3d0770477bbf46046094c5cb8ff6052'}, 'widgets_values': [30, 'sharp']}, {'id': 4, 'type': 'GeomPackPreviewGaussian', 'pos': [629.92578125, -322.046875], 'size': [512, 658], 'flags': {}, 'order': 3, 'mode': 0, 'inputs': [{'name': 'ply_path', 'type': 'STRING', 'link': 8}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': 9}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': 10}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewGaussian', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack', 'ver': 'b7df285fc5b3fef7aad434d8b6e8698efed6358b', 'cnr_id': 'comfyui-geometrypack'}, 'widgets_values': ['']}], 'links': [[6, 2, 0, 5, 0, 'SHARP_MODEL'], [7, 1, 0, 5, 1, 'IMAGE'], [8, 5, 0, 4, 0, 'STRING'], [9, 5, 1, 4, 1, 'EXTRINSICS'], [10, 5, 2, 4, 2, 'INTRINSICS']], 'groups': [], 'config': {}, 'extra': {'ds': {'scale': 1, 'offset': [300.79296875, 604.72265625]}, 'workflowRendererVersion': 'LG', 'frontendVersion': '1.43.18'}, 'version': 0.4}}"]}, 'current_outputs': ['1', '2', '5', '4'], 'timestamp': 1778448202982} Status: FAILED - Error: Workflow execution failed: {'prompt_id': '2da0a0a3-0f1d-4008-9544-3b71b057b9f6', 'node_id': '2', 'node_type': 'LoadSharpModel', 'executed': ['1'], 'exception_message': 'No module named \'comfy_aimdo\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 170, in execute\n import comfy.model_management\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in \n import comfy_aimdo.vram_buffer\nModuleNotFoundError: No module named \'comfy_aimdo\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'precision': ['auto']}, 'current_outputs': ['5', '1', '2', '4'], 'timestamp': 1778446342071} - Details: Workflow: /tmp/comfy-test-run-frk8o1_6/ComfyUI-Sharp/workflows/sharp_basic.json -Node error: LoadSharpModel \ No newline at end of file + Error: Workflow execution failed: {'prompt_id': '680e7efb-b7e3-4246-98ac-baa7a4da9ce6', 'node_id': '5', 'node_type': 'SharpPredict', 'executed': ['1', '2'], 'exception_message': 'No module named \'scipy\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n ^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute\n patcher = _load_sharp_model(model)\n ^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model\n import comfy.model_patcher\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in \n import comfy.hooks\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in \n import comfy.lora\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in \n import comfy.model_base\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in \n from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in \n from ..sdpose import HeatmapHead\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in \n from scipy.ndimage import gaussian_filter\nModuleNotFoundError: No module named \'scipy\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n ^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n ^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'focal_length_mm': [30], 'output_prefix': ['sharp'], 'model': ["{'model_path': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/models/sharp/sharp_2572gikvuh.pt', 'precision': 'auto', 'dtype': 'fp32'}"], 'image': ['tensor([[[[0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n ...,\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000]],\n\n [[0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n ...,\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000]],\n\n [[0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n ...,\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000]],\n\n ...,\n\n [[0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n ...,\n [0.5098, 0.4627, 0.4235],\n [0.5098, 0.4627, 0.4235],\n [0.5098, 0.4627, 0.4235]],\n\n [[0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n ...,\n [0.5059, 0.4588, 0.4392],\n [0.5059, 0.4627, 0.4314],\n [0.5059, 0.4627, 0.4314]],\n\n [[0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n ...,\n [0.5059, 0.4588, 0.4392],\n [0.5059, 0.4627, 0.4314],\n [0.5059, 0.4627, 0.4314]]]])'], 'prompt': ["{'1': {'inputs': {'image': 'beach.jpg'}, 'class_type': 'LoadImage', '_meta': {'title': 'Load Image'}, 'is_changed': ['ee4f94632a5ec7038826e875829a62a81dc2a9b85ed59440f2eaa37b3704fa24']}, '2': {'inputs': {'precision': 'auto'}, 'class_type': 'LoadSharpModel', '_meta': {'title': '(Down)Load SHARP Model'}}, '4': {'inputs': {'preview_gaussian': '', 'ply_path': ['5', 0], 'extrinsics': ['5', 1], 'intrinsics': ['5', 2]}, 'class_type': 'GeomPackPreviewGaussian', '_meta': {'title': 'Preview Gaussian'}}, '5': {'inputs': {'focal_length_mm': 30.0, 'output_prefix': 'sharp', 'model': ['2', 0], 'image': ['1', 0]}, 'class_type': 'SharpPredict', '_meta': {'title': 'SHARP Predict (Image to PLY)'}}}"], 'extra_pnginfo': ["{'workflow': {'id': 'sharp-basic-workflow', 'revision': 0, 'last_node_id': 5, 'last_link_id': 10, 'nodes': [{'id': 2, 'type': 'LoadSharpModel', 'pos': [-150, -400], 'size': [270, 106.65625], 'flags': {}, 'order': 0, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'model_config', 'type': 'SHARP_MODEL_CONFIG', 'links': [6]}], 'properties': {'Node name for S&R': 'LoadSharpModel', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': '9f1b9c726e2cfc0118866c3df783e7f6bc895226'}, 'widgets_values': ['auto']}, {'id': 1, 'type': 'LoadImage', 'pos': [-150, -100], 'size': [274, 340], 'flags': {}, 'order': 1, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'IMAGE', 'type': 'IMAGE', 'links': [7]}, {'name': 'MASK', 'type': 'MASK', 'links': []}], 'properties': {'Node name for S&R': 'LoadImage', 'cnr_id': 'comfy-core', 'ver': '0.5.1'}, 'widgets_values': ['beach.jpg', 'image']}, {'id': 5, 'type': 'SharpPredict', 'pos': [181.546875, -251.55078125], 'size': [298.890625, 212], 'flags': {}, 'order': 2, 'mode': 0, 'inputs': [{'name': 'model', 'type': 'SHARP_MODEL_CONFIG', 'link': 6}, {'name': 'image', 'type': 'IMAGE', 'link': 7}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': None}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': None}], 'outputs': [{'name': 'ply_path', 'type': 'STRING', 'links': [8]}, {'name': 'extrinsics', 'type': 'EXTRINSICS', 'links': [9]}, {'name': 'intrinsics', 'type': 'INTRINSICS', 'links': [10]}], 'properties': {'Node name for S&R': 'SharpPredict', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'aa98b213e3d0770477bbf46046094c5cb8ff6052'}, 'widgets_values': [30, 'sharp']}, {'id': 4, 'type': 'GeomPackPreviewGaussian', 'pos': [629.92578125, -322.046875], 'size': [512, 658], 'flags': {}, 'order': 3, 'mode': 0, 'inputs': [{'name': 'ply_path', 'type': 'STRING', 'link': 8}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': 9}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': 10}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewGaussian', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack', 'ver': 'b7df285fc5b3fef7aad434d8b6e8698efed6358b', 'cnr_id': 'comfyui-geometrypack'}, 'widgets_values': ['']}], 'links': [[6, 2, 0, 5, 0, 'SHARP_MODEL'], [7, 1, 0, 5, 1, 'IMAGE'], [8, 5, 0, 4, 0, 'STRING'], [9, 5, 1, 4, 1, 'EXTRINSICS'], [10, 5, 2, 4, 2, 'INTRINSICS']], 'groups': [], 'config': {}, 'extra': {'ds': {'scale': 1, 'offset': [300.79296875, 604.72265625]}, 'workflowRendererVersion': 'LG', 'frontendVersion': '1.43.18'}, 'version': 0.4}}"]}, 'current_outputs': ['1', '2', '5', '4'], 'timestamp': 1778448202982} + Details: Workflow: /tmp/comfy-test-run-25wt5ji7/ComfyUI-Sharp/workflows/sharp_basic.json +Node error: SharpPredict \ No newline at end of file diff --git a/dev/linux-cpu/logs/sharp_basic_console.log b/dev/linux-cpu/logs/sharp_basic_console.log index 1b16b10..f818f0d 100644 --- a/dev/linux-cpu/logs/sharp_basic_console.log +++ b/dev/linux-cpu/logs/sharp_basic_console.log @@ -9,11 +9,8 @@ [Console-error] Failed to load resource: the server responded with a status of 404 (Not Found) [Console-warning] WARNING: Multiple instances of Three.js being imported. [Console-log] [VTK Bundle] GLTFImporter included in bundle -[Console-log] [CompareSMPLBVH] Loading Compare SMPL BVH extension -[Console-log] [CompareSMPLBVH] Loading Compare SMPL BVH extension... -[Console-log] [CompareSMPLBVH] Extension registered: comfy3d.comparesmplbvh -[Console-log] [GeomPack] Loading VTK.js textured mesh preview extension... -[Console-log] [GeomPack] VTK.js textured mesh preview extension registered +[Console-log] [GeomPack] Loading mesh preview extension... +[Console-log] [GeomPack] Mesh preview extension registered [Console-log] [FBX Preview] Auto-registering for all known FBX preview node types... [Console-log] [UniRig] Loading FBX mesh preview extension... [Console-log] [UniRig] Detected extension folder: ComfyUI-GeometryPack @@ -27,32 +24,35 @@ [Console-log] [MotionCapture] Loading FBX mesh preview extension... [Console-log] [MotionCapture] Detected extension folder: ComfyUI-GeometryPack [Console-log] [MotionCapture] FBX mesh preview extension registered -[Console-log] [GeomPack Gaussian] Loading extension... -[Console-log] [GeomPack Multi JS] Loading mesh_preview_multi.js extension -[Console-log] [FBXAnimationViewer] Loading FBX Animation Viewer extension -[Console-log] [FBXAnimationViewer] Loading FBX Animation Viewer extension... -[Console-log] [FBXAnimationViewer] Extension registered: comfy3d.fbxanimationviewer -[Console-log] [BVHViewer] Loading BVH Viewer extension -[Console-log] [BVHViewer] Loading BVH viewer extension... -[Console-log] [BVHViewer] Extension registered: comfy3d.bvhviewer -[Console-log] [GeomPack] Loading UV mesh preview extension... -[Console-log] [GeomPack] UV mesh preview extension registered [Console-log] [UniRig Debug] Loading FBX mesh preview extension... [Console-log] [UniRig Debug] Detected extension folder: ComfyUI-GeometryPack [Console-log] [UniRig Debug] FBX mesh preview extension registered [Console-log] [UniRig Compare] Loading compare skeleton widget... [Console-log] [UniRig Compare] Detected extension folder: ComfyUI-GeometryPack [Console-log] [UniRig Compare] Compare skeleton widget registered -[Console-log] [GeomPack] Loading mesh preview extension... -[Console-log] [GeomPack] Mesh preview extension registered +[Console-log] [FBXAnimationViewer] Loading FBX Animation Viewer extension +[Console-log] [FBXAnimationViewer] Loading FBX Animation Viewer extension... +[Console-log] [FBXAnimationViewer] Extension registered: comfy3d.fbxanimationviewer +[Console-log] [BVHViewer] Loading BVH Viewer extension +[Console-log] [BVHViewer] Loading BVH viewer extension... +[Console-log] [BVHViewer] Extension registered: comfy3d.bvhviewer +[Console-log] [GeomPack Gaussian] Loading extension... +[Console-log] [GeomPack] Loading VTK.js textured mesh preview extension... +[Console-log] [GeomPack] VTK.js textured mesh preview extension registered +[Console-log] [GeomPack Multi JS] Loading mesh_preview_multi.js extension +[Console-log] [CompareSMPLBVH] Loading Compare SMPL BVH extension +[Console-log] [CompareSMPLBVH] Loading Compare SMPL BVH extension... +[Console-log] [CompareSMPLBVH] Extension registered: comfy3d.comparesmplbvh +[Console-log] [GeomPack] Loading UV mesh preview extension... +[Console-log] [GeomPack] UV mesh preview extension registered [Console-warning] [MaskEditor] ComfyApp.open_maskeditor is deprecated. Plugins should migrate to using the command system or direct node context menu integration. [Console-log] [GeomPack] Registering Preview Mesh node [Console-log] [GeomPack] Registering Preview Mesh UV node [Console-log] [GeomPack Gaussian] Registering Preview Gaussian node [Console-log] [GaussianViewer] Initialized successfully [Console-log] [GaussianViewer] Ready - waiting for LOAD_MESH message -[Console-warning] [.WebGL-0x2a74096cc600]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels -[Console-warning] [.WebGL-0x2a74096cc600]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels -[Console-warning] [.WebGL-0x2a74096cc600]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels -[Console-warning] [.WebGL-0x2a74096cc600]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels (this message will no longer repeat) +[Console-warning] [.WebGL-0x363c09d29800]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels +[Console-warning] [.WebGL-0x363c09d29800]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels +[Console-warning] [.WebGL-0x363c09d29800]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels +[Console-warning] [.WebGL-0x363c09d29800]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels (this message will no longer repeat) [Console-log] [comfy-test] graphToPrompt: 4 nodes, missing class_type: [], sample: {"inputs":{"image":"beach.jpg"},"class_type":"LoadImage","_meta":{"title":"Load Image"}} \ No newline at end of file diff --git a/dev/linux-cpu/logs/sharp_basic_resources.csv b/dev/linux-cpu/logs/sharp_basic_resources.csv index 8f8d28b..979e047 100644 --- a/dev/linux-cpu/logs/sharp_basic_resources.csv +++ b/dev/linux-cpu/logs/sharp_basic_resources.csv @@ -1,11 +1,24 @@ # total_ram_gb=15.6 t,ram_gb,vram_gb -0.0,0.82, -1.0,0.82, -2.0,0.82, -3.0,0.82, -4.0,0.82, -5.0,0.82, -6.0,0.82, -7.0,0.99, -8.1,1.15, +0.0,0.85, +1.0,0.85, +2.0,0.86, +3.0,0.86, +4.0,0.86, +5.0,0.86, +6.0,0.86, +7.0,1.12, +8.1,1.19, +9.1,1.25, +10.1,1.6, +11.1,1.63, +12.1,1.81, +13.1,1.94, +14.1,1.99, +15.1,1.99, +16.1,1.27, +17.1,1.27, +18.2,1.27, +19.2,1.27, +20.2,1.27, +21.2,1.28, diff --git a/dev/linux-cpu/logs/sharp_exif.log b/dev/linux-cpu/logs/sharp_exif.log index 0324863..dc4349b 100644 --- a/dev/linux-cpu/logs/sharp_exif.log +++ b/dev/linux-cpu/logs/sharp_exif.log @@ -9,11 +9,11 @@ Capturing execution frames: sharp_exif.json [ComfyUI] Prompt has 4 nodes [ComfyUI] Node 2: LoadSharpModel [ComfyUI] Node 2: LoadSharpModel - [ComfyUI] Inputs: {"precision": "auto"} - [ComfyUI] Inputs: {"precision": "auto"} - [ComfyUI] Node 7: SharpPredict - [ComfyUI] Node 7: SharpPredict Queuing workflow for execution... + [ComfyUI] Inputs: {"precision": "auto"} + [ComfyUI] Inputs: {"precision": "auto"} + [ComfyUI] Node 7: SharpPredict + [ComfyUI] Node 7: SharpPredict [ComfyUI] Inputs: {"focal_length_mm": ["9", 2], "output_prefix": "sharp", "model": ["2", 0], "image": ["9", 0]} [ComfyUI] Inputs: {"focal_length_mm": ["9", 2], "output_prefix": "sharp", "model": ["2", 0], "image": ["9", 0]} [ComfyUI] Node 8: GeomPackPreviewGaussian @@ -24,8 +24,8 @@ Capturing execution frames: sharp_exif.json [ComfyUI] Node 9: LoadImageWithExif [ComfyUI] Inputs: {"image": "eth3d.png", "default_focal_mm": 30} [ComfyUI] Inputs: {"image": "eth3d.png", "default_focal_mm": 30} - [ComfyUI] Generated prompt_id: 40c6a680-cf48-4922-bb94-60f2da64fb1a - [ComfyUI] Generated prompt_id: 40c6a680-cf48-4922-bb94-60f2da64fb1a + [ComfyUI] Generated prompt_id: e1e5db64-9ff1-4f8a-b8ff-d68adb858593 + [ComfyUI] Generated prompt_id: e1e5db64-9ff1-4f8a-b8ff-d68adb858593 [ComfyUI] Calling execution.validate_prompt()... [ComfyUI] Calling execution.validate_prompt()... [ComfyUI] Validation result: valid=True @@ -52,12 +52,12 @@ Capturing execution frames: sharp_exif.json [ComfyUI] [SubprocessWorker] created 0 shm blocks [ComfyUI] [SubprocessWorker] sending request via socket... [ComfyUI] [SubprocessWorker] sending request via socket... - [ComfyUI] [SubprocessWorker] call_id=2 sending call_method - [ComfyUI] [SubprocessWorker] call_id=2 sending call_method + [ComfyUI] [SubprocessWorker] call_id=3 sending call_method + [ComfyUI] [SubprocessWorker] call_id=3 sending call_method [ComfyUI] [SubprocessWorker] got response: ok [ComfyUI] [SubprocessWorker] got response: ok - [ComfyUI] [comfy-env] LoadImageWithExif done (0.30s): result: NodeOutput - [ComfyUI] [comfy-env] LoadImageWithExif done (0.30s): result: NodeOutput + [ComfyUI] [comfy-env] LoadImageWithExif done (0.29s): result: NodeOutput + [ComfyUI] [comfy-env] LoadImageWithExif done (0.29s): result: NodeOutput [ComfyUI] [comfy-env] Running LoadSharpModel: precision: 'auto' [ComfyUI] [comfy-env] Running LoadSharpModel: precision: 'auto' [ComfyUI] [SubprocessWorker] call_method: nodes.load_model.LoadSharpModel.EXECUTE_NORMALIZED @@ -76,99 +76,211 @@ Capturing execution frames: sharp_exif.json [ComfyUI] [SubprocessWorker] created 0 shm blocks [ComfyUI] [SubprocessWorker] sending request via socket... [ComfyUI] [SubprocessWorker] sending request via socket... - [ComfyUI] [SubprocessWorker] call_id=3 sending call_method - [ComfyUI] [SubprocessWorker] call_id=3 sending call_method + [ComfyUI] [SubprocessWorker] call_id=4 sending call_method + [ComfyUI] [SubprocessWorker] call_id=4 sending call_method + [ComfyUI] [SubprocessWorker] got response: ok + [ComfyUI] [SubprocessWorker] got response: ok + [ComfyUI] [comfy-env] LoadSharpModel done (0.11s): result: NodeOutput + [ComfyUI] [comfy-env] LoadSharpModel done (0.11s): result: NodeOutput + [ComfyUI] [comfy-env] Running SharpPredict: focal_length_mm: 20.0, output_prefix: 'sharp', model: dict, image: torch.float32 [1,2022,3040,3] cpu + [ComfyUI] [comfy-env] Running SharpPredict: focal_length_mm: 20.0, output_prefix: 'sharp', model: dict, image: torch.float32 [1,2022,3040,3] cpu + [ComfyUI] [SubprocessWorker] call_method: nodes.predict.SharpPredict.EXECUTE_NORMALIZED + [ComfyUI] [SubprocessWorker] call_method: nodes.predict.SharpPredict.EXECUTE_NORMALIZED + [ComfyUI] [SubprocessWorker] acquired lock, ensuring started... + [ComfyUI] [SubprocessWorker] acquired lock, ensuring started... + [ComfyUI] [ComfyUI-Sharp] Health check: ping (timeout=5.0s)... + [ComfyUI] [ComfyUI-Sharp] Health check: ping (timeout=5.0s)... + [ComfyUI] [ComfyUI-Sharp] Health check: ok + [ComfyUI] [ComfyUI-Sharp] Health check: ok + [ComfyUI] [SubprocessWorker] worker started/confirmed + [ComfyUI] [SubprocessWorker] worker started/confirmed + [ComfyUI] [comfy-env] PRE-SERIALIZE 'image' shape: torch.Size([1, 2022, 3040, 3]) + [ComfyUI] [comfy-env] PRE-SERIALIZE 'image' shape: torch.Size([1, 2022, 3040, 3]) + [ComfyUI] [SubprocessWorker] serializing kwargs to shm... + [ComfyUI] [SubprocessWorker] serializing kwargs to shm... + [ComfyUI] [SubprocessWorker] created 0 shm blocks + [ComfyUI] [SubprocessWorker] created 0 shm blocks + [ComfyUI] [SubprocessWorker] sending request via socket... + [ComfyUI] [SubprocessWorker] sending request via socket... + [ComfyUI] [SubprocessWorker] call_id=5 sending call_method + [ComfyUI] [SubprocessWorker] call_id=5 sending call_method + [ComfyUI] [worker:ComfyUI-Sharp] [comfy-env] _from_shm got dict with keys: ['__type__', 'strategy', 'parent_pid', 'fd', 'storage_size'] + [ComfyUI] [worker:ComfyUI-Sharp] [comfy-env] _from_shm got dict with keys: ['__type__', 'strategy', 'parent_pid', 'fd', 'storage_size'] + [ComfyUI] [worker:ComfyUI-Sharp] [comfy-env] DESERIALIZE TensorRef: tensor_size=[1, 2022, 3040, 3] + [ComfyUI] [worker:ComfyUI-Sharp] [comfy-env] DESERIALIZE TensorRef: tensor_size=[1, 2022, 3040, 3] + [ComfyUI] [worker:ComfyUI-Sharp] [comfy-env] DESERIALIZED tensor shape: torch.Size([1, 2022, 3040, 3]) + [ComfyUI] [worker:ComfyUI-Sharp] [comfy-env] DESERIALIZED tensor shape: torch.Size([1, 2022, 3040, 3]) [ComfyUI] [SubprocessWorker] got response: error [ComfyUI] [SubprocessWorker] got response: error - [ComfyUI] !!! Exception during processing !!! No module named 'comfy_aimdo' - [ComfyUI] !!! Exception during processing !!! No module named 'comfy_aimdo' + [ComfyUI] !!! Exception during processing !!! No module named 'scipy' + [ComfyUI] !!! Exception during processing !!! No module named 'scipy' [ComfyUI] [ComfyUI] [ComfyUI] Worker traceback: [ComfyUI] Worker traceback: [ComfyUI] Traceback (most recent call last): [ComfyUI] Traceback (most recent call last): - [ComfyUI] File "/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py", line 1762, in main - [ComfyUI] File "/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py", line 1762, in main + [ComfyUI] File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main + [ComfyUI] File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main [ComfyUI] result = method(**inputs) [ComfyUI] result = method(**inputs) - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED + [ComfyUI] ^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED [ComfyUI] to_return = cls.execute(*args, **kwargs) [ComfyUI] to_return = cls.execute(*args, **kwargs) - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 170, in execute - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 170, in execute - [ComfyUI] import comfy.model_management - [ComfyUI] import comfy.model_management - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in - [ComfyUI] import comfy_aimdo.vram_buffer - [ComfyUI] import comfy_aimdo.vram_buffer - [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo' - [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo' + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context + [ComfyUI] return func(*args, **kwargs) + [ComfyUI] return func(*args, **kwargs) + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute + [ComfyUI] patcher = _load_sharp_model(model) + [ComfyUI] patcher = _load_sharp_model(model) + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model + [ComfyUI] import comfy.model_patcher + [ComfyUI] import comfy.model_patcher + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in + [ComfyUI] import comfy.hooks + [ComfyUI] import comfy.hooks + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in + [ComfyUI] import comfy.lora + [ComfyUI] import comfy.lora + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in + [ComfyUI] import comfy.model_base + [ComfyUI] import comfy.model_base + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in + [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep + [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in + [ComfyUI] from ..sdpose import HeatmapHead + [ComfyUI] from ..sdpose import HeatmapHead + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in + [ComfyUI] from scipy.ndimage import gaussian_filter + [ComfyUI] from scipy.ndimage import gaussian_filter + [ComfyUI] ModuleNotFoundError: No module named 'scipy' + [ComfyUI] ModuleNotFoundError: No module named 'scipy' [ComfyUI] [ComfyUI] [ComfyUI] Traceback (most recent call last): [ComfyUI] Traceback (most recent call last): - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 535, in execute - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 535, in execute + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 535, in execute + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 535, in execute [ComfyUI] output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data) [ComfyUI] output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data) - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 335, in get_output_data - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 335, in get_output_data + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 335, in get_output_data + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 335, in get_output_data [ComfyUI] return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data) [ComfyUI] return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data) - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 309, in _async_map_node_over_list - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 309, in _async_map_node_over_list + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 309, in _async_map_node_over_list + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 309, in _async_map_node_over_list [ComfyUI] await process_inputs(input_dict, i) [ComfyUI] await process_inputs(input_dict, i) - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 297, in process_inputs - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 297, in process_inputs + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 297, in process_inputs + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 297, in process_inputs [ComfyUI] result = f(**inputs) [ComfyUI] result = f(**inputs) - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy + [ComfyUI] ^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy [ComfyUI] result = worker.call_method( [ComfyUI] result = worker.call_method( - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method + [ComfyUI] ^^^^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method [ComfyUI] raise WorkerError( [ComfyUI] raise WorkerError( - [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'comfy_aimdo' - [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'comfy_aimdo' + [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'scipy' + [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'scipy' [ComfyUI] [ComfyUI] [ComfyUI] Worker traceback: [ComfyUI] Worker traceback: [ComfyUI] Traceback (most recent call last): [ComfyUI] Traceback (most recent call last): - [ComfyUI] File "/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py", line 1762, in main - [ComfyUI] File "/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py", line 1762, in main + [ComfyUI] File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main + [ComfyUI] File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main [ComfyUI] result = method(**inputs) [ComfyUI] result = method(**inputs) - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED + [ComfyUI] ^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED [ComfyUI] to_return = cls.execute(*args, **kwargs) [ComfyUI] to_return = cls.execute(*args, **kwargs) - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 170, in execute - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 170, in execute - [ComfyUI] import comfy.model_management - [ComfyUI] import comfy.model_management - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in - [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in - [ComfyUI] import comfy_aimdo.vram_buffer - [ComfyUI] import comfy_aimdo.vram_buffer - [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo' - [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo' + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context + [ComfyUI] return func(*args, **kwargs) + [ComfyUI] return func(*args, **kwargs) + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute + [ComfyUI] patcher = _load_sharp_model(model) + [ComfyUI] patcher = _load_sharp_model(model) + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^ + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model + [ComfyUI] import comfy.model_patcher + [ComfyUI] import comfy.model_patcher + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in + [ComfyUI] import comfy.hooks + [ComfyUI] import comfy.hooks + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in + [ComfyUI] import comfy.lora + [ComfyUI] import comfy.lora + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in + [ComfyUI] import comfy.model_base + [ComfyUI] import comfy.model_base + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in + [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep + [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in + [ComfyUI] from ..sdpose import HeatmapHead + [ComfyUI] from ..sdpose import HeatmapHead + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in + [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in + [ComfyUI] from scipy.ndimage import gaussian_filter + [ComfyUI] from scipy.ndimage import gaussian_filter + [ComfyUI] ModuleNotFoundError: No module named 'scipy' + [ComfyUI] ModuleNotFoundError: No module named 'scipy' [ComfyUI] [ComfyUI] [ComfyUI] [ComfyUI] - [ComfyUI] Prompt executed in 0.31 seconds - [ComfyUI] Prompt executed in 0.31 seconds - Execution complete (t=0.6s) - Execution error: {'prompt_id': 'fb1b8573-b39c-489a-9b0c-0f581bba098d', 'node_id': '2', 'node_type': 'LoadSharpModel', 'executed': ['9'], 'exception_message': 'No module named \'comfy_aimdo\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 170, in execute\n import comfy.model_management\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in \n import comfy_aimdo.vram_buffer\nModuleNotFoundError: No module named \'comfy_aimdo\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'precision': ['auto']}, 'current_outputs': ['9', '8', '2', '7'], 'timestamp': 1778446348934} + [ComfyUI] Prompt executed in 0.46 seconds + [ComfyUI] Prompt executed in 0.46 seconds + Execution complete (t=0.7s) + Execution error: {'prompt_id': '17b4c6a0-5277-443b-9e4a-9650d557d2fd', 'node_id': '7', 'node_type': 'SharpPredict', 'executed': ['2', '9'], 'exception_message': 'No module named \'scipy\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n ^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute\n patcher = _load_sharp_model(model)\n ^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model\n import comfy.model_patcher\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in \n import comfy.hooks\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in \n import comfy.lora\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in \n import comfy.model_base\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in \n from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in \n from ..sdpose import HeatmapHead\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in \n from scipy.ndimage import gaussian_filter\nModuleNotFoundError: No module named \'scipy\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n ^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n ^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'focal_length_mm': [20], 'output_prefix': ['sharp'], 'model': ["{'model_path': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/models/sharp/sharp_2572gikvuh.pt', 'precision': 'auto', 'dtype': 'fp32'}"], 'image': ['tensor([[[[0.2157, 0.1647, 0.1569],\n [0.2275, 0.1608, 0.1608],\n [0.2275, 0.1647, 0.1529],\n ...,\n [0.4471, 0.4745, 0.4863],\n [0.4510, 0.4745, 0.4863],\n [0.4431, 0.4745, 0.4745]],\n\n [[0.2196, 0.1686, 0.1569],\n [0.2314, 0.1647, 0.1608],\n [0.2353, 0.1647, 0.1647],\n ...,\n [0.4549, 0.4784, 0.4706],\n [0.4549, 0.4706, 0.4784],\n [0.4431, 0.4706, 0.4667]],\n\n [[0.2314, 0.1725, 0.1569],\n [0.2510, 0.1725, 0.1608],\n [0.2392, 0.1725, 0.1686],\n ...,\n [0.4588, 0.4745, 0.4627],\n [0.4510, 0.4745, 0.4667],\n [0.4471, 0.4706, 0.4627]],\n\n ...,\n\n [[0.1569, 0.1647, 0.1843],\n [0.1647, 0.1725, 0.1882],\n [0.1490, 0.1686, 0.1922],\n ...,\n [0.1020, 0.1137, 0.1373],\n [0.1137, 0.1176, 0.1412],\n [0.0863, 0.1176, 0.1373]],\n\n [[0.1569, 0.1686, 0.1804],\n [0.1569, 0.1647, 0.1961],\n [0.1490, 0.1647, 0.1961],\n ...,\n [0.1059, 0.1216, 0.1294],\n [0.1176, 0.1216, 0.1333],\n [0.1059, 0.1137, 0.1373]],\n\n [[0.1608, 0.1686, 0.1843],\n [0.1608, 0.1686, 0.1882],\n [0.1569, 0.1686, 0.1882],\n ...,\n [0.1059, 0.1176, 0.1333],\n [0.1137, 0.1176, 0.1333],\n [0.1333, 0.1176, 0.1333]]]])'], 'prompt': ["{'2': {'inputs': {'precision': 'auto'}, 'class_type': 'LoadSharpModel', '_meta': {'title': '(Down)Load SHARP Model'}}, '7': {'inputs': {'focal_length_mm': ['9', 2], 'output_prefix': 'sharp', 'model': ['2', 0], 'image': ['9', 0]}, 'class_type': 'SharpPredict', '_meta': {'title': 'SHARP Predict (Image to PLY)'}}, '8': {'inputs': {'preview_gaussian': '', 'ply_path': ['7', 0], 'extrinsics': ['7', 1], 'intrinsics': ['7', 2]}, 'class_type': 'GeomPackPreviewGaussian', '_meta': {'title': 'Preview Gaussian'}}, '9': {'inputs': {'image': 'eth3d.png', 'default_focal_mm': 30.0}, 'class_type': 'LoadImageWithExif', '_meta': {'title': 'Load Image with EXIF (Focal Length)'}}}"], 'extra_pnginfo': ["{'workflow': {'id': 'sharp-basic-workflow', 'revision': 0, 'last_node_id': 10, 'last_link_id': 21, 'nodes': [{'id': 2, 'type': 'LoadSharpModel', 'pos': [-150, -400], 'size': [270, 106.65625], 'flags': {}, 'order': 0, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'model_config', 'type': 'SHARP_MODEL_CONFIG', 'links': [11]}], 'properties': {'Node name for S&R': 'LoadSharpModel', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': '9f1b9c726e2cfc0118866c3df783e7f6bc895226'}, 'widgets_values': ['auto']}, {'id': 9, 'type': 'LoadImageWithExif', 'pos': [-208.74978010739324, -99.02778023242435], 'size': [342.28125, 420], 'flags': {}, 'order': 1, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'image', 'type': 'IMAGE', 'links': [19]}, {'name': 'mask', 'type': 'MASK', 'links': None}, {'name': 'focal_length_mm', 'type': 'FLOAT', 'links': [20]}], 'properties': {'Node name for S&R': 'LoadImageWithExif', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'c69751a59b587c3b83d0e37cfe2bab3bc838574a'}, 'widgets_values': ['eth3d.png', 30, 'image']}, {'id': 7, 'type': 'SharpPredict', 'pos': [226.15696022727278, -245.70490056818184], 'size': [298.890625, 212], 'flags': {}, 'order': 2, 'mode': 0, 'inputs': [{'name': 'model', 'type': 'SHARP_MODEL_CONFIG', 'link': 11}, {'name': 'image', 'type': 'IMAGE', 'link': 19}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': None}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': None}, {'name': 'focal_length_mm', 'shape': 7, 'type': 'FLOAT', 'widget': {'name': 'focal_length_mm'}, 'link': 20}], 'outputs': [{'name': 'ply_path', 'type': 'STRING', 'links': [16]}, {'name': 'extrinsics', 'type': 'EXTRINSICS', 'links': [17]}, {'name': 'intrinsics', 'type': 'INTRINSICS', 'links': [18]}], 'properties': {'Node name for S&R': 'SharpPredict', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'c69751a59b587c3b83d0e37cfe2bab3bc838574a'}, 'widgets_values': [30, 'sharp']}, {'id': 8, 'type': 'GeomPackPreviewGaussian', 'pos': [641.9426914835157, -275.49795068697], 'size': [512, 658], 'flags': {}, 'order': 3, 'mode': 0, 'inputs': [{'name': 'ply_path', 'type': 'STRING', 'link': 16}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': 17}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': 18}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewGaussian', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack', 'ver': 'df6bf3d73d0dda9c6ad7428eb58a00dc8cbaf6ed', 'cnr_id': 'comfyui-geometrypack'}, 'widgets_values': ['']}], 'links': [[11, 2, 0, 7, 0, 'SHARP_MODEL'], [16, 7, 0, 8, 0, 'STRING'], [17, 7, 1, 8, 1, 'EXTRINSICS'], [18, 7, 2, 8, 2, 'INTRINSICS'], [19, 9, 0, 7, 1, 'IMAGE'], [20, 9, 2, 7, 4, 'FLOAT']], 'groups': [], 'config': {}, 'extra': {'ds': {'scale': 1.1, 'offset': [292.8560303656579, 525.3669699599554]}, 'workflowRendererVersion': 'LG', 'frontendVersion': '1.43.18'}, 'version': 0.4}}"]}, 'current_outputs': ['7', '8', '2', '9'], 'timestamp': 1778448210087} Status: FAILED - Error: Workflow execution failed: {'prompt_id': 'fb1b8573-b39c-489a-9b0c-0f581bba098d', 'node_id': '2', 'node_type': 'LoadSharpModel', 'executed': ['9'], 'exception_message': 'No module named \'comfy_aimdo\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 170, in execute\n import comfy.model_management\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in \n import comfy_aimdo.vram_buffer\nModuleNotFoundError: No module named \'comfy_aimdo\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'precision': ['auto']}, 'current_outputs': ['9', '8', '2', '7'], 'timestamp': 1778446348934} - Details: Workflow: /tmp/comfy-test-run-frk8o1_6/ComfyUI-Sharp/workflows/sharp_exif.json -Node error: LoadSharpModel \ No newline at end of file + Error: Workflow execution failed: {'prompt_id': '17b4c6a0-5277-443b-9e4a-9650d557d2fd', 'node_id': '7', 'node_type': 'SharpPredict', 'executed': ['2', '9'], 'exception_message': 'No module named \'scipy\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n ^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute\n patcher = _load_sharp_model(model)\n ^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model\n import comfy.model_patcher\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in \n import comfy.hooks\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in \n import comfy.lora\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in \n import comfy.model_base\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in \n from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in \n from ..sdpose import HeatmapHead\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in \n from scipy.ndimage import gaussian_filter\nModuleNotFoundError: No module named \'scipy\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n ^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n ^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'focal_length_mm': [20], 'output_prefix': ['sharp'], 'model': ["{'model_path': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/models/sharp/sharp_2572gikvuh.pt', 'precision': 'auto', 'dtype': 'fp32'}"], 'image': ['tensor([[[[0.2157, 0.1647, 0.1569],\n [0.2275, 0.1608, 0.1608],\n [0.2275, 0.1647, 0.1529],\n ...,\n [0.4471, 0.4745, 0.4863],\n [0.4510, 0.4745, 0.4863],\n [0.4431, 0.4745, 0.4745]],\n\n [[0.2196, 0.1686, 0.1569],\n [0.2314, 0.1647, 0.1608],\n [0.2353, 0.1647, 0.1647],\n ...,\n [0.4549, 0.4784, 0.4706],\n [0.4549, 0.4706, 0.4784],\n [0.4431, 0.4706, 0.4667]],\n\n [[0.2314, 0.1725, 0.1569],\n [0.2510, 0.1725, 0.1608],\n [0.2392, 0.1725, 0.1686],\n ...,\n [0.4588, 0.4745, 0.4627],\n [0.4510, 0.4745, 0.4667],\n [0.4471, 0.4706, 0.4627]],\n\n ...,\n\n [[0.1569, 0.1647, 0.1843],\n [0.1647, 0.1725, 0.1882],\n [0.1490, 0.1686, 0.1922],\n ...,\n [0.1020, 0.1137, 0.1373],\n [0.1137, 0.1176, 0.1412],\n [0.0863, 0.1176, 0.1373]],\n\n [[0.1569, 0.1686, 0.1804],\n [0.1569, 0.1647, 0.1961],\n [0.1490, 0.1647, 0.1961],\n ...,\n [0.1059, 0.1216, 0.1294],\n [0.1176, 0.1216, 0.1333],\n [0.1059, 0.1137, 0.1373]],\n\n [[0.1608, 0.1686, 0.1843],\n [0.1608, 0.1686, 0.1882],\n [0.1569, 0.1686, 0.1882],\n ...,\n [0.1059, 0.1176, 0.1333],\n [0.1137, 0.1176, 0.1333],\n [0.1333, 0.1176, 0.1333]]]])'], 'prompt': ["{'2': {'inputs': {'precision': 'auto'}, 'class_type': 'LoadSharpModel', '_meta': {'title': '(Down)Load SHARP Model'}}, '7': {'inputs': {'focal_length_mm': ['9', 2], 'output_prefix': 'sharp', 'model': ['2', 0], 'image': ['9', 0]}, 'class_type': 'SharpPredict', '_meta': {'title': 'SHARP Predict (Image to PLY)'}}, '8': {'inputs': {'preview_gaussian': '', 'ply_path': ['7', 0], 'extrinsics': ['7', 1], 'intrinsics': ['7', 2]}, 'class_type': 'GeomPackPreviewGaussian', '_meta': {'title': 'Preview Gaussian'}}, '9': {'inputs': {'image': 'eth3d.png', 'default_focal_mm': 30.0}, 'class_type': 'LoadImageWithExif', '_meta': {'title': 'Load Image with EXIF (Focal Length)'}}}"], 'extra_pnginfo': ["{'workflow': {'id': 'sharp-basic-workflow', 'revision': 0, 'last_node_id': 10, 'last_link_id': 21, 'nodes': [{'id': 2, 'type': 'LoadSharpModel', 'pos': [-150, -400], 'size': [270, 106.65625], 'flags': {}, 'order': 0, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'model_config', 'type': 'SHARP_MODEL_CONFIG', 'links': [11]}], 'properties': {'Node name for S&R': 'LoadSharpModel', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': '9f1b9c726e2cfc0118866c3df783e7f6bc895226'}, 'widgets_values': ['auto']}, {'id': 9, 'type': 'LoadImageWithExif', 'pos': [-208.74978010739324, -99.02778023242435], 'size': [342.28125, 420], 'flags': {}, 'order': 1, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'image', 'type': 'IMAGE', 'links': [19]}, {'name': 'mask', 'type': 'MASK', 'links': None}, {'name': 'focal_length_mm', 'type': 'FLOAT', 'links': [20]}], 'properties': {'Node name for S&R': 'LoadImageWithExif', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'c69751a59b587c3b83d0e37cfe2bab3bc838574a'}, 'widgets_values': ['eth3d.png', 30, 'image']}, {'id': 7, 'type': 'SharpPredict', 'pos': [226.15696022727278, -245.70490056818184], 'size': [298.890625, 212], 'flags': {}, 'order': 2, 'mode': 0, 'inputs': [{'name': 'model', 'type': 'SHARP_MODEL_CONFIG', 'link': 11}, {'name': 'image', 'type': 'IMAGE', 'link': 19}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': None}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': None}, {'name': 'focal_length_mm', 'shape': 7, 'type': 'FLOAT', 'widget': {'name': 'focal_length_mm'}, 'link': 20}], 'outputs': [{'name': 'ply_path', 'type': 'STRING', 'links': [16]}, {'name': 'extrinsics', 'type': 'EXTRINSICS', 'links': [17]}, {'name': 'intrinsics', 'type': 'INTRINSICS', 'links': [18]}], 'properties': {'Node name for S&R': 'SharpPredict', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'c69751a59b587c3b83d0e37cfe2bab3bc838574a'}, 'widgets_values': [30, 'sharp']}, {'id': 8, 'type': 'GeomPackPreviewGaussian', 'pos': [641.9426914835157, -275.49795068697], 'size': [512, 658], 'flags': {}, 'order': 3, 'mode': 0, 'inputs': [{'name': 'ply_path', 'type': 'STRING', 'link': 16}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': 17}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': 18}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewGaussian', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack', 'ver': 'df6bf3d73d0dda9c6ad7428eb58a00dc8cbaf6ed', 'cnr_id': 'comfyui-geometrypack'}, 'widgets_values': ['']}], 'links': [[11, 2, 0, 7, 0, 'SHARP_MODEL'], [16, 7, 0, 8, 0, 'STRING'], [17, 7, 1, 8, 1, 'EXTRINSICS'], [18, 7, 2, 8, 2, 'INTRINSICS'], [19, 9, 0, 7, 1, 'IMAGE'], [20, 9, 2, 7, 4, 'FLOAT']], 'groups': [], 'config': {}, 'extra': {'ds': {'scale': 1.1, 'offset': [292.8560303656579, 525.3669699599554]}, 'workflowRendererVersion': 'LG', 'frontendVersion': '1.43.18'}, 'version': 0.4}}"]}, 'current_outputs': ['7', '8', '2', '9'], 'timestamp': 1778448210087} + Details: Workflow: /tmp/comfy-test-run-25wt5ji7/ComfyUI-Sharp/workflows/sharp_exif.json +Node error: SharpPredict \ No newline at end of file diff --git a/dev/linux-cpu/logs/sharp_exif_console.log b/dev/linux-cpu/logs/sharp_exif_console.log index 9e7c58c..bf68c1c 100644 --- a/dev/linux-cpu/logs/sharp_exif_console.log +++ b/dev/linux-cpu/logs/sharp_exif_console.log @@ -9,6 +9,17 @@ [Console-error] Failed to load resource: the server responded with a status of 404 (Not Found) [Console-warning] WARNING: Multiple instances of Three.js being imported. [Console-log] [VTK Bundle] GLTFImporter included in bundle +[Console-log] [FBXAnimationViewer] Loading FBX Animation Viewer extension +[Console-log] [FBXAnimationViewer] Loading FBX Animation Viewer extension... +[Console-log] [FBXAnimationViewer] Extension registered: comfy3d.fbxanimationviewer +[Console-log] [BVHViewer] Loading BVH Viewer extension +[Console-log] [BVHViewer] Loading BVH viewer extension... +[Console-log] [BVHViewer] Extension registered: comfy3d.bvhviewer +[Console-log] [GeomPack] Loading VTK.js textured mesh preview extension... +[Console-log] [GeomPack] VTK.js textured mesh preview extension registered +[Console-log] [GeomPack] Loading UV mesh preview extension... +[Console-log] [GeomPack] UV mesh preview extension registered +[Console-log] [GeomPack Multi JS] Loading mesh_preview_multi.js extension [Console-log] [FBX Preview] Auto-registering for all known FBX preview node types... [Console-log] [UniRig] Loading FBX mesh preview extension... [Console-log] [UniRig] Detected extension folder: ComfyUI-GeometryPack @@ -22,29 +33,18 @@ [Console-log] [MotionCapture] Loading FBX mesh preview extension... [Console-log] [MotionCapture] Detected extension folder: ComfyUI-GeometryPack [Console-log] [MotionCapture] FBX mesh preview extension registered -[Console-log] [UniRig Compare] Loading compare skeleton widget... -[Console-log] [UniRig Compare] Detected extension folder: ComfyUI-GeometryPack -[Console-log] [UniRig Compare] Compare skeleton widget registered -[Console-log] [BVHViewer] Loading BVH Viewer extension -[Console-log] [BVHViewer] Loading BVH viewer extension... -[Console-log] [BVHViewer] Extension registered: comfy3d.bvhviewer -[Console-log] [FBXAnimationViewer] Loading FBX Animation Viewer extension -[Console-log] [FBXAnimationViewer] Loading FBX Animation Viewer extension... -[Console-log] [FBXAnimationViewer] Extension registered: comfy3d.fbxanimationviewer -[Console-log] [GeomPack] Loading VTK.js textured mesh preview extension... -[Console-log] [GeomPack] VTK.js textured mesh preview extension registered -[Console-log] [CompareSMPLBVH] Loading Compare SMPL BVH extension -[Console-log] [CompareSMPLBVH] Loading Compare SMPL BVH extension... -[Console-log] [CompareSMPLBVH] Extension registered: comfy3d.comparesmplbvh -[Console-log] [GeomPack Multi JS] Loading mesh_preview_multi.js extension [Console-log] [UniRig Debug] Loading FBX mesh preview extension... [Console-log] [UniRig Debug] Detected extension folder: ComfyUI-GeometryPack [Console-log] [UniRig Debug] FBX mesh preview extension registered -[Console-log] [GeomPack] Loading UV mesh preview extension... -[Console-log] [GeomPack] UV mesh preview extension registered [Console-log] [GeomPack] Loading mesh preview extension... [Console-log] [GeomPack] Mesh preview extension registered +[Console-log] [CompareSMPLBVH] Loading Compare SMPL BVH extension +[Console-log] [CompareSMPLBVH] Loading Compare SMPL BVH extension... +[Console-log] [CompareSMPLBVH] Extension registered: comfy3d.comparesmplbvh [Console-log] [GeomPack Gaussian] Loading extension... +[Console-log] [UniRig Compare] Loading compare skeleton widget... +[Console-log] [UniRig Compare] Detected extension folder: ComfyUI-GeometryPack +[Console-log] [UniRig Compare] Compare skeleton widget registered [Console-warning] [MaskEditor] ComfyApp.open_maskeditor is deprecated. Plugins should migrate to using the command system or direct node context menu integration. [Console-log] [GeomPack] Registering Preview Mesh node [Console-log] [GeomPack] Registering Preview Mesh UV node diff --git a/dev/linux-cpu/logs/sharp_exif_resources.csv b/dev/linux-cpu/logs/sharp_exif_resources.csv index eee0545..7472ab7 100644 --- a/dev/linux-cpu/logs/sharp_exif_resources.csv +++ b/dev/linux-cpu/logs/sharp_exif_resources.csv @@ -1,9 +1,9 @@ # total_ram_gb=15.6 t,ram_gb,vram_gb -0.0,1.21, -1.0,1.21, -2.0,1.21, -3.0,1.21, -4.0,1.21, -5.0,1.21, -6.0,1.23, +0.0,1.28, +1.0,1.28, +2.0,1.28, +3.0,1.28, +4.0,1.28, +5.0,1.28, +6.1,1.33, diff --git a/dev/linux-cpu/models.json b/dev/linux-cpu/models.json new file mode 100644 index 0000000..209a6cd --- /dev/null +++ b/dev/linux-cpu/models.json @@ -0,0 +1,39 @@ +{ + "models_dir": "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/models", + "summary": { + "total_files": 4, + "total_size_bytes": 2809738549, + "total_size_human": "2.6 GB" + }, + "folders": { + "sharp": { + "total_size_bytes": 2809738549, + "total_size_human": "2.6 GB", + "source": { + "type": "unknown" + }, + "files": [ + { + "path": "sharp_2572gikvuh.pt", + "size_bytes": 2809738232, + "size_human": "2.6 GB" + }, + { + "path": ".cache/huggingface/CACHEDIR.TAG", + "size_bytes": 191, + "size_human": "191.0 B" + }, + { + "path": ".cache/huggingface/download/sharp_2572gikvuh.pt.metadata", + "size_bytes": 125, + "size_human": "125.0 B" + }, + { + "path": ".cache/huggingface/.gitignore", + "size_bytes": 1, + "size_human": "1.0 B" + } + ] + } + } +} \ No newline at end of file diff --git a/dev/linux-cpu/results.json b/dev/linux-cpu/results.json index 2927590..16650f1 100644 --- a/dev/linux-cpu/results.json +++ b/dev/linux-cpu/results.json @@ -1,12 +1,12 @@ { - "timestamp": "2026-05-10T20:52:29.191806+00:00", + "timestamp": "2026-05-10T21:23:30.271452+00:00", "platform": "linux", "hardware": { "os": "Linux-6.17.0-1010-azure-x86_64-with-glibc2.39", "cpu": "AMD EPYC 7763 64-Core Processor" }, - "commit_hash": "65fc0451c69a70c4c1ee1070c24513809746ccf4", - "run_url": "https://github.com/PozzettiAndrea/comfy-gpu-ci/actions/runs/25639428631", + "commit_hash": "b82e1d8162cdd3a2ad2a8c18145fa88434b2306f", + "run_url": "https://github.com/PozzettiAndrea/comfy-gpu-ci/actions/runs/25640092318", "success": false, "summary": { "total": 3, @@ -24,34 +24,34 @@ { "name": "sharp_basic", "status": "fail", - "duration_seconds": 9.05, - "error": "Workflow execution failed: {'prompt_id': '2da0a0a3-0f1d-4008-9544-3b71b057b9f6', 'node_id': '2', 'node_type': 'LoadSharpModel', 'executed': ['1'], 'exception_message': 'No module named \\'comfy_aimdo\\'\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 170, in execute\\n import comfy.model_management\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py\", line 34, in \\n import comfy_aimdo.vram_buffer\\nModuleNotFoundError: No module named \\'comfy_aimdo\\'\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\\n result = worker.call_method(\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n'], 'current_inputs': {'precision': ['auto']}, 'current_outputs': ['5', '1', '2', '4'], 'timestamp': 1778446342071}\n\nDetails:\nWorkflow: /tmp/comfy-test-run-frk8o1_6/ComfyUI-Sharp/workflows/sharp_basic.json\nNode error: LoadSharpModel", + "duration_seconds": 21.23, + "error": "Workflow execution failed: {'prompt_id': '680e7efb-b7e3-4246-98ac-baa7a4da9ce6', 'node_id': '5', 'node_type': 'SharpPredict', 'executed': ['1', '2'], 'exception_message': 'No module named \\'scipy\\'\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n ^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py\", line 124, in decorate_context\\n return func(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py\", line 111, in execute\\n patcher = _load_sharp_model(model)\\n ^^^^^^^^^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 75, in _load_sharp_model\\n import comfy.model_patcher\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py\", line 32, in \\n import comfy.hooks\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py\", line 14, in \\n import comfy.lora\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py\", line 23, in \\n import comfy.model_base\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py\", line 25, in \\n from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py\", line 21, in \\n from ..sdpose import HeatmapHead\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py\", line 3, in \\n from scipy.ndimage import gaussian_filter\\nModuleNotFoundError: No module named \\'scipy\\'\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n ^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\\n result = worker.call_method(\\n ^^^^^^^^^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n'], 'current_inputs': {'focal_length_mm': [30], 'output_prefix': ['sharp'], 'model': [\"{'model_path': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/models/sharp/sharp_2572gikvuh.pt', 'precision': 'auto', 'dtype': 'fp32'}\"], 'image': ['tensor([[[[0.0039, 0.4824, 0.9569],\\n [0.0039, 0.4824, 0.9569],\\n [0.0039, 0.4824, 0.9569],\\n ...,\\n [0.0510, 0.0275, 0.0000],\\n [0.0510, 0.0275, 0.0000],\\n [0.0510, 0.0275, 0.0000]],\\n\\n [[0.0039, 0.4824, 0.9569],\\n [0.0039, 0.4824, 0.9569],\\n [0.0039, 0.4824, 0.9569],\\n ...,\\n [0.0510, 0.0275, 0.0000],\\n [0.0510, 0.0275, 0.0000],\\n [0.0510, 0.0275, 0.0000]],\\n\\n [[0.0039, 0.4824, 0.9569],\\n [0.0039, 0.4824, 0.9569],\\n [0.0039, 0.4824, 0.9569],\\n ...,\\n [0.0510, 0.0275, 0.0000],\\n [0.0510, 0.0275, 0.0000],\\n [0.0510, 0.0275, 0.0000]],\\n\\n ...,\\n\\n [[0.6824, 0.6118, 0.5333],\\n [0.6824, 0.6118, 0.5333],\\n [0.6824, 0.6118, 0.5333],\\n ...,\\n [0.5098, 0.4627, 0.4235],\\n [0.5098, 0.4627, 0.4235],\\n [0.5098, 0.4627, 0.4235]],\\n\\n [[0.6824, 0.6118, 0.5333],\\n [0.6824, 0.6118, 0.5333],\\n [0.6824, 0.6118, 0.5333],\\n ...,\\n [0.5059, 0.4588, 0.4392],\\n [0.5059, 0.4627, 0.4314],\\n [0.5059, 0.4627, 0.4314]],\\n\\n [[0.6824, 0.6118, 0.5333],\\n [0.6824, 0.6118, 0.5333],\\n [0.6824, 0.6118, 0.5333],\\n ...,\\n [0.5059, 0.4588, 0.4392],\\n [0.5059, 0.4627, 0.4314],\\n [0.5059, 0.4627, 0.4314]]]])'], 'prompt': [\"{'1': {'inputs': {'image': 'beach.jpg'}, 'class_type': 'LoadImage', '_meta': {'title': 'Load Image'}, 'is_changed': ['ee4f94632a5ec7038826e875829a62a81dc2a9b85ed59440f2eaa37b3704fa24']}, '2': {'inputs': {'precision': 'auto'}, 'class_type': 'LoadSharpModel', '_meta': {'title': '(Down)Load SHARP Model'}}, '4': {'inputs': {'preview_gaussian': '', 'ply_path': ['5', 0], 'extrinsics': ['5', 1], 'intrinsics': ['5', 2]}, 'class_type': 'GeomPackPreviewGaussian', '_meta': {'title': 'Preview Gaussian'}}, '5': {'inputs': {'focal_length_mm': 30.0, 'output_prefix': 'sharp', 'model': ['2', 0], 'image': ['1', 0]}, 'class_type': 'SharpPredict', '_meta': {'title': 'SHARP Predict (Image to PLY)'}}}\"], 'extra_pnginfo': [\"{'workflow': {'id': 'sharp-basic-workflow', 'revision': 0, 'last_node_id': 5, 'last_link_id': 10, 'nodes': [{'id': 2, 'type': 'LoadSharpModel', 'pos': [-150, -400], 'size': [270, 106.65625], 'flags': {}, 'order': 0, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'model_config', 'type': 'SHARP_MODEL_CONFIG', 'links': [6]}], 'properties': {'Node name for S&R': 'LoadSharpModel', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': '9f1b9c726e2cfc0118866c3df783e7f6bc895226'}, 'widgets_values': ['auto']}, {'id': 1, 'type': 'LoadImage', 'pos': [-150, -100], 'size': [274, 340], 'flags': {}, 'order': 1, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'IMAGE', 'type': 'IMAGE', 'links': [7]}, {'name': 'MASK', 'type': 'MASK', 'links': []}], 'properties': {'Node name for S&R': 'LoadImage', 'cnr_id': 'comfy-core', 'ver': '0.5.1'}, 'widgets_values': ['beach.jpg', 'image']}, {'id': 5, 'type': 'SharpPredict', 'pos': [181.546875, -251.55078125], 'size': [298.890625, 212], 'flags': {}, 'order': 2, 'mode': 0, 'inputs': [{'name': 'model', 'type': 'SHARP_MODEL_CONFIG', 'link': 6}, {'name': 'image', 'type': 'IMAGE', 'link': 7}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': None}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': None}], 'outputs': [{'name': 'ply_path', 'type': 'STRING', 'links': [8]}, {'name': 'extrinsics', 'type': 'EXTRINSICS', 'links': [9]}, {'name': 'intrinsics', 'type': 'INTRINSICS', 'links': [10]}], 'properties': {'Node name for S&R': 'SharpPredict', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'aa98b213e3d0770477bbf46046094c5cb8ff6052'}, 'widgets_values': [30, 'sharp']}, {'id': 4, 'type': 'GeomPackPreviewGaussian', 'pos': [629.92578125, -322.046875], 'size': [512, 658], 'flags': {}, 'order': 3, 'mode': 0, 'inputs': [{'name': 'ply_path', 'type': 'STRING', 'link': 8}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': 9}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': 10}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewGaussian', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack', 'ver': 'b7df285fc5b3fef7aad434d8b6e8698efed6358b', 'cnr_id': 'comfyui-geometrypack'}, 'widgets_values': ['']}], 'links': [[6, 2, 0, 5, 0, 'SHARP_MODEL'], [7, 1, 0, 5, 1, 'IMAGE'], [8, 5, 0, 4, 0, 'STRING'], [9, 5, 1, 4, 1, 'EXTRINSICS'], [10, 5, 2, 4, 2, 'INTRINSICS']], 'groups': [], 'config': {}, 'extra': {'ds': {'scale': 1, 'offset': [300.79296875, 604.72265625]}, 'workflowRendererVersion': 'LG', 'frontendVersion': '1.43.18'}, 'version': 0.4}}\"]}, 'current_outputs': ['1', '2', '5', '4'], 'timestamp': 1778448202982}\n\nDetails:\nWorkflow: /tmp/comfy-test-run-25wt5ji7/ComfyUI-Sharp/workflows/sharp_basic.json\nNode error: SharpPredict", "hardware": { "os": "Linux-6.17.0-1010-azure-x86_64-with-glibc2.39", "cpu": "AMD EPYC 7763 64-Core Processor" }, "resources": { "ram": { - "peak": 1.15, - "avg": 0.88 + "peak": 1.99, + "avg": 1.28 }, "total_ram_gb": 15.6, - "samples": 9 + "samples": 22 } }, { "name": "sharp_exif", "status": "fail", - "duration_seconds": 6.32, - "error": "Workflow execution failed: {'prompt_id': 'fb1b8573-b39c-489a-9b0c-0f581bba098d', 'node_id': '2', 'node_type': 'LoadSharpModel', 'executed': ['9'], 'exception_message': 'No module named \\'comfy_aimdo\\'\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 170, in execute\\n import comfy.model_management\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py\", line 34, in \\n import comfy_aimdo.vram_buffer\\nModuleNotFoundError: No module named \\'comfy_aimdo\\'\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\\n result = worker.call_method(\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n'], 'current_inputs': {'precision': ['auto']}, 'current_outputs': ['9', '8', '2', '7'], 'timestamp': 1778446348934}\n\nDetails:\nWorkflow: /tmp/comfy-test-run-frk8o1_6/ComfyUI-Sharp/workflows/sharp_exif.json\nNode error: LoadSharpModel", + "duration_seconds": 6.37, + "error": "Workflow execution failed: {'prompt_id': '17b4c6a0-5277-443b-9e4a-9650d557d2fd', 'node_id': '7', 'node_type': 'SharpPredict', 'executed': ['2', '9'], 'exception_message': 'No module named \\'scipy\\'\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n ^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py\", line 124, in decorate_context\\n return func(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py\", line 111, in execute\\n patcher = _load_sharp_model(model)\\n ^^^^^^^^^^^^^^^^^^^^^^^^\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py\", line 75, in _load_sharp_model\\n import comfy.model_patcher\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py\", line 32, in \\n import comfy.hooks\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py\", line 14, in \\n import comfy.lora\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py\", line 23, in \\n import comfy.model_base\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py\", line 25, in \\n from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py\", line 21, in \\n from ..sdpose import HeatmapHead\\n File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py\", line 3, in \\n from scipy.ndimage import gaussian_filter\\nModuleNotFoundError: No module named \\'scipy\\'\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n ^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py\", line 536, in proxy\\n result = worker.call_method(\\n ^^^^^^^^^^^^^^^^^^^\\n', ' File \"/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n'], 'current_inputs': {'focal_length_mm': [20], 'output_prefix': ['sharp'], 'model': [\"{'model_path': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/models/sharp/sharp_2572gikvuh.pt', 'precision': 'auto', 'dtype': 'fp32'}\"], 'image': ['tensor([[[[0.2157, 0.1647, 0.1569],\\n [0.2275, 0.1608, 0.1608],\\n [0.2275, 0.1647, 0.1529],\\n ...,\\n [0.4471, 0.4745, 0.4863],\\n [0.4510, 0.4745, 0.4863],\\n [0.4431, 0.4745, 0.4745]],\\n\\n [[0.2196, 0.1686, 0.1569],\\n [0.2314, 0.1647, 0.1608],\\n [0.2353, 0.1647, 0.1647],\\n ...,\\n [0.4549, 0.4784, 0.4706],\\n [0.4549, 0.4706, 0.4784],\\n [0.4431, 0.4706, 0.4667]],\\n\\n [[0.2314, 0.1725, 0.1569],\\n [0.2510, 0.1725, 0.1608],\\n [0.2392, 0.1725, 0.1686],\\n ...,\\n [0.4588, 0.4745, 0.4627],\\n [0.4510, 0.4745, 0.4667],\\n [0.4471, 0.4706, 0.4627]],\\n\\n ...,\\n\\n [[0.1569, 0.1647, 0.1843],\\n [0.1647, 0.1725, 0.1882],\\n [0.1490, 0.1686, 0.1922],\\n ...,\\n [0.1020, 0.1137, 0.1373],\\n [0.1137, 0.1176, 0.1412],\\n [0.0863, 0.1176, 0.1373]],\\n\\n [[0.1569, 0.1686, 0.1804],\\n [0.1569, 0.1647, 0.1961],\\n [0.1490, 0.1647, 0.1961],\\n ...,\\n [0.1059, 0.1216, 0.1294],\\n [0.1176, 0.1216, 0.1333],\\n [0.1059, 0.1137, 0.1373]],\\n\\n [[0.1608, 0.1686, 0.1843],\\n [0.1608, 0.1686, 0.1882],\\n [0.1569, 0.1686, 0.1882],\\n ...,\\n [0.1059, 0.1176, 0.1333],\\n [0.1137, 0.1176, 0.1333],\\n [0.1333, 0.1176, 0.1333]]]])'], 'prompt': [\"{'2': {'inputs': {'precision': 'auto'}, 'class_type': 'LoadSharpModel', '_meta': {'title': '(Down)Load SHARP Model'}}, '7': {'inputs': {'focal_length_mm': ['9', 2], 'output_prefix': 'sharp', 'model': ['2', 0], 'image': ['9', 0]}, 'class_type': 'SharpPredict', '_meta': {'title': 'SHARP Predict (Image to PLY)'}}, '8': {'inputs': {'preview_gaussian': '', 'ply_path': ['7', 0], 'extrinsics': ['7', 1], 'intrinsics': ['7', 2]}, 'class_type': 'GeomPackPreviewGaussian', '_meta': {'title': 'Preview Gaussian'}}, '9': {'inputs': {'image': 'eth3d.png', 'default_focal_mm': 30.0}, 'class_type': 'LoadImageWithExif', '_meta': {'title': 'Load Image with EXIF (Focal Length)'}}}\"], 'extra_pnginfo': [\"{'workflow': {'id': 'sharp-basic-workflow', 'revision': 0, 'last_node_id': 10, 'last_link_id': 21, 'nodes': [{'id': 2, 'type': 'LoadSharpModel', 'pos': [-150, -400], 'size': [270, 106.65625], 'flags': {}, 'order': 0, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'model_config', 'type': 'SHARP_MODEL_CONFIG', 'links': [11]}], 'properties': {'Node name for S&R': 'LoadSharpModel', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': '9f1b9c726e2cfc0118866c3df783e7f6bc895226'}, 'widgets_values': ['auto']}, {'id': 9, 'type': 'LoadImageWithExif', 'pos': [-208.74978010739324, -99.02778023242435], 'size': [342.28125, 420], 'flags': {}, 'order': 1, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'image', 'type': 'IMAGE', 'links': [19]}, {'name': 'mask', 'type': 'MASK', 'links': None}, {'name': 'focal_length_mm', 'type': 'FLOAT', 'links': [20]}], 'properties': {'Node name for S&R': 'LoadImageWithExif', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'c69751a59b587c3b83d0e37cfe2bab3bc838574a'}, 'widgets_values': ['eth3d.png', 30, 'image']}, {'id': 7, 'type': 'SharpPredict', 'pos': [226.15696022727278, -245.70490056818184], 'size': [298.890625, 212], 'flags': {}, 'order': 2, 'mode': 0, 'inputs': [{'name': 'model', 'type': 'SHARP_MODEL_CONFIG', 'link': 11}, {'name': 'image', 'type': 'IMAGE', 'link': 19}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': None}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': None}, {'name': 'focal_length_mm', 'shape': 7, 'type': 'FLOAT', 'widget': {'name': 'focal_length_mm'}, 'link': 20}], 'outputs': [{'name': 'ply_path', 'type': 'STRING', 'links': [16]}, {'name': 'extrinsics', 'type': 'EXTRINSICS', 'links': [17]}, {'name': 'intrinsics', 'type': 'INTRINSICS', 'links': [18]}], 'properties': {'Node name for S&R': 'SharpPredict', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'c69751a59b587c3b83d0e37cfe2bab3bc838574a'}, 'widgets_values': [30, 'sharp']}, {'id': 8, 'type': 'GeomPackPreviewGaussian', 'pos': [641.9426914835157, -275.49795068697], 'size': [512, 658], 'flags': {}, 'order': 3, 'mode': 0, 'inputs': [{'name': 'ply_path', 'type': 'STRING', 'link': 16}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': 17}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': 18}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewGaussian', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack', 'ver': 'df6bf3d73d0dda9c6ad7428eb58a00dc8cbaf6ed', 'cnr_id': 'comfyui-geometrypack'}, 'widgets_values': ['']}], 'links': [[11, 2, 0, 7, 0, 'SHARP_MODEL'], [16, 7, 0, 8, 0, 'STRING'], [17, 7, 1, 8, 1, 'EXTRINSICS'], [18, 7, 2, 8, 2, 'INTRINSICS'], [19, 9, 0, 7, 1, 'IMAGE'], [20, 9, 2, 7, 4, 'FLOAT']], 'groups': [], 'config': {}, 'extra': {'ds': {'scale': 1.1, 'offset': [292.8560303656579, 525.3669699599554]}, 'workflowRendererVersion': 'LG', 'frontendVersion': '1.43.18'}, 'version': 0.4}}\"]}, 'current_outputs': ['7', '8', '2', '9'], 'timestamp': 1778448210087}\n\nDetails:\nWorkflow: /tmp/comfy-test-run-25wt5ji7/ComfyUI-Sharp/workflows/sharp_exif.json\nNode error: SharpPredict", "hardware": { "os": "Linux-6.17.0-1010-azure-x86_64-with-glibc2.39", "cpu": "AMD EPYC 7763 64-Core Processor" }, "resources": { "ram": { - "peak": 1.23, - "avg": 1.21 + "peak": 1.33, + "avg": 1.29 }, "total_ram_gb": 15.6, "samples": 7 diff --git a/dev/linux-cpu/session.log b/dev/linux-cpu/session.log index ea3bab8..fc8c137 100644 --- a/dev/linux-cpu/session.log +++ b/dev/linux-cpu/session.log @@ -1,4 +1,4 @@ -[00:00] Crash dump logging enabled: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/comfy-test-logs/Sharp-2049/dev/linux-cpu/crash_dump.log +[00:00] Crash dump logging enabled: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/comfy-test-logs/Sharp-2120/dev/linux-cpu/crash_dump.log [00:00] [00:00] [1/5] SYNTAX [00:00] ---------------------------------------- @@ -17,393 +17,460 @@ [00:00] Setting up ComfyUI... [00:00] Creating virtual environment... -[00:00] Running: uv venv /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv --python 3.10 +[00:00] Running: uv venv /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv --python 3.11 [00:01] Cloning ComfyUI (latest)... -[00:01] Running: git clone --depth 1 https://github.com/comfyanonymous/ComfyUI.git /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI +[00:01] Running: git clone --depth 1 https://github.com/comfyanonymous/ComfyUI.git /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI [00:02] Installing ComfyUI requirements... -[00:02] Running: uv pip install --python /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/bin/python -r /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/requirements.txt -[00:25] +[00:02] Running: uv pip install --python /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/bin/python -r /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/requirements.txt +[00:21] Installing custom node... -[00:25] Copying ComfyUI-Sharp to custom_nodes/... -[00:25] Installing node requirements... -[00:25] Running: uv pip install --python /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/bin/python -r /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/requirements.txt -[00:25] +[00:21] Copying ComfyUI-Sharp to custom_nodes/... +[00:21] Installing node requirements... +[00:21] Running: uv pip install --python /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/bin/python -r /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/requirements.txt +[00:22] Running install.py... -[00:25] Running: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/bin/python /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/install.py -[00:26] -[00:26] Installing 1 node dependencies... -[00:26] Cloning ComfyUI-GeometryPack... -[00:28] Installing requirements for ComfyUI-GeometryPack... -[00:28] Running install.py for ComfyUI-GeometryPack... -[00:29] [comfy-env] _discover: scanning /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes -[00:29] [comfy-env] _discover: ComfyUI-GeometryPack -> geometrypack-nodes (custom_nodes/ComfyUI-GeometryPack/nodes/comfy-env.toml) -[00:29] [comfy-env] _discover: ComfyUI-Sharp -> sharp-nodes (custom_nodes/ComfyUI-Sharp/nodes/comfy-env.toml) -[00:29] [comfy-env] Workspace: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce -[00:29] [comfy-env] ComfyUI: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI -[00:29] [comfy-env] Found 2 node config(s): -[00:29] - geometrypack-nodes <- custom_nodes/ComfyUI-GeometryPack/nodes/comfy-env.toml (python=host) -[00:29] - sharp-nodes <- custom_nodes/ComfyUI-Sharp/nodes/comfy-env.toml (python=host) -[00:29] [comfy-env] Bootstrap interpreter has python 3.10 + torch 2.11.0 (cpu). Looking for cuda-only wheels matching cpu/torch2.11/cp310. -[00:31] [comfy-env] GPU: No GPU detected -[00:31] [comfy-env] No CUDA detected -- pinning comfyui torch to CPU index -[00:31] [comfy-env] Root conda deps from ComfyUI-GeometryPack: ['av', 'ffmpeg'] -[00:31] [comfy-env] Comfyui feature pin: torch ==2.11.0, torchvision ==0.26.*, torchaudio ==2.11.* -[00:31] [comfy-env] Host glibc 2.39 -> system-requirements -[00:31] [comfy-env] Root conda deps (comfyui env only): ['av', 'ffmpeg'] -[00:31] [comfy-env] comfyui env: python 3.10, torch from https://download.pytorch.org/whl/cpu -[00:31] Generated /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/pixi.toml -[00:31] [comfy-env] Installing 2 environment(s): -[00:31] - geometrypack-nodes (python=host, 13 pypi deps, 1 cuda wheels) -[00:31] - sharp-nodes (python=host, 7 pypi deps) -[00:31] [comfy-env] Running `pixi install --all`... -[00:41] WARN Skipped running the post-link scripts because `run-post-link-scripts` = `false` -[00:41] - bin/.librsvg-pre-unlink.sh -[00:41] To enable them, run: -[00:41] pixi config set --local run-post-link-scripts insecure -[00:41] More info: -[00:41] https://pixi.sh/latest/reference/pixi_configuration/#run-post-link-scripts -[01:00] WARN Skipped running the post-link scripts because `run-post-link-scripts` = `false` -[01:00] - bin/.librsvg-pre-unlink.sh -[01:00] To enable them, run: -[01:00] pixi config set --local run-post-link-scripts insecure -[01:00] More info: -[01:00] https://pixi.sh/latest/reference/pixi_configuration/#run-post-link-scripts -[01:01] WARN Skipped running the post-link scripts because `run-post-link-scripts` = `false` -[01:01] - bin/.librsvg-pre-unlink.sh -[01:01] To enable them, run: -[01:01] pixi config set --local run-post-link-scripts insecure -[01:01] More info: -[01:01] https://pixi.sh/latest/reference/pixi_configuration/#run-post-link-scripts -[01:09] ✔ The following environments have been installed: default, comfyui, geometrypack-nodes, sharp-nodes. -[01:09] [comfy-env] Note: env `default` is on disk but no node declares it in this run. Leaving as-is. Remove via `pixi clean --environment default` if intended. -[01:09] [comfy-env] Install log: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/install.log -[01:09] -[01:09] Installation complete! -[01:10] -[01:10] [requirements] Re-installing main package requirements... -[01:10] Installing requirements for ComfyUI-Sharp... -[01:10] [comfy-env] _discover: scanning /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes -[01:10] [comfy-env] _discover: ComfyUI-GeometryPack -> geometrypack-nodes (custom_nodes/ComfyUI-GeometryPack/nodes/comfy-env.toml) -[01:10] [comfy-env] _discover: ComfyUI-Sharp -> sharp-nodes (custom_nodes/ComfyUI-Sharp/nodes/comfy-env.toml) -[01:10] [comfy-env] Workspace: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce -[01:10] [comfy-env] ComfyUI: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI -[01:10] [comfy-env] Found 2 node config(s): -[01:10] - geometrypack-nodes <- custom_nodes/ComfyUI-GeometryPack/nodes/comfy-env.toml (python=host) -[01:10] - sharp-nodes <- custom_nodes/ComfyUI-Sharp/nodes/comfy-env.toml (python=host) -[01:10] [comfy-env] Bootstrap interpreter has python 3.10 + torch 2.11.0 (cpu). Looking for cuda-only wheels matching cpu/torch2.11/cp310. -[01:11] [comfy-env] GPU: No GPU detected -[01:11] [comfy-env] No CUDA detected -- pinning comfyui torch to CPU index -[01:11] [comfy-env] Root conda deps from ComfyUI-GeometryPack: ['av', 'ffmpeg'] -[01:11] [comfy-env] Comfyui feature pin: torch ==2.11.0, torchvision ==0.26.*, torchaudio ==2.11.* -[01:11] [comfy-env] Host glibc 2.39 -> system-requirements -[01:11] [comfy-env] Root conda deps (comfyui env only): ['av', 'ffmpeg'] -[01:11] [comfy-env] comfyui env: python 3.10, torch from https://download.pytorch.org/whl/cpu -[01:11] Generated /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/pixi.toml -[01:11] [comfy-env] Installing 2 environment(s): -[01:11] - geometrypack-nodes (python=host, 13 pypi deps, 1 cuda wheels) -[01:11] - sharp-nodes (python=host, 7 pypi deps) -[01:11] [comfy-env] Running `pixi install --all`... -[01:11] ✔ The following environments have been installed: default, comfyui, geometrypack-nodes, sharp-nodes. -[01:11] [comfy-env] Note: env `default` is on disk but no node declares it in this run. Leaving as-is. Remove via `pixi clean --environment default` if intended. -[01:11] [comfy-env] Install log: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/install.log -[01:11] -[01:11] Installation complete! -[01:11] Installing 1 node dependency(ies)... -[01:11] ComfyUI-GeometryPack from PozzettiAndrea/ComfyUI-GeometryPack -[01:11] ComfyUI-GeometryPack already exists, skipping... -[01:11] Installing validation endpoint... -[01:11] Cloning PozzettiAndrea/ComfyUI-validate-endpoint... -[01:11] Running: git clone --depth 1 https://github.com/PozzettiAndrea/ComfyUI-validate-endpoint.git /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-validate-endpoint -[01:12] [INSTALL] PASSED -[01:12] -[01:12] [3/5] REGISTRATION -[01:12] ---------------------------------------- -[01:12] +[00:22] Running: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/bin/python /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/install.py +[00:22] +[00:22] Installing 1 node dependencies... +[00:22] Cloning ComfyUI-GeometryPack... +[00:24] Installing requirements for ComfyUI-GeometryPack... +[00:25] Running install.py for ComfyUI-GeometryPack... +[00:26] [comfy-env] _discover: scanning /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes +[00:26] [comfy-env] _discover: ComfyUI-GeometryPack -> geometrypack-nodes (custom_nodes/ComfyUI-GeometryPack/nodes/comfy-env.toml) +[00:26] [comfy-env] _discover: ComfyUI-Sharp -> sharp-nodes (custom_nodes/ComfyUI-Sharp/nodes/comfy-env.toml) +[00:26] [comfy-env] Workspace: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce +[00:26] [comfy-env] ComfyUI: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI +[00:26] [comfy-env] Found 2 node config(s): +[00:26] - geometrypack-nodes <- custom_nodes/ComfyUI-GeometryPack/nodes/comfy-env.toml (python=host) +[00:26] - sharp-nodes <- custom_nodes/ComfyUI-Sharp/nodes/comfy-env.toml (python=host) +[00:26] [comfy-env] Bootstrap interpreter has python 3.11 + torch 2.11.0 (cpu). Looking for cuda-only wheels matching cpu/torch2.11/cp311. +[00:28] [comfy-env] GPU: No GPU detected +[00:28] [comfy-env] No CUDA detected -- pinning comfyui torch to CPU index +[00:28] [comfy-env] Root conda deps from ComfyUI-GeometryPack: ['av', 'ffmpeg'] +[00:28] [comfy-env] Host glibc 2.39 -> system-requirements +[00:28] Generated /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/pixi.toml +[00:28] [comfy-env] Installing 2 environment(s): +[00:28] - geometrypack-nodes (python=host, 13 pypi deps, 1 cuda wheels) +[00:28] - sharp-nodes (python=host, 8 pypi deps) +[00:28] [comfy-env] Running `pixi install --all`... +[00:50] WARN Skipped running the post-link scripts because `run-post-link-scripts` = `false` +[00:50] - bin/.librsvg-pre-unlink.sh +[00:50] To enable them, run: +[00:50] pixi config set --local run-post-link-scripts insecure +[00:50] More info: +[00:50] https://pixi.sh/latest/reference/pixi_configuration/#run-post-link-scripts +[00:52] WARN Skipped running the post-link scripts because `run-post-link-scripts` = `false` +[00:52] - bin/.librsvg-pre-unlink.sh +[00:52] To enable them, run: +[00:52] pixi config set --local run-post-link-scripts insecure +[00:52] More info: +[00:52] https://pixi.sh/latest/reference/pixi_configuration/#run-post-link-scripts +[00:57] ✔ The following environments have been installed: default, geometrypack-nodes, sharp-nodes. +[00:57] [comfy-env] Note: env `default` is on disk but no node declares it in this run. Leaving as-is. Remove via `pixi clean --environment default` if intended. +[00:57] [comfy-env] Install log: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/install.log +[00:57] +[00:57] Installation complete! +[00:57] +[00:57] [requirements] Re-installing main package requirements... +[00:57] Installing requirements for ComfyUI-Sharp... +[00:57] [comfy-env] _discover: scanning /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes +[00:57] [comfy-env] _discover: ComfyUI-GeometryPack -> geometrypack-nodes (custom_nodes/ComfyUI-GeometryPack/nodes/comfy-env.toml) +[00:57] [comfy-env] _discover: ComfyUI-Sharp -> sharp-nodes (custom_nodes/ComfyUI-Sharp/nodes/comfy-env.toml) +[00:57] [comfy-env] Workspace: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce +[00:57] [comfy-env] ComfyUI: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI +[00:57] [comfy-env] Found 2 node config(s): +[00:57] - geometrypack-nodes <- custom_nodes/ComfyUI-GeometryPack/nodes/comfy-env.toml (python=host) +[00:57] - sharp-nodes <- custom_nodes/ComfyUI-Sharp/nodes/comfy-env.toml (python=host) +[00:57] [comfy-env] Bootstrap interpreter has python 3.11 + torch 2.11.0 (cpu). Looking for cuda-only wheels matching cpu/torch2.11/cp311. +[00:58] [comfy-env] GPU: No GPU detected +[00:58] [comfy-env] No CUDA detected -- pinning comfyui torch to CPU index +[00:58] [comfy-env] Root conda deps from ComfyUI-GeometryPack: ['av', 'ffmpeg'] +[00:58] [comfy-env] Host glibc 2.39 -> system-requirements +[00:58] Generated /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/pixi.toml +[00:58] [comfy-env] Installing 2 environment(s): +[00:58] - geometrypack-nodes (python=host, 13 pypi deps, 1 cuda wheels) +[00:58] - sharp-nodes (python=host, 8 pypi deps) +[00:58] [comfy-env] Running `pixi install --all`... +[00:58] ✔ The following environments have been installed: default, geometrypack-nodes, sharp-nodes. +[00:58] [comfy-env] Note: env `default` is on disk but no node declares it in this run. Leaving as-is. Remove via `pixi clean --environment default` if intended. +[00:58] [comfy-env] Install log: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/install.log +[00:58] +[00:58] Installation complete! +[00:59] Installing 1 node dependency(ies)... +[00:59] ComfyUI-GeometryPack from PozzettiAndrea/ComfyUI-GeometryPack +[00:59] ComfyUI-GeometryPack already exists, skipping... +[00:59] Installing validation endpoint... +[00:59] Cloning PozzettiAndrea/ComfyUI-validate-endpoint... +[00:59] Running: git clone --depth 1 https://github.com/PozzettiAndrea/ComfyUI-validate-endpoint.git /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-validate-endpoint +[00:59] [INSTALL] PASSED +[00:59] +[00:59] [3/5] REGISTRATION +[00:59] ---------------------------------------- +[00:59] [DEBUG] server=None, server_url=None, api=None -[01:12] +[00:59] Starting ComfyUI server... -[01:12] Starting ComfyUI server on port 41880... -[01:12] Starting ComfyUI server on port 41880... -[01:12] Waiting for server to be ready (timeout: 600s)... -[01:13] [ComfyUI] setup plugin alembic.autogenerate.schemas -[01:13] [ComfyUI] setup plugin alembic.autogenerate.tables -[01:13] [ComfyUI] setup plugin alembic.autogenerate.types -[01:13] [ComfyUI] setup plugin alembic.autogenerate.constraints -[01:13] [ComfyUI] setup plugin alembic.autogenerate.defaults -[01:13] [ComfyUI] setup plugin alembic.autogenerate.comments -[01:13] [ComfyUI] [comfy-env] ComfyUI-Sharp: 1 isolation env(s): -[01:13] [ComfyUI] [comfy-env] nodes -> /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes -[01:13] [ComfyUI] [comfy-env] prestartup complete -[01:13] [ComfyUI] [comfy-env] ComfyUI-GeometryPack: 1 isolation env(s): -[01:13] [ComfyUI] [comfy-env] nodes -> /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-GeometryPack/nodes -[01:13] [ComfyUI] [comfy-env] prestartup complete -[01:13] [ComfyUI] -[01:13] [ComfyUI] Prestartup times for custom nodes: -[01:13] [ComfyUI] 0.1 seconds: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-GeometryPack -[01:13] [ComfyUI] 0.2 seconds: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp -[01:13] [ComfyUI] -[01:17] [ComfyUI] Found comfy_kitchen backend triton: {'available': False, 'disabled': True, 'unavailable_reason': 'Neither CUDA nor XPU available on this system', 'capabilities': []} -[01:17] [ComfyUI] Found comfy_kitchen backend cuda: {'available': False, 'disabled': False, 'unavailable_reason': 'CUDA not available on this system', 'capabilities': []} -[01:17] [ComfyUI] Found comfy_kitchen backend eager: {'available': True, 'disabled': False, 'unavailable_reason': None, 'capabilities': ['apply_rope', 'apply_rope1', 'dequantize_mxfp8', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8', 'scaled_mm_mxfp8', 'scaled_mm_nvfp4']} -[01:17] [ComfyUI] Checkpoint files will always be loaded safely. -[01:17] [ComfyUI] Total VRAM 15990 MB, total RAM 15990 MB -[01:17] [ComfyUI] pytorch version: 2.11.0+cu130 -[01:17] [ComfyUI] Set vram state to: DISABLED -[01:17] [ComfyUI] Device: cpu -[01:18] [ComfyUI] Using sub quadratic optimization for attention, if you have memory or speed issues try using: --use-split-cross-attention -[01:23] [ComfyUI] Python version: 3.10.20 (main, May 8 2026, 18:32:33) [Clang 22.1.3 ] -[01:23] [ComfyUI] ComfyUI version: 0.20.1 -[01:23] [ComfyUI] comfy-aimdo version: 0.3.0 -[01:23] [ComfyUI] comfy-kitchen version: 0.2.8 -[01:23] [ComfyUI] ****** User settings have been changed to be stored on the server instead of browser storage. ****** -[01:23] [ComfyUI] ****** For multi-user setups add the --multi-user CLI argument to enable multiple user profiles. ****** -[01:23] [ComfyUI] ComfyUI frontend version: 1.43.18 -[01:23] [ComfyUI] [Prompt Server] web root: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfyui_frontend_package/static -[01:23] [ComfyUI] Asset seeder disabled -[01:26] [ComfyUI] [comfy-env] Version: 0.3.80 -[01:26] [ComfyUI] [comfy-env] register_nodes: ComfyUI-Sharp -[01:26] [ComfyUI] [comfy-env] ComfyUI source dir: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI -[01:26] [ComfyUI] [comfy-env] Found 1 isolation env(s) -[01:26] [ComfyUI] [comfy-env] Scanning nodes metadata (isolation root)... -[01:26] [ComfyUI] [comfy-env] Metadata scan: /home/runner/.pixi/bin/pixi run --as-is --manifest-path /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/pixi.toml -e sharp-nodes python /tmp/comfy_meta_lglika1e.py /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp nodes -[01:26] [ComfyUI] [comfy-env] Scan env PATH for nodes: -[01:26] [ComfyUI] [comfy-env] [0] /opt/hostedtoolcache/Python/3.11.15/x64/bin -[01:26] [ComfyUI] [comfy-env] [1] /opt/hostedtoolcache/Python/3.11.15/x64 -[01:26] [ComfyUI] [comfy-env] [2] /snap/bin -[01:26] [ComfyUI] [comfy-env] [3] /home/runner/.local/bin -[01:26] [ComfyUI] [comfy-env] [4] /opt/pipx_bin -[01:26] [ComfyUI] [comfy-env] [5] /home/runner/.cargo/bin -[01:26] [ComfyUI] [comfy-env] [6] /home/runner/.config/composer/vendor/bin -[01:26] [ComfyUI] [comfy-env] [7] /usr/local/.ghcup/bin -[01:26] [ComfyUI] [comfy-env] [8] /home/runner/.dotnet/tools -[01:26] [ComfyUI] [comfy-env] [9] /usr/local/sbin -[01:26] [ComfyUI] [comfy-env] [10] /usr/local/bin -[01:26] [ComfyUI] [comfy-env] [11] /usr/sbin -[01:26] [ComfyUI] [comfy-env] [12] /usr/bin -[01:26] [ComfyUI] [comfy-env] [13] /sbin -[01:26] [ComfyUI] [comfy-env] [14] /bin -[01:26] [ComfyUI] [comfy-env] [15] /usr/games -[01:26] [ComfyUI] [comfy-env] [16] /usr/local/games -[01:26] [ComfyUI] [comfy-env] [17] /snap/bin -[01:29] [ComfyUI] [comfy-env] Metadata scan stderr for nodes: -[01:29] [ComfyUI] [comfy-env] [meta-scan] importing nodes from /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp -[01:29] [ComfyUI] [comfy-env] [meta-scan] import OK -[01:29] [ComfyUI] [comfy-env] Scanned nodes: 8 nodes (3.4s) -[01:29] [ComfyUI] [comfy-env] Scanned nodes root: 8 nodes (3.4s) -[01:29] [ComfyUI] [comfy-env] Imported nodes root: 8 nodes (isolation) -[01:29] [ComfyUI] [comfy-env] Registered 8 total nodes -[01:29] [ComfyUI] loading... -[01:29] [ComfyUI] calling register_nodes -[01:29] [ComfyUI] [comfy-env] Version: 0.3.80 -[01:29] [ComfyUI] [comfy-env] register_nodes: ComfyUI-GeometryPack -[01:29] [ComfyUI] [comfy-env] ComfyUI source dir: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI -[01:29] [ComfyUI] [comfy-env] Found 1 isolation env(s) -[01:29] [ComfyUI] [comfy-env] Scanning nodes metadata (isolation root)... -[01:29] [ComfyUI] [comfy-env] Metadata scan: /home/runner/.pixi/bin/pixi run --as-is --manifest-path /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/pixi.toml -e geometrypack-nodes python /tmp/comfy_meta_1st2_j25.py /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-GeometryPack nodes -[01:29] [ComfyUI] [comfy-env] Scan env PATH for nodes: -[01:29] [ComfyUI] [comfy-env] [0] /opt/hostedtoolcache/Python/3.11.15/x64/bin -[01:29] [ComfyUI] [comfy-env] [1] /opt/hostedtoolcache/Python/3.11.15/x64 -[01:29] [ComfyUI] [comfy-env] [2] /snap/bin -[01:29] [ComfyUI] [comfy-env] [3] /home/runner/.local/bin -[01:29] [ComfyUI] [comfy-env] [4] /opt/pipx_bin -[01:29] [ComfyUI] [comfy-env] [5] /home/runner/.cargo/bin -[01:29] [ComfyUI] [comfy-env] [6] /home/runner/.config/composer/vendor/bin -[01:29] [ComfyUI] [comfy-env] [7] /usr/local/.ghcup/bin -[01:29] [ComfyUI] [comfy-env] [8] /home/runner/.dotnet/tools -[01:29] [ComfyUI] [comfy-env] [9] /usr/local/sbin -[01:29] [ComfyUI] [comfy-env] [10] /usr/local/bin -[01:29] [ComfyUI] [comfy-env] [11] /usr/sbin -[01:29] [ComfyUI] [comfy-env] [12] /usr/bin -[01:29] [ComfyUI] [comfy-env] [13] /sbin -[01:29] [ComfyUI] [comfy-env] [14] /bin -[01:29] [ComfyUI] [comfy-env] [15] /usr/games -[01:29] [ComfyUI] [comfy-env] [16] /usr/local/games -[01:29] [ComfyUI] [comfy-env] [17] /snap/bin -[01:35] [ComfyUI] [comfy-env] Metadata scan stderr for nodes: -[01:35] [ComfyUI] [comfy-env] [meta-scan] importing nodes from /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-GeometryPack -[01:35] [ComfyUI] [comfy-env] Failed to open dir (No such file or directory): /run/user/1001/gvfs/ -[01:35] [ComfyUI] [comfy-env] ERROR:root:Failed to import comfy_kitchen, Error: No module named 'comfy_kitchen', fp8 and fp4 support will not be available. -[01:35] [ComfyUI] [comfy-env] [meta-scan] import OK -[01:35] [ComfyUI] [comfy-env] Traceback (most recent call last): -[01:35] [ComfyUI] [comfy-env] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/geometrypack-nodes/lib/python3.10/site-packages/bpy/3.6/scripts/modules/addon_utils.py", line 421, in disable -[01:35] [ComfyUI] [comfy-env] mod.unregister() -[01:35] [ComfyUI] [comfy-env] TypeError: '_OpNamespace' object is not callable -[01:35] [ComfyUI] [comfy-env] Traceback (most recent call last): -[01:35] [ComfyUI] [comfy-env] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/geometrypack-nodes/lib/python3.10/site-packages/bpy/3.6/scripts/modules/addon_utils.py", line 421, in disable -[01:35] [ComfyUI] [comfy-env] mod.unregister() -[01:35] [ComfyUI] [comfy-env] TypeError: '_ClassNamespace' object is not callable -[01:35] [ComfyUI] [comfy-env] Scanned nodes: 125 nodes (5.5s) -[01:35] [ComfyUI] [comfy-env] Scanned nodes root: 125 nodes (5.5s) -[01:35] [ComfyUI] [comfy-env] Imported nodes root: 125 nodes (isolation) -[01:35] [ComfyUI] [comfy-env] Registered 125 total nodes -[01:35] [ComfyUI] -[01:35] [ComfyUI] Import times for custom nodes: -[01:35] [ComfyUI] 0.0 seconds: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/websocket_image_save.py -[01:35] [ComfyUI] 0.0 seconds: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-validate-endpoint -[01:35] [ComfyUI] 3.6 seconds: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp -[01:35] [ComfyUI] 5.6 seconds: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-GeometryPack -[01:35] [ComfyUI] -[01:35] [ComfyUI] Context impl SQLiteImpl. -[01:35] [ComfyUI] Will assume non-transactional DDL. -[01:35] [ComfyUI] Context impl SQLiteImpl. -[01:35] [ComfyUI] Will assume non-transactional DDL. -[01:35] [ComfyUI] Running upgrade -> 0001_assets, Initial assets schema -[01:35] [ComfyUI] Revision ID: 0001_assets -[01:35] [ComfyUI] Revises: None -[01:35] [ComfyUI] Create Date: 2025-12-10 00:00:00 -[01:35] [ComfyUI] Running upgrade 0001_assets -> 0002_merge_to_asset_references, Merge AssetInfo and AssetCacheState into unified asset_references table. -[01:35] [ComfyUI] Running upgrade 0002_merge_to_asset_references -> 0003_add_metadata_job_id, Add system_metadata and job_id columns to asset_references. -[01:35] [ComfyUI] Change preview_id FK from assets.id to asset_references.id. -[01:35] [ComfyUI] Database upgraded from None to 0003_add_metadata_job_id -[01:35] [ComfyUI] Starting server -[01:35] [ComfyUI] -[01:35] [ComfyUI] To see the GUI go to: http://127.0.0.1:41880 -[01:36] Server responding, waiting for nodes to load... -[01:56] Server is ready! -[01:56] Checking for import errors in server logs... -[01:56] No import errors detected -[01:56] Found 838 registered nodes -[01:56] [REGISTRATION] PASSED -[01:56] -[01:56] [4/5] INSTANTIATION -[01:56] ---------------------------------------- -[01:56] -[DEBUG] server=, server_url=None, api= -[01:56] Testing node constructors... -[01:57] All 8 node(s) instantiated successfully! -[01:57] [INSTANTIATION] PASSED -[01:57] -[01:57] [5/5] EXECUTION -[01:57] ---------------------------------------- -[01:57] -[DEBUG] server=, server_url=None, api= -[01:57] CPU runner - will execute 2 workflow(s) -[01:57] Running 3 workflow(s) (all with videos)... -[01:58] Installing screenshot dependencies (playwright, pillow)... -[01:58] Packages installed, downloading chromium browser... -[02:08] Screenshot dependencies installed successfully -[02:08] Starting headless browser... -[02:09] Installing Mesa llvmpipe (apt)... -[02:20] Mesa install failed: E: Unable to locate package libegl1-mesa +[00:59] Starting ComfyUI server on port 41883... +[00:59] Starting ComfyUI server on port 41883... +[00:59] Waiting for server to be ready (timeout: 600s)... +[01:00] [ComfyUI] setup plugin alembic.autogenerate.schemas +[01:00] [ComfyUI] setup plugin alembic.autogenerate.tables +[01:00] [ComfyUI] setup plugin alembic.autogenerate.types +[01:00] [ComfyUI] setup plugin alembic.autogenerate.constraints +[01:00] [ComfyUI] setup plugin alembic.autogenerate.defaults +[01:00] [ComfyUI] setup plugin alembic.autogenerate.comments +[01:00] [ComfyUI] [comfy-env] ComfyUI-Sharp: 1 isolation env(s): +[01:00] [ComfyUI] [comfy-env] nodes -> /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes +[01:00] [ComfyUI] [comfy-env] prestartup complete +[01:00] [ComfyUI] [comfy-env] ComfyUI-GeometryPack: 1 isolation env(s): +[01:00] [ComfyUI] [comfy-env] nodes -> /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-GeometryPack/nodes +[01:00] [ComfyUI] [comfy-env] prestartup complete +[01:00] [ComfyUI] +[01:01] [ComfyUI] Prestartup times for custom nodes: +[01:01] [ComfyUI] 0.0 seconds: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-GeometryPack +[01:01] [ComfyUI] 0.2 seconds: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp +[01:01] [ComfyUI] +[01:05] [ComfyUI] Found comfy_kitchen backend cuda: {'available': False, 'disabled': False, 'unavailable_reason': 'CUDA not available on this system', 'capabilities': []} +[01:05] [ComfyUI] Found comfy_kitchen backend eager: {'available': True, 'disabled': False, 'unavailable_reason': None, 'capabilities': ['apply_rope', 'apply_rope1', 'dequantize_mxfp8', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8', 'scaled_mm_mxfp8', 'scaled_mm_nvfp4']} +[01:05] [ComfyUI] Found comfy_kitchen backend triton: {'available': False, 'disabled': True, 'unavailable_reason': 'Neither CUDA nor XPU available on this system', 'capabilities': []} +[01:05] [ComfyUI] Checkpoint files will always be loaded safely. +[01:05] [ComfyUI] Total VRAM 15990 MB, total RAM 15990 MB +[01:05] [ComfyUI] pytorch version: 2.11.0+cu130 +[01:05] [ComfyUI] Set vram state to: DISABLED +[01:05] [ComfyUI] Device: cpu +[01:06] [ComfyUI] Using sub quadratic optimization for attention, if you have memory or speed issues try using: --use-split-cross-attention +[01:11] [ComfyUI] Python version: 3.11.15 (main, May 8 2026, 18:33:10) [Clang 22.1.3 ] +[01:11] [ComfyUI] ComfyUI version: 0.20.1 +[01:11] [ComfyUI] comfy-aimdo version: 0.3.0 +[01:11] [ComfyUI] comfy-kitchen version: 0.2.8 +[01:11] [ComfyUI] ****** User settings have been changed to be stored on the server instead of browser storage. ****** +[01:11] [ComfyUI] ****** For multi-user setups add the --multi-user CLI argument to enable multiple user profiles. ****** +[01:11] [ComfyUI] ComfyUI frontend version: 1.43.18 +[01:11] [ComfyUI] [Prompt Server] web root: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfyui_frontend_package/static +[01:11] [ComfyUI] Asset seeder disabled +[01:13] [ComfyUI] [comfy-env] Version: 0.3.81 +[01:13] [ComfyUI] [comfy-env] register_nodes: ComfyUI-Sharp +[01:13] [ComfyUI] [comfy-env] ComfyUI source dir: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI +[01:13] [ComfyUI] [comfy-env] Found 1 isolation env(s) +[01:13] [ComfyUI] [comfy-env] Scanning nodes metadata (isolation root)... +[01:13] [ComfyUI] [comfy-env] Metadata scan: /home/runner/.pixi/bin/pixi run --as-is --manifest-path /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/pixi.toml -e sharp-nodes python /tmp/comfy_meta_qy9v647x.py /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp nodes +[01:13] [ComfyUI] [comfy-env] Scan env PATH for nodes: +[01:13] [ComfyUI] [comfy-env] [0] /opt/hostedtoolcache/Python/3.12.13/x64/bin +[01:13] [ComfyUI] [comfy-env] [1] /opt/hostedtoolcache/Python/3.12.13/x64 +[01:13] [ComfyUI] [comfy-env] [2] /snap/bin +[01:13] [ComfyUI] [comfy-env] [3] /home/runner/.local/bin +[01:13] [ComfyUI] [comfy-env] [4] /opt/pipx_bin +[01:13] [ComfyUI] [comfy-env] [5] /home/runner/.cargo/bin +[01:13] [ComfyUI] [comfy-env] [6] /home/runner/.config/composer/vendor/bin +[01:13] [ComfyUI] [comfy-env] [7] /usr/local/.ghcup/bin +[01:13] [ComfyUI] [comfy-env] [8] /home/runner/.dotnet/tools +[01:14] [ComfyUI] [comfy-env] [9] /usr/local/sbin +[01:14] [ComfyUI] [comfy-env] [10] /usr/local/bin +[01:14] [ComfyUI] [comfy-env] [11] /usr/sbin +[01:14] [ComfyUI] [comfy-env] [12] /usr/bin +[01:14] [ComfyUI] [comfy-env] [13] /sbin +[01:14] [ComfyUI] [comfy-env] [14] /bin +[01:14] [ComfyUI] [comfy-env] [15] /usr/games +[01:14] [ComfyUI] [comfy-env] [16] /usr/local/games +[01:14] [ComfyUI] [comfy-env] [17] /snap/bin +[01:17] [ComfyUI] [comfy-env] Metadata scan stderr for nodes: +[01:17] [ComfyUI] [comfy-env] [meta-scan] importing nodes from /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp +[01:17] [ComfyUI] [comfy-env] [meta-scan] import OK +[01:17] [ComfyUI] [comfy-env] Scanned nodes: 8 nodes (3.4s) +[01:17] [ComfyUI] [comfy-env] Scanned nodes root: 8 nodes (3.4s) +[01:17] [ComfyUI] [comfy-env] Imported nodes root: 8 nodes (isolation) +[01:17] [ComfyUI] [comfy-env] Registered 8 total nodes +[01:17] [ComfyUI] loading... +[01:17] [ComfyUI] calling register_nodes +[01:17] [ComfyUI] [comfy-env] Version: 0.3.81 +[01:17] [ComfyUI] [comfy-env] register_nodes: ComfyUI-GeometryPack +[01:17] [ComfyUI] [comfy-env] ComfyUI source dir: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI +[01:17] [ComfyUI] [comfy-env] Found 1 isolation env(s) +[01:17] [ComfyUI] [comfy-env] Scanning nodes metadata (isolation root)... +[01:17] [ComfyUI] [comfy-env] Metadata scan: /home/runner/.pixi/bin/pixi run --as-is --manifest-path /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/pixi.toml -e geometrypack-nodes python /tmp/comfy_meta_v2_4bol1.py /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-GeometryPack nodes +[01:17] [ComfyUI] [comfy-env] Scan env PATH for nodes: +[01:17] [ComfyUI] [comfy-env] [0] /opt/hostedtoolcache/Python/3.12.13/x64/bin +[01:17] [ComfyUI] [comfy-env] [1] /opt/hostedtoolcache/Python/3.12.13/x64 +[01:17] [ComfyUI] [comfy-env] [2] /snap/bin +[01:17] [ComfyUI] [comfy-env] [3] /home/runner/.local/bin +[01:17] [ComfyUI] [comfy-env] [4] /opt/pipx_bin +[01:17] [ComfyUI] [comfy-env] [5] /home/runner/.cargo/bin +[01:17] [ComfyUI] [comfy-env] [6] /home/runner/.config/composer/vendor/bin +[01:17] [ComfyUI] [comfy-env] [7] /usr/local/.ghcup/bin +[01:17] [ComfyUI] [comfy-env] [8] /home/runner/.dotnet/tools +[01:17] [ComfyUI] [comfy-env] [9] /usr/local/sbin +[01:17] [ComfyUI] [comfy-env] [10] /usr/local/bin +[01:17] [ComfyUI] [comfy-env] [11] /usr/sbin +[01:17] [ComfyUI] [comfy-env] [12] /usr/bin +[01:17] [ComfyUI] [comfy-env] [13] /sbin +[01:17] [ComfyUI] [comfy-env] [14] /bin +[01:17] [ComfyUI] [comfy-env] [15] /usr/games +[01:17] [ComfyUI] [comfy-env] [16] /usr/local/games +[01:17] [ComfyUI] [comfy-env] [17] /snap/bin +[01:22] [ComfyUI] [comfy-env] Metadata scan stderr for nodes: +[01:22] [ComfyUI] [comfy-env] [meta-scan] importing nodes from /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-GeometryPack +[01:22] [ComfyUI] [comfy-env] ERROR:root:Failed to import comfy_kitchen, Error: No module named 'comfy_kitchen', fp8 and fp4 support will not be available. +[01:22] [ComfyUI] [comfy-env] [meta-scan] import OK +[01:22] [ComfyUI] [comfy-env] Scanned nodes: 125 nodes (5.4s) +[01:22] [ComfyUI] [comfy-env] Scanned nodes root: 125 nodes (5.4s) +[01:22] [ComfyUI] [comfy-env] Imported nodes root: 125 nodes (isolation) +[01:22] [ComfyUI] [comfy-env] Registered 125 total nodes +[01:22] [ComfyUI] +[01:22] [ComfyUI] Import times for custom nodes: +[01:22] [ComfyUI] 0.0 seconds: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/websocket_image_save.py +[01:22] [ComfyUI] 0.0 seconds: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-validate-endpoint +[01:22] [ComfyUI] 3.6 seconds: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp +[01:22] [ComfyUI] 5.4 seconds: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-GeometryPack +[01:22] [ComfyUI] +[01:22] [ComfyUI] Context impl SQLiteImpl. +[01:22] [ComfyUI] Will assume non-transactional DDL. +[01:22] [ComfyUI] Context impl SQLiteImpl. +[01:22] [ComfyUI] Will assume non-transactional DDL. +[01:22] [ComfyUI] Running upgrade -> 0001_assets, Initial assets schema +[01:22] [ComfyUI] Revision ID: 0001_assets +[01:22] [ComfyUI] Revises: None +[01:22] [ComfyUI] Create Date: 2025-12-10 00:00:00 +[01:22] [ComfyUI] Running upgrade 0001_assets -> 0002_merge_to_asset_references, Merge AssetInfo and AssetCacheState into unified asset_references table. +[01:22] [ComfyUI] Running upgrade 0002_merge_to_asset_references -> 0003_add_metadata_job_id, Add system_metadata and job_id columns to asset_references. +[01:22] [ComfyUI] Change preview_id FK from assets.id to asset_references.id. +[01:22] [ComfyUI] Database upgraded from None to 0003_add_metadata_job_id +[01:23] [ComfyUI] Starting server +[01:23] [ComfyUI] +[01:23] [ComfyUI] To see the GUI go to: http://127.0.0.1:41883 +[01:23] Server responding, waiting for nodes to load... +[01:43] Server is ready! +[01:43] Checking for import errors in server logs... +[01:43] No import errors detected +[01:43] Found 838 registered nodes +[01:43] [REGISTRATION] PASSED +[01:43] +[01:43] [4/5] INSTANTIATION +[01:43] ---------------------------------------- +[01:43] +[DEBUG] server=, server_url=None, api= +[01:43] Testing node constructors... +[01:45] All 8 node(s) instantiated successfully! +[01:45] [INSTANTIATION] PASSED +[01:45] +[01:45] [5/5] EXECUTION +[01:45] ---------------------------------------- +[01:45] +[DEBUG] server=, server_url=None, api= +[01:45] CPU runner - will execute 2 workflow(s) +[01:45] Running 3 workflow(s) (all with videos)... +[01:45] Installing screenshot dependencies (playwright, pillow)... +[01:45] Packages installed, downloading chromium browser... +[01:56] Screenshot dependencies installed successfully +[01:56] Starting headless browser... +[01:56] Installing Mesa llvmpipe (apt)... +[02:08] Mesa install failed: E: Unable to locate package libegl1-mesa -[02:20] No GPU, no Mesa -- using SwiftShader software rendering -[02:22] [1/3] SKIPPED (not in cpu list) pano.json -[02:22] Capturing execution frames: sharp_basic.json -[02:29] Frame 1 saved (frame_000.jpg, t=0.0s) -[02:29] Validating workflow... -[02:29] [ComfyUI] === /validate endpoint called === -[02:29] [ComfyUI] Received JSON with keys: ['prompt'] -[02:29] [ComfyUI] Prompt has 4 nodes -[02:29] [ComfyUI] Node 1: LoadImage -[02:29] [ComfyUI] Inputs: {"image": "beach.jpg"} -[02:29] Queuing workflow for execution... -[02:29] [ComfyUI] Node 2: LoadSharpModel -[02:29] [ComfyUI] Inputs: {"precision": "auto"} -[02:29] [ComfyUI] Node 4: GeomPackPreviewGaussian -[02:29] [ComfyUI] Inputs: {"preview_gaussian": "", "ply_path": ["5", 0], "extrinsics": ["5", 1], "intrinsics": ["5", 2]} -[02:29] [ComfyUI] Node 5: SharpPredict -[02:29] [ComfyUI] Inputs: {"focal_length_mm": 30, "output_prefix": "sharp", "model": ["2", 0], "image": ["1", 0]} -[02:29] [ComfyUI] Generated prompt_id: 635b5af1-b930-4f69-8cc3-bcac3ab45338 -[02:29] [ComfyUI] Calling execution.validate_prompt()... -[02:29] [ComfyUI] Validation result: valid=True -[02:29] [ComfyUI] === Validation PASSED === -[02:29] [ComfyUI] got prompt -[02:29] [ComfyUI] [comfy-env] Running LoadSharpModel: precision: 'auto' -[02:29] [ComfyUI] [comfy-env] SubprocessWorker: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python -[02:29] [ComfyUI] [comfy-env] env_vars: {'COMFYUI_BASE': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI'} -[02:29] [ComfyUI] [SubprocessWorker] call_method: nodes.load_model.LoadSharpModel.EXECUTE_NORMALIZED -[02:29] [ComfyUI] [ComfyUI-Sharp] python: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python +[02:08] No GPU, no Mesa -- using SwiftShader software rendering +[02:09] [1/3] SKIPPED (not in cpu list) pano.json +[02:09] Capturing execution frames: sharp_basic.json +[02:15] Frame 1 saved (frame_000.jpg, t=0.0s) +[02:15] Validating workflow... +[02:15] [ComfyUI] === /validate endpoint called === +[02:15] [ComfyUI] Received JSON with keys: ['prompt'] +[02:15] [ComfyUI] Prompt has 4 nodes +[02:15] [ComfyUI] Node 1: LoadImage +[02:15] [ComfyUI] Inputs: {"image": "beach.jpg"} +[02:15] [ComfyUI] Node 2: LoadSharpModel +[02:15] [ComfyUI] Inputs: {"precision": "auto"} +[02:15] [ComfyUI] Node 4: GeomPackPreviewGaussian +[02:15] [ComfyUI] Inputs: {"preview_gaussian": "", "ply_path": ["5", 0], "extrinsics": ["5", 1], "intrinsics": ["5", 2]} +[02:15] [ComfyUI] Node 5: SharpPredict +[02:15] [ComfyUI] Inputs: {"focal_length_mm": 30, "output_prefix": "sharp", "model": ["2", 0], "image": ["1", 0]} +[02:15] [ComfyUI] Generated prompt_id: 51fa9ff4-7a87-4e50-afea-54864870cb31 +[02:15] [ComfyUI] Calling execution.validate_prompt()... +[02:15] [ComfyUI] Validation result: valid=True +[02:15] [ComfyUI] === Validation PASSED === +[02:15] Queuing workflow for execution... +[02:15] [ComfyUI] got prompt +[02:15] [ComfyUI] [comfy-env] Running LoadSharpModel: precision: 'auto' +[02:15] [ComfyUI] [comfy-env] SubprocessWorker: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python +[02:15] [ComfyUI] [SubprocessWorker] call_method: nodes.load_model.LoadSharpModel.EXECUTE_NORMALIZED +[02:15] [ComfyUI] [SubprocessWorker] acquired lock, ensuring started... +[02:15] [ComfyUI] [comfy-env] env_vars: {'COMFYUI_BASE': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI'} +[02:15] [ComfyUI] [ComfyUI-Sharp] python: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python +[02:15] [ComfyUI] [ComfyUI-Sharp] sys_path sent to worker: ['/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp'] +[02:15] [ComfyUI] [SubprocessWorker] is_pixi=True, python=/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/bin/python +[02:15] [ComfyUI] [SubprocessWorker] launching cmd=['/home/runner/.pixi/bin/pixi', 'run', '--as-is', '--manifest-path', '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/pixi.toml', '-e', 'sharp-nodes', 'python', '/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py', 'abstract://comfy_worker_0f5107705732']... +[02:15] [ComfyUI] [SubprocessWorker] socket_addr=abstract://comfy_worker_0f5107705732 (abstract, no filesystem path) +[02:17] [ComfyUI] [worker:ComfyUI-Sharp] ERROR: Failed to import comfy_kitchen, Error: No module named 'comfy_kitchen', fp8 and fp4 support will not be available. +[02:17] [ComfyUI] [SubprocessWorker] worker started/confirmed +[02:17] [ComfyUI] [SubprocessWorker] serializing kwargs to shm... +[02:17] [ComfyUI] [SubprocessWorker] created 0 shm blocks +[02:17] [ComfyUI] [SubprocessWorker] sending request via socket... +[02:17] [ComfyUI] [SubprocessWorker] call_id=1 sending call_method +[02:17] [ComfyUI] +[02:17] Frame 2 saved (frame_001.jpg, t=2.4s) +[02:17] [capture-periodic] freeze=5ms shot=120ms unfreeze=2ms saved=True +[02:19] [ComfyUI] sharp_2572gikvuh.pt: 0%| | 0.00/2.81G [00:00 -[02:31] [ComfyUI] import comfy_aimdo.vram_buffer -[02:31] [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo' -[02:31] [ComfyUI] -[02:31] [ComfyUI] Traceback (most recent call last): -[02:31] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 535, in execute -[02:31] [ComfyUI] output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data) -[02:31] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 335, in get_output_data -[02:31] [ComfyUI] return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data) -[02:31] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 309, in _async_map_node_over_list -[02:31] [ComfyUI] await process_inputs(input_dict, i) -[02:31] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 297, in process_inputs -[02:31] [ComfyUI] result = f(**inputs) -[02:31] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy -[02:31] [ComfyUI] result = worker.call_method( -[02:31] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method -[02:31] [ComfyUI] raise WorkerError( -[02:31] [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'comfy_aimdo' -[02:31] [ComfyUI] -[02:31] [ComfyUI] Worker traceback: -[02:31] [ComfyUI] Traceback (most recent call last): -[02:31] [ComfyUI] File "/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py", line 1762, in main -[02:31] [ComfyUI] result = method(**inputs) -[02:31] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED -[02:31] [ComfyUI] to_return = cls.execute(*args, **kwargs) -[02:31] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 170, in execute -[02:31] [ComfyUI] import comfy.model_management -[02:31] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in -[02:31] [ComfyUI] import comfy_aimdo.vram_buffer -[02:31] [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo' -[02:31] [ComfyUI] -[02:31] [ComfyUI] -[02:31] [ComfyUI] Prompt executed in 1.97 seconds -[02:31] Frame 2 saved (frame_001.jpg, t=2.3s) -[02:31] [capture-periodic] freeze=9ms shot=118ms unfreeze=5ms saved=True -[02:31] Execution complete (t=2.3s) -[02:31] Execution error: {'prompt_id': '2da0a0a3-0f1d-4008-9544-3b71b057b9f6', 'node_id': '2', 'node_type': 'LoadSharpModel', 'executed': ['1'], 'exception_message': 'No module named \'comfy_aimdo\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 170, in execute\n import comfy.model_management\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in \n import comfy_aimdo.vram_buffer\nModuleNotFoundError: No module named \'comfy_aimdo\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'precision': ['auto']}, 'current_outputs': ['5', '1', '2', '4'], 'timestamp': 1778446342071} -[02:31] Capturing execution frames: sharp_exif.json -[02:37] Frame 1 saved (frame_000.jpg, t=0.0s) -[02:37] Validating workflow... -[02:37] [ComfyUI] === /validate endpoint called === -[02:37] [ComfyUI] Received JSON with keys: ['prompt'] -[02:37] [ComfyUI] Prompt has 4 nodes -[02:37] [ComfyUI] Node 2: LoadSharpModel -[02:37] [ComfyUI] Inputs: {"precision": "auto"} -[02:37] [ComfyUI] Node 7: SharpPredict -[02:37] [ComfyUI] Inputs: {"focal_length_mm": ["9", 2], "output_prefix": "sharp", "model": ["2", 0], "image": ["9", 0]} -[02:37] Queuing workflow for execution... -[02:37] [ComfyUI] Node 8: GeomPackPreviewGaussian -[02:37] [ComfyUI] Inputs: {"preview_gaussian": "", "ply_path": ["7", 0], "extrinsics": ["7", 1], "intrinsics": ["7", 2]} -[02:37] [ComfyUI] Node 9: LoadImageWithExif -[02:37] [ComfyUI] Inputs: {"image": "eth3d.png", "default_focal_mm": 30} -[02:37] [ComfyUI] Generated prompt_id: 40c6a680-cf48-4922-bb94-60f2da64fb1a -[02:37] [ComfyUI] Calling execution.validate_prompt()... -[02:37] [ComfyUI] Validation result: valid=True -[02:37] [ComfyUI] === Validation PASSED === -[02:37] [ComfyUI] got prompt -[02:37] [ComfyUI] [comfy-env] Running LoadImageWithExif: image: 'eth3d.png', default_focal_mm: 30.0 -[02:37] [ComfyUI] [SubprocessWorker] call_method: nodes.load_image_exif.LoadImageWithExif.EXECUTE_NORMALIZED -[02:37] [ComfyUI] [SubprocessWorker] acquired lock, ensuring started... -[02:37] [ComfyUI] [ComfyUI-Sharp] Health check: ping (timeout=5.0s)... -[02:37] [ComfyUI] [ComfyUI-Sharp] Health check: ok -[02:37] [ComfyUI] [SubprocessWorker] worker started/confirmed -[02:37] [ComfyUI] [SubprocessWorker] serializing kwargs to shm... -[02:37] [ComfyUI] [SubprocessWorker] created 0 shm blocks -[02:37] [ComfyUI] [SubprocessWorker] sending request via socket... -[02:37] [ComfyUI] [SubprocessWorker] call_id=2 sending call_method +[02:29] [ComfyUI] [ComfyUI-Sharp] Health check: ping (timeout=5.0s)... +[02:29] [ComfyUI] [ComfyUI-Sharp] Health check: ok +[02:29] [ComfyUI] [SubprocessWorker] worker started/confirmed +[02:29] [ComfyUI] [comfy-env] PRE-SERIALIZE 'image' shape: torch.Size([1, 1024, 1536, 3]) +[02:29] [ComfyUI] [SubprocessWorker] serializing kwargs to shm... +[02:29] [ComfyUI] [SubprocessWorker] created 0 shm blocks +[02:29] [ComfyUI] [SubprocessWorker] sending request via socket... +[02:29] Frame 6 saved (frame_005.jpg, t=14.3s) +[02:29] [capture-periodic] freeze=2ms shot=113ms unfreeze=3ms saved=True +[02:29] [ComfyUI] [SubprocessWorker] call_id=2 sending call_method +[02:29] [ComfyUI] [worker:ComfyUI-Sharp] [comfy-env] _from_shm got dict with keys: ['__type__', 'strategy', 'parent_pid', 'fd', 'storage_size'] +[02:29] [ComfyUI] [worker:ComfyUI-Sharp] [comfy-env] DESERIALIZE TensorRef: tensor_size=[1, 1024, 1536, 3] +[02:29] [ComfyUI] [worker:ComfyUI-Sharp] [comfy-env] DESERIALIZED tensor shape: torch.Size([1, 1024, 1536, 3]) +[02:30] [ComfyUI] [SubprocessWorker] got response: error +[02:30] [ComfyUI] !!! Exception during processing !!! No module named 'scipy' +[02:30] [ComfyUI] +[02:30] [ComfyUI] Worker traceback: +[02:30] [ComfyUI] Traceback (most recent call last): +[02:30] [ComfyUI] File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main +[02:30] [ComfyUI] result = method(**inputs) +[02:30] [ComfyUI] ^^^^^^^^^^^^^^^^ +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED +[02:30] [ComfyUI] to_return = cls.execute(*args, **kwargs) +[02:30] [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context +[02:30] [ComfyUI] return func(*args, **kwargs) +[02:30] [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^ +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute +[02:30] [ComfyUI] patcher = _load_sharp_model(model) +[02:30] [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^ +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model +[02:30] [ComfyUI] import comfy.model_patcher +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in +[02:30] [ComfyUI] import comfy.hooks +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in +[02:30] [ComfyUI] import comfy.lora +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in +[02:30] [ComfyUI] import comfy.model_base +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in +[02:30] [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in +[02:30] [ComfyUI] from ..sdpose import HeatmapHead +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in +[02:30] [ComfyUI] from scipy.ndimage import gaussian_filter +[02:30] [ComfyUI] ModuleNotFoundError: No module named 'scipy' +[02:30] [ComfyUI] +[02:30] [ComfyUI] Traceback (most recent call last): +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 535, in execute +[02:30] [ComfyUI] output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data) +[02:30] [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 335, in get_output_data +[02:30] [ComfyUI] return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data) +[02:30] [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 309, in _async_map_node_over_list +[02:30] [ComfyUI] await process_inputs(input_dict, i) +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 297, in process_inputs +[02:30] [ComfyUI] result = f(**inputs) +[02:30] [ComfyUI] ^^^^^^^^^^^ +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy +[02:30] [ComfyUI] result = worker.call_method( +[02:30] [ComfyUI] ^^^^^^^^^^^^^^^^^^^ +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method +[02:30] [ComfyUI] raise WorkerError( +[02:30] [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'scipy' +[02:30] [ComfyUI] +[02:30] [ComfyUI] Worker traceback: +[02:30] [ComfyUI] Traceback (most recent call last): +[02:30] [ComfyUI] File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main +[02:30] [ComfyUI] result = method(**inputs) +[02:30] [ComfyUI] ^^^^^^^^^^^^^^^^ +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED +[02:30] [ComfyUI] to_return = cls.execute(*args, **kwargs) +[02:30] [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context +[02:30] [ComfyUI] return func(*args, **kwargs) +[02:30] [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^ +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute +[02:30] [ComfyUI] patcher = _load_sharp_model(model) +[02:30] [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^ +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model +[02:30] [ComfyUI] import comfy.model_patcher +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in +[02:30] [ComfyUI] import comfy.hooks +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in +[02:30] [ComfyUI] import comfy.lora +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in +[02:30] [ComfyUI] import comfy.model_base +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in +[02:30] [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in +[02:30] [ComfyUI] from ..sdpose import HeatmapHead +[02:30] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in +[02:30] [ComfyUI] from scipy.ndimage import gaussian_filter +[02:30] [ComfyUI] ModuleNotFoundError: No module named 'scipy' +[02:30] [ComfyUI] +[02:30] [ComfyUI] +[02:30] [ComfyUI] Prompt executed in 14.46 seconds +[02:30] Execution complete (t=15.1s) +[02:30] Execution error: {'prompt_id': '680e7efb-b7e3-4246-98ac-baa7a4da9ce6', 'node_id': '5', 'node_type': 'SharpPredict', 'executed': ['1', '2'], 'exception_message': 'No module named \'scipy\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n ^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute\n patcher = _load_sharp_model(model)\n ^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model\n import comfy.model_patcher\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in \n import comfy.hooks\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in \n import comfy.lora\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in \n import comfy.model_base\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in \n from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in \n from ..sdpose import HeatmapHead\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in \n from scipy.ndimage import gaussian_filter\nModuleNotFoundError: No module named \'scipy\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n ^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n ^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'focal_length_mm': [30], 'output_prefix': ['sharp'], 'model': ["{'model_path': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/models/sharp/sharp_2572gikvuh.pt', 'precision': 'auto', 'dtype': 'fp32'}"], 'image': ['tensor([[[[0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n ...,\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000]],\n\n [[0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n ...,\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000]],\n\n [[0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n ...,\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000]],\n\n ...,\n\n [[0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n ...,\n [0.5098, 0.4627, 0.4235],\n [0.5098, 0.4627, 0.4235],\n [0.5098, 0.4627, 0.4235]],\n\n [[0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n ...,\n [0.5059, 0.4588, 0.4392],\n [0.5059, 0.4627, 0.4314],\n [0.5059, 0.4627, 0.4314]],\n\n [[0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n ...,\n [0.5059, 0.4588, 0.4392],\n [0.5059, 0.4627, 0.4314],\n [0.5059, 0.4627, 0.4314]]]])'], 'prompt': ["{'1': {'inputs': {'image': 'beach.jpg'}, 'class_type': 'LoadImage', '_meta': {'title': 'Load Image'}, 'is_changed': ['ee4f94632a5ec7038826e875829a62a81dc2a9b85ed59440f2eaa37b3704fa24']}, '2': {'inputs': {'precision': 'auto'}, 'class_type': 'LoadSharpModel', '_meta': {'title': '(Down)Load SHARP Model'}}, '4': {'inputs': {'preview_gaussian': '', 'ply_path': ['5', 0], 'extrinsics': ['5', 1], 'intrinsics': ['5', 2]}, 'class_type': 'GeomPackPreviewGaussian', '_meta': {'title': 'Preview Gaussian'}}, '5': {'inputs': {'focal_length_mm': 30.0, 'output_prefix': 'sharp', 'model': ['2', 0], 'image': ['1', 0]}, 'class_type': 'SharpPredict', '_meta': {'title': 'SHARP Predict (Image to PLY)'}}}"], 'extra_pnginfo': ["{'workflow': {'id': 'sharp-basic-workflow', 'revision': 0, 'last_node_id': 5, 'last_link_id': 10, 'nodes': [{'id': 2, 'type': 'LoadSharpModel', 'pos': [-150, -400], 'size': [270, 106.65625], 'flags': {}, 'order': 0, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'model_config', 'type': 'SHARP_MODEL_CONFIG', 'links': [6]}], 'properties': {'Node name for S&R': 'LoadSharpModel', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': '9f1b9c726e2cfc0118866c3df783e7f6bc895226'}, 'widgets_values': ['auto']}, {'id': 1, 'type': 'LoadImage', 'pos': [-150, -100], 'size': [274, 340], 'flags': {}, 'order': 1, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'IMAGE', 'type': 'IMAGE', 'links': [7]}, {'name': 'MASK', 'type': 'MASK', 'links': []}], 'properties': {'Node name for S&R': 'LoadImage', 'cnr_id': 'comfy-core', 'ver': '0.5.1'}, 'widgets_values': ['beach.jpg', 'image']}, {'id': 5, 'type': 'SharpPredict', 'pos': [181.546875, -251.55078125], 'size': [298.890625, 212], 'flags': {}, 'order': 2, 'mode': 0, 'inputs': [{'name': 'model', 'type': 'SHARP_MODEL_CONFIG', 'link': 6}, {'name': 'image', 'type': 'IMAGE', 'link': 7}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': None}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': None}], 'outputs': [{'name': 'ply_path', 'type': 'STRING', 'links': [8]}, {'name': 'extrinsics', 'type': 'EXTRINSICS', 'links': [9]}, {'name': 'intrinsics', 'type': 'INTRINSICS', 'links': [10]}], 'properties': {'Node name for S&R': 'SharpPredict', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'aa98b213e3d0770477bbf46046094c5cb8ff6052'}, 'widgets_values': [30, 'sharp']}, {'id': 4, 'type': 'GeomPackPreviewGaussian', 'pos': [629.92578125, -322.046875], 'size': [512, 658], 'flags': {}, 'order': 3, 'mode': 0, 'inputs': [{'name': 'ply_path', 'type': 'STRING', 'link': 8}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': 9}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': 10}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewGaussian', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack', 'ver': 'b7df285fc5b3fef7aad434d8b6e8698efed6358b', 'cnr_id': 'comfyui-geometrypack'}, 'widgets_values': ['']}], 'links': [[6, 2, 0, 5, 0, 'SHARP_MODEL'], [7, 1, 0, 5, 1, 'IMAGE'], [8, 5, 0, 4, 0, 'STRING'], [9, 5, 1, 4, 1, 'EXTRINSICS'], [10, 5, 2, 4, 2, 'INTRINSICS']], 'groups': [], 'config': {}, 'extra': {'ds': {'scale': 1, 'offset': [300.79296875, 604.72265625]}, 'workflowRendererVersion': 'LG', 'frontendVersion': '1.43.18'}, 'version': 0.4}}"]}, 'current_outputs': ['1', '2', '5', '4'], 'timestamp': 1778448202982} +[02:30] Capturing execution frames: sharp_exif.json +[02:36] Frame 1 saved (frame_000.jpg, t=0.0s) +[02:36] Validating workflow... +[02:36] [ComfyUI] === /validate endpoint called === +[02:36] [ComfyUI] Received JSON with keys: ['prompt'] +[02:36] [ComfyUI] Prompt has 4 nodes +[02:36] [ComfyUI] Node 2: LoadSharpModel +[02:36] [ComfyUI] Inputs: {"precision": "auto"} +[02:36] Queuing workflow for execution... +[02:36] [ComfyUI] Node 7: SharpPredict +[02:36] [ComfyUI] Inputs: {"focal_length_mm": ["9", 2], "output_prefix": "sharp", "model": ["2", 0], "image": ["9", 0]} +[02:36] [ComfyUI] Node 8: GeomPackPreviewGaussian +[02:36] [ComfyUI] Inputs: {"preview_gaussian": "", "ply_path": ["7", 0], "extrinsics": ["7", 1], "intrinsics": ["7", 2]} +[02:36] [ComfyUI] Node 9: LoadImageWithExif +[02:36] [ComfyUI] Inputs: {"image": "eth3d.png", "default_focal_mm": 30} +[02:36] [ComfyUI] Generated prompt_id: e1e5db64-9ff1-4f8a-b8ff-d68adb858593 +[02:36] [ComfyUI] Calling execution.validate_prompt()... +[02:36] [ComfyUI] Validation result: valid=True +[02:36] [ComfyUI] === Validation PASSED === +[02:36] [ComfyUI] got prompt +[02:36] [ComfyUI] [comfy-env] Running LoadImageWithExif: image: 'eth3d.png', default_focal_mm: 30.0 +[02:36] [ComfyUI] [SubprocessWorker] call_method: nodes.load_image_exif.LoadImageWithExif.EXECUTE_NORMALIZED +[02:36] [ComfyUI] [SubprocessWorker] acquired lock, ensuring started... +[02:36] [ComfyUI] [ComfyUI-Sharp] Health check: ping (timeout=5.0s)... +[02:36] [ComfyUI] [ComfyUI-Sharp] Health check: ok +[02:36] [ComfyUI] [SubprocessWorker] worker started/confirmed +[02:36] [ComfyUI] [SubprocessWorker] serializing kwargs to shm... +[02:36] [ComfyUI] [SubprocessWorker] created 0 shm blocks +[02:36] [ComfyUI] [SubprocessWorker] sending request via socket... +[02:36] [ComfyUI] [SubprocessWorker] call_id=3 sending call_method [02:37] [ComfyUI] [SubprocessWorker] got response: ok -[02:37] [ComfyUI] [comfy-env] LoadImageWithExif done (0.30s): result: NodeOutput +[02:37] [ComfyUI] [comfy-env] LoadImageWithExif done (0.29s): result: NodeOutput [02:37] [ComfyUI] [comfy-env] Running LoadSharpModel: precision: 'auto' [02:37] [ComfyUI] [SubprocessWorker] call_method: nodes.load_model.LoadSharpModel.EXECUTE_NORMALIZED [02:37] [ComfyUI] [SubprocessWorker] acquired lock, ensuring started... @@ -413,66 +480,123 @@ Starting ComfyUI server... [02:37] [ComfyUI] [SubprocessWorker] serializing kwargs to shm... [02:37] [ComfyUI] [SubprocessWorker] created 0 shm blocks [02:37] [ComfyUI] [SubprocessWorker] sending request via socket... -[02:37] [ComfyUI] [SubprocessWorker] call_id=3 sending call_method +[02:37] [ComfyUI] [SubprocessWorker] call_id=4 sending call_method +[02:37] [ComfyUI] [SubprocessWorker] got response: ok +[02:37] [ComfyUI] [comfy-env] LoadSharpModel done (0.11s): result: NodeOutput +[02:37] [ComfyUI] [comfy-env] Running SharpPredict: focal_length_mm: 20.0, output_prefix: 'sharp', model: dict, image: torch.float32 [1,2022,3040,3] cpu +[02:37] [ComfyUI] [SubprocessWorker] call_method: nodes.predict.SharpPredict.EXECUTE_NORMALIZED +[02:37] [ComfyUI] [SubprocessWorker] acquired lock, ensuring started... +[02:37] [ComfyUI] [ComfyUI-Sharp] Health check: ping (timeout=5.0s)... +[02:37] [ComfyUI] [ComfyUI-Sharp] Health check: ok +[02:37] [ComfyUI] [SubprocessWorker] worker started/confirmed +[02:37] [ComfyUI] [comfy-env] PRE-SERIALIZE 'image' shape: torch.Size([1, 2022, 3040, 3]) +[02:37] [ComfyUI] [SubprocessWorker] serializing kwargs to shm... +[02:37] [ComfyUI] [SubprocessWorker] created 0 shm blocks +[02:37] [ComfyUI] [SubprocessWorker] sending request via socket... +[02:37] [ComfyUI] [SubprocessWorker] call_id=5 sending call_method +[02:37] [ComfyUI] [worker:ComfyUI-Sharp] [comfy-env] _from_shm got dict with keys: ['__type__', 'strategy', 'parent_pid', 'fd', 'storage_size'] +[02:37] [ComfyUI] [worker:ComfyUI-Sharp] [comfy-env] DESERIALIZE TensorRef: tensor_size=[1, 2022, 3040, 3] +[02:37] [ComfyUI] [worker:ComfyUI-Sharp] [comfy-env] DESERIALIZED tensor shape: torch.Size([1, 2022, 3040, 3]) [02:37] [ComfyUI] [SubprocessWorker] got response: error -[02:37] [ComfyUI] !!! Exception during processing !!! No module named 'comfy_aimdo' +[02:37] [ComfyUI] !!! Exception during processing !!! No module named 'scipy' [02:37] [ComfyUI] [02:37] [ComfyUI] Worker traceback: [02:37] [ComfyUI] Traceback (most recent call last): -[02:37] [ComfyUI] File "/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py", line 1762, in main +[02:37] [ComfyUI] File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main [02:37] [ComfyUI] result = method(**inputs) -[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED +[02:37] [ComfyUI] ^^^^^^^^^^^^^^^^ +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED [02:37] [ComfyUI] to_return = cls.execute(*args, **kwargs) -[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 170, in execute -[02:37] [ComfyUI] import comfy.model_management -[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in -[02:37] [ComfyUI] import comfy_aimdo.vram_buffer -[02:37] [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo' +[02:37] [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context +[02:37] [ComfyUI] return func(*args, **kwargs) +[02:37] [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^ +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute +[02:37] [ComfyUI] patcher = _load_sharp_model(model) +[02:37] [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^ +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model +[02:37] [ComfyUI] import comfy.model_patcher +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in +[02:37] [ComfyUI] import comfy.hooks +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in +[02:37] [ComfyUI] import comfy.lora +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in +[02:37] [ComfyUI] import comfy.model_base +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in +[02:37] [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in +[02:37] [ComfyUI] from ..sdpose import HeatmapHead +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in +[02:37] [ComfyUI] from scipy.ndimage import gaussian_filter +[02:37] [ComfyUI] ModuleNotFoundError: No module named 'scipy' [02:37] [ComfyUI] [02:37] [ComfyUI] Traceback (most recent call last): -[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 535, in execute +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 535, in execute [02:37] [ComfyUI] output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data) -[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 335, in get_output_data +[02:37] [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 335, in get_output_data [02:37] [ComfyUI] return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data) -[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 309, in _async_map_node_over_list +[02:37] [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 309, in _async_map_node_over_list [02:37] [ComfyUI] await process_inputs(input_dict, i) -[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 297, in process_inputs +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 297, in process_inputs [02:37] [ComfyUI] result = f(**inputs) -[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy +[02:37] [ComfyUI] ^^^^^^^^^^^ +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy [02:37] [ComfyUI] result = worker.call_method( -[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method +[02:37] [ComfyUI] ^^^^^^^^^^^^^^^^^^^ +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method [02:37] [ComfyUI] raise WorkerError( -[02:37] [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'comfy_aimdo' +[02:37] [ComfyUI] comfy_env.isolation.workers.base.WorkerError: No module named 'scipy' [02:37] [ComfyUI] [02:37] [ComfyUI] Worker traceback: [02:37] [ComfyUI] Traceback (most recent call last): -[02:37] [ComfyUI] File "/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py", line 1762, in main +[02:37] [ComfyUI] File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main [02:37] [ComfyUI] result = method(**inputs) -[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED +[02:37] [ComfyUI] ^^^^^^^^^^^^^^^^ +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED [02:37] [ComfyUI] to_return = cls.execute(*args, **kwargs) -[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 170, in execute -[02:37] [ComfyUI] import comfy.model_management -[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in -[02:37] [ComfyUI] import comfy_aimdo.vram_buffer -[02:37] [ComfyUI] ModuleNotFoundError: No module named 'comfy_aimdo' +[02:37] [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context +[02:37] [ComfyUI] return func(*args, **kwargs) +[02:37] [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^ +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute +[02:37] [ComfyUI] patcher = _load_sharp_model(model) +[02:37] [ComfyUI] ^^^^^^^^^^^^^^^^^^^^^^^^ +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model +[02:37] [ComfyUI] import comfy.model_patcher +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in +[02:37] [ComfyUI] import comfy.hooks +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in +[02:37] [ComfyUI] import comfy.lora +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in +[02:37] [ComfyUI] import comfy.model_base +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in +[02:37] [ComfyUI] from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in +[02:37] [ComfyUI] from ..sdpose import HeatmapHead +[02:37] [ComfyUI] File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in +[02:37] [ComfyUI] from scipy.ndimage import gaussian_filter +[02:37] [ComfyUI] ModuleNotFoundError: No module named 'scipy' [02:37] [ComfyUI] [02:37] [ComfyUI] -[02:37] [ComfyUI] Prompt executed in 0.31 seconds -[02:38] Execution complete (t=0.6s) -[02:38] Execution error: {'prompt_id': 'fb1b8573-b39c-489a-9b0c-0f581bba098d', 'node_id': '2', 'node_type': 'LoadSharpModel', 'executed': ['9'], 'exception_message': 'No module named \'comfy_aimdo\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 170, in execute\n import comfy.model_management\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in \n import comfy_aimdo.vram_buffer\nModuleNotFoundError: No module named \'comfy_aimdo\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'precision': ['auto']}, 'current_outputs': ['9', '8', '2', '7'], 'timestamp': 1778446348934} -[02:38] Results saved to /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/comfy-test-logs/Sharp-2049/dev/linux-cpu/results.json -[02:38] Saved: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/comfy-test-logs/Sharp-2049/dev/linux-cpu/index.html -[02:38] +[02:37] [ComfyUI] Prompt executed in 0.46 seconds +[02:37] Execution complete (t=0.7s) +[02:37] Execution error: {'prompt_id': '17b4c6a0-5277-443b-9e4a-9650d557d2fd', 'node_id': '7', 'node_type': 'SharpPredict', 'executed': ['2', '9'], 'exception_message': 'No module named \'scipy\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n ^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute\n patcher = _load_sharp_model(model)\n ^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model\n import comfy.model_patcher\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in \n import comfy.hooks\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in \n import comfy.lora\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in \n import comfy.model_base\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in \n from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in \n from ..sdpose import HeatmapHead\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in \n from scipy.ndimage import gaussian_filter\nModuleNotFoundError: No module named \'scipy\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n ^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n ^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'focal_length_mm': [20], 'output_prefix': ['sharp'], 'model': ["{'model_path': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/models/sharp/sharp_2572gikvuh.pt', 'precision': 'auto', 'dtype': 'fp32'}"], 'image': ['tensor([[[[0.2157, 0.1647, 0.1569],\n [0.2275, 0.1608, 0.1608],\n [0.2275, 0.1647, 0.1529],\n ...,\n [0.4471, 0.4745, 0.4863],\n [0.4510, 0.4745, 0.4863],\n [0.4431, 0.4745, 0.4745]],\n\n [[0.2196, 0.1686, 0.1569],\n [0.2314, 0.1647, 0.1608],\n [0.2353, 0.1647, 0.1647],\n ...,\n [0.4549, 0.4784, 0.4706],\n [0.4549, 0.4706, 0.4784],\n [0.4431, 0.4706, 0.4667]],\n\n [[0.2314, 0.1725, 0.1569],\n [0.2510, 0.1725, 0.1608],\n [0.2392, 0.1725, 0.1686],\n ...,\n [0.4588, 0.4745, 0.4627],\n [0.4510, 0.4745, 0.4667],\n [0.4471, 0.4706, 0.4627]],\n\n ...,\n\n [[0.1569, 0.1647, 0.1843],\n [0.1647, 0.1725, 0.1882],\n [0.1490, 0.1686, 0.1922],\n ...,\n [0.1020, 0.1137, 0.1373],\n [0.1137, 0.1176, 0.1412],\n [0.0863, 0.1176, 0.1373]],\n\n [[0.1569, 0.1686, 0.1804],\n [0.1569, 0.1647, 0.1961],\n [0.1490, 0.1647, 0.1961],\n ...,\n [0.1059, 0.1216, 0.1294],\n [0.1176, 0.1216, 0.1333],\n [0.1059, 0.1137, 0.1373]],\n\n [[0.1608, 0.1686, 0.1843],\n [0.1608, 0.1686, 0.1882],\n [0.1569, 0.1686, 0.1882],\n ...,\n [0.1059, 0.1176, 0.1333],\n [0.1137, 0.1176, 0.1333],\n [0.1333, 0.1176, 0.1333]]]])'], 'prompt': ["{'2': {'inputs': {'precision': 'auto'}, 'class_type': 'LoadSharpModel', '_meta': {'title': '(Down)Load SHARP Model'}}, '7': {'inputs': {'focal_length_mm': ['9', 2], 'output_prefix': 'sharp', 'model': ['2', 0], 'image': ['9', 0]}, 'class_type': 'SharpPredict', '_meta': {'title': 'SHARP Predict (Image to PLY)'}}, '8': {'inputs': {'preview_gaussian': '', 'ply_path': ['7', 0], 'extrinsics': ['7', 1], 'intrinsics': ['7', 2]}, 'class_type': 'GeomPackPreviewGaussian', '_meta': {'title': 'Preview Gaussian'}}, '9': {'inputs': {'image': 'eth3d.png', 'default_focal_mm': 30.0}, 'class_type': 'LoadImageWithExif', '_meta': {'title': 'Load Image with EXIF (Focal Length)'}}}"], 'extra_pnginfo': ["{'workflow': {'id': 'sharp-basic-workflow', 'revision': 0, 'last_node_id': 10, 'last_link_id': 21, 'nodes': [{'id': 2, 'type': 'LoadSharpModel', 'pos': [-150, -400], 'size': [270, 106.65625], 'flags': {}, 'order': 0, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'model_config', 'type': 'SHARP_MODEL_CONFIG', 'links': [11]}], 'properties': {'Node name for S&R': 'LoadSharpModel', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': '9f1b9c726e2cfc0118866c3df783e7f6bc895226'}, 'widgets_values': ['auto']}, {'id': 9, 'type': 'LoadImageWithExif', 'pos': [-208.74978010739324, -99.02778023242435], 'size': [342.28125, 420], 'flags': {}, 'order': 1, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'image', 'type': 'IMAGE', 'links': [19]}, {'name': 'mask', 'type': 'MASK', 'links': None}, {'name': 'focal_length_mm', 'type': 'FLOAT', 'links': [20]}], 'properties': {'Node name for S&R': 'LoadImageWithExif', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'c69751a59b587c3b83d0e37cfe2bab3bc838574a'}, 'widgets_values': ['eth3d.png', 30, 'image']}, {'id': 7, 'type': 'SharpPredict', 'pos': [226.15696022727278, -245.70490056818184], 'size': [298.890625, 212], 'flags': {}, 'order': 2, 'mode': 0, 'inputs': [{'name': 'model', 'type': 'SHARP_MODEL_CONFIG', 'link': 11}, {'name': 'image', 'type': 'IMAGE', 'link': 19}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': None}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': None}, {'name': 'focal_length_mm', 'shape': 7, 'type': 'FLOAT', 'widget': {'name': 'focal_length_mm'}, 'link': 20}], 'outputs': [{'name': 'ply_path', 'type': 'STRING', 'links': [16]}, {'name': 'extrinsics', 'type': 'EXTRINSICS', 'links': [17]}, {'name': 'intrinsics', 'type': 'INTRINSICS', 'links': [18]}], 'properties': {'Node name for S&R': 'SharpPredict', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'c69751a59b587c3b83d0e37cfe2bab3bc838574a'}, 'widgets_values': [30, 'sharp']}, {'id': 8, 'type': 'GeomPackPreviewGaussian', 'pos': [641.9426914835157, -275.49795068697], 'size': [512, 658], 'flags': {}, 'order': 3, 'mode': 0, 'inputs': [{'name': 'ply_path', 'type': 'STRING', 'link': 16}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': 17}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': 18}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewGaussian', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack', 'ver': 'df6bf3d73d0dda9c6ad7428eb58a00dc8cbaf6ed', 'cnr_id': 'comfyui-geometrypack'}, 'widgets_values': ['']}], 'links': [[11, 2, 0, 7, 0, 'SHARP_MODEL'], [16, 7, 0, 8, 0, 'STRING'], [17, 7, 1, 8, 1, 'EXTRINSICS'], [18, 7, 2, 8, 2, 'INTRINSICS'], [19, 9, 0, 7, 1, 'IMAGE'], [20, 9, 2, 7, 4, 'FLOAT']], 'groups': [], 'config': {}, 'extra': {'ds': {'scale': 1.1, 'offset': [292.8560303656579, 525.3669699599554]}, 'workflowRendererVersion': 'LG', 'frontendVersion': '1.43.18'}, 'version': 0.4}}"]}, 'current_outputs': ['7', '8', '2', '9'], 'timestamp': 1778448210087} +[02:37] Results saved to /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/comfy-test-logs/Sharp-2120/dev/linux-cpu/results.json +[02:37] Model report: 4 files, 2.6 GB -> /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/comfy-test-logs/Sharp-2120/dev/linux-cpu/models.json +[02:37] Saved: /home/runner/work/comfy-gpu-ci/comfy-gpu-ci/comfy-test-logs/Sharp-2120/dev/linux-cpu/index.html +[02:37] linux: FAILED -[02:38] Error: Workflow execution failed (2 error(s)) -[02:38] Details: sharp_basic.json: Workflow execution failed: {'prompt_id': '2da0a0a3-0f1d-4008-9544-3b71b057b9f6', 'node_id': '2', 'node_type': 'LoadSharpModel', 'executed': ['1'], 'exception_message': 'No module named \'comfy_aimdo\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 170, in execute\n import comfy.model_management\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in \n import comfy_aimdo.vram_buffer\nModuleNotFoundError: No module named \'comfy_aimdo\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'precision': ['auto']}, 'current_outputs': ['5', '1', '2', '4'], 'timestamp': 1778446342071} +[02:37] Error: Workflow execution failed (2 error(s)) +[02:37] Details: sharp_basic.json: Workflow execution failed: {'prompt_id': '680e7efb-b7e3-4246-98ac-baa7a4da9ce6', 'node_id': '5', 'node_type': 'SharpPredict', 'executed': ['1', '2'], 'exception_message': 'No module named \'scipy\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n ^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute\n patcher = _load_sharp_model(model)\n ^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model\n import comfy.model_patcher\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in \n import comfy.hooks\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in \n import comfy.lora\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in \n import comfy.model_base\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in \n from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in \n from ..sdpose import HeatmapHead\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in \n from scipy.ndimage import gaussian_filter\nModuleNotFoundError: No module named \'scipy\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n ^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n ^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'focal_length_mm': [30], 'output_prefix': ['sharp'], 'model': ["{'model_path': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/models/sharp/sharp_2572gikvuh.pt', 'precision': 'auto', 'dtype': 'fp32'}"], 'image': ['tensor([[[[0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n ...,\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000]],\n\n [[0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n ...,\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000]],\n\n [[0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n [0.0039, 0.4824, 0.9569],\n ...,\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000],\n [0.0510, 0.0275, 0.0000]],\n\n ...,\n\n [[0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n ...,\n [0.5098, 0.4627, 0.4235],\n [0.5098, 0.4627, 0.4235],\n [0.5098, 0.4627, 0.4235]],\n\n [[0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n ...,\n [0.5059, 0.4588, 0.4392],\n [0.5059, 0.4627, 0.4314],\n [0.5059, 0.4627, 0.4314]],\n\n [[0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n [0.6824, 0.6118, 0.5333],\n ...,\n [0.5059, 0.4588, 0.4392],\n [0.5059, 0.4627, 0.4314],\n [0.5059, 0.4627, 0.4314]]]])'], 'prompt': ["{'1': {'inputs': {'image': 'beach.jpg'}, 'class_type': 'LoadImage', '_meta': {'title': 'Load Image'}, 'is_changed': ['ee4f94632a5ec7038826e875829a62a81dc2a9b85ed59440f2eaa37b3704fa24']}, '2': {'inputs': {'precision': 'auto'}, 'class_type': 'LoadSharpModel', '_meta': {'title': '(Down)Load SHARP Model'}}, '4': {'inputs': {'preview_gaussian': '', 'ply_path': ['5', 0], 'extrinsics': ['5', 1], 'intrinsics': ['5', 2]}, 'class_type': 'GeomPackPreviewGaussian', '_meta': {'title': 'Preview Gaussian'}}, '5': {'inputs': {'focal_length_mm': 30.0, 'output_prefix': 'sharp', 'model': ['2', 0], 'image': ['1', 0]}, 'class_type': 'SharpPredict', '_meta': {'title': 'SHARP Predict (Image to PLY)'}}}"], 'extra_pnginfo': ["{'workflow': {'id': 'sharp-basic-workflow', 'revision': 0, 'last_node_id': 5, 'last_link_id': 10, 'nodes': [{'id': 2, 'type': 'LoadSharpModel', 'pos': [-150, -400], 'size': [270, 106.65625], 'flags': {}, 'order': 0, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'model_config', 'type': 'SHARP_MODEL_CONFIG', 'links': [6]}], 'properties': {'Node name for S&R': 'LoadSharpModel', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': '9f1b9c726e2cfc0118866c3df783e7f6bc895226'}, 'widgets_values': ['auto']}, {'id': 1, 'type': 'LoadImage', 'pos': [-150, -100], 'size': [274, 340], 'flags': {}, 'order': 1, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'IMAGE', 'type': 'IMAGE', 'links': [7]}, {'name': 'MASK', 'type': 'MASK', 'links': []}], 'properties': {'Node name for S&R': 'LoadImage', 'cnr_id': 'comfy-core', 'ver': '0.5.1'}, 'widgets_values': ['beach.jpg', 'image']}, {'id': 5, 'type': 'SharpPredict', 'pos': [181.546875, -251.55078125], 'size': [298.890625, 212], 'flags': {}, 'order': 2, 'mode': 0, 'inputs': [{'name': 'model', 'type': 'SHARP_MODEL_CONFIG', 'link': 6}, {'name': 'image', 'type': 'IMAGE', 'link': 7}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': None}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': None}], 'outputs': [{'name': 'ply_path', 'type': 'STRING', 'links': [8]}, {'name': 'extrinsics', 'type': 'EXTRINSICS', 'links': [9]}, {'name': 'intrinsics', 'type': 'INTRINSICS', 'links': [10]}], 'properties': {'Node name for S&R': 'SharpPredict', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'aa98b213e3d0770477bbf46046094c5cb8ff6052'}, 'widgets_values': [30, 'sharp']}, {'id': 4, 'type': 'GeomPackPreviewGaussian', 'pos': [629.92578125, -322.046875], 'size': [512, 658], 'flags': {}, 'order': 3, 'mode': 0, 'inputs': [{'name': 'ply_path', 'type': 'STRING', 'link': 8}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': 9}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': 10}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewGaussian', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack', 'ver': 'b7df285fc5b3fef7aad434d8b6e8698efed6358b', 'cnr_id': 'comfyui-geometrypack'}, 'widgets_values': ['']}], 'links': [[6, 2, 0, 5, 0, 'SHARP_MODEL'], [7, 1, 0, 5, 1, 'IMAGE'], [8, 5, 0, 4, 0, 'STRING'], [9, 5, 1, 4, 1, 'EXTRINSICS'], [10, 5, 2, 4, 2, 'INTRINSICS']], 'groups': [], 'config': {}, 'extra': {'ds': {'scale': 1, 'offset': [300.79296875, 604.72265625]}, 'workflowRendererVersion': 'LG', 'frontendVersion': '1.43.18'}, 'version': 0.4}}"]}, 'current_outputs': ['1', '2', '5', '4'], 'timestamp': 1778448202982} Details: -Workflow: /tmp/comfy-test-run-frk8o1_6/ComfyUI-Sharp/workflows/sharp_basic.json -Node error: LoadSharpModel -sharp_exif.json: Workflow execution failed: {'prompt_id': 'fb1b8573-b39c-489a-9b0c-0f581bba098d', 'node_id': '2', 'node_type': 'LoadSharpModel', 'executed': ['9'], 'exception_message': 'No module named \'comfy_aimdo\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_q1k2p7y3/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 170, in execute\n import comfy.model_management\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/comfy/model_management.py", line 34, in \n import comfy_aimdo.vram_buffer\nModuleNotFoundError: No module named \'comfy_aimdo\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2049/.venv/lib/python3.10/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'precision': ['auto']}, 'current_outputs': ['9', '8', '2', '7'], 'timestamp': 1778446348934} +Workflow: /tmp/comfy-test-run-25wt5ji7/ComfyUI-Sharp/workflows/sharp_basic.json +Node error: SharpPredict +sharp_exif.json: Workflow execution failed: {'prompt_id': '17b4c6a0-5277-443b-9e4a-9650d557d2fd', 'node_id': '7', 'node_type': 'SharpPredict', 'executed': ['2', '9'], 'exception_message': 'No module named \'scipy\'\n\nWorker traceback:\nTraceback (most recent call last):\n File "/tmp/comfyui_pvenv_hj55mpkg/persistent_worker.py", line 1762, in main\n result = method(**inputs)\n ^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy_api/latest/_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/.ce/.pixi/envs/sharp-nodes/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/predict.py", line 111, in execute\n patcher = _load_sharp_model(model)\n ^^^^^^^^^^^^^^^^^^^^^^^^\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes/load_model.py", line 75, in _load_sharp_model\n import comfy.model_patcher\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_patcher.py", line 32, in \n import comfy.hooks\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/hooks.py", line 14, in \n import comfy.lora\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/lora.py", line 23, in \n import comfy.model_base\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/model_base.py", line 25, in \n from comfy.ldm.modules.diffusionmodules.openaimodel import UNetModel, Timestep\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/diffusionmodules/openaimodel.py", line 21, in \n from ..sdpose import HeatmapHead\n File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/comfy/ldm/modules/sdpose.py", line 3, in \n from scipy.ndimage import gaussian_filter\nModuleNotFoundError: No module named \'scipy\'\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/execution.py", line 297, in process_inputs\n result = f(**inputs)\n ^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/metadata.py", line 536, in proxy\n result = worker.call_method(\n ^^^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/.venv/lib/python3.11/site-packages/comfy_env/isolation/workers/subprocess.py", line 674, in call_method\n raise WorkerError(\n'], 'current_inputs': {'focal_length_mm': [20], 'output_prefix': ['sharp'], 'model': ["{'model_path': '/home/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-2120/ComfyUI/models/sharp/sharp_2572gikvuh.pt', 'precision': 'auto', 'dtype': 'fp32'}"], 'image': ['tensor([[[[0.2157, 0.1647, 0.1569],\n [0.2275, 0.1608, 0.1608],\n [0.2275, 0.1647, 0.1529],\n ...,\n [0.4471, 0.4745, 0.4863],\n [0.4510, 0.4745, 0.4863],\n [0.4431, 0.4745, 0.4745]],\n\n [[0.2196, 0.1686, 0.1569],\n [0.2314, 0.1647, 0.1608],\n [0.2353, 0.1647, 0.1647],\n ...,\n [0.4549, 0.4784, 0.4706],\n [0.4549, 0.4706, 0.4784],\n [0.4431, 0.4706, 0.4667]],\n\n [[0.2314, 0.1725, 0.1569],\n [0.2510, 0.1725, 0.1608],\n [0.2392, 0.1725, 0.1686],\n ...,\n [0.4588, 0.4745, 0.4627],\n [0.4510, 0.4745, 0.4667],\n [0.4471, 0.4706, 0.4627]],\n\n ...,\n\n [[0.1569, 0.1647, 0.1843],\n [0.1647, 0.1725, 0.1882],\n [0.1490, 0.1686, 0.1922],\n ...,\n [0.1020, 0.1137, 0.1373],\n [0.1137, 0.1176, 0.1412],\n [0.0863, 0.1176, 0.1373]],\n\n [[0.1569, 0.1686, 0.1804],\n [0.1569, 0.1647, 0.1961],\n [0.1490, 0.1647, 0.1961],\n ...,\n [0.1059, 0.1216, 0.1294],\n [0.1176, 0.1216, 0.1333],\n [0.1059, 0.1137, 0.1373]],\n\n [[0.1608, 0.1686, 0.1843],\n [0.1608, 0.1686, 0.1882],\n [0.1569, 0.1686, 0.1882],\n ...,\n [0.1059, 0.1176, 0.1333],\n [0.1137, 0.1176, 0.1333],\n [0.1333, 0.1176, 0.1333]]]])'], 'prompt': ["{'2': {'inputs': {'precision': 'auto'}, 'class_type': 'LoadSharpModel', '_meta': {'title': '(Down)Load SHARP Model'}}, '7': {'inputs': {'focal_length_mm': ['9', 2], 'output_prefix': 'sharp', 'model': ['2', 0], 'image': ['9', 0]}, 'class_type': 'SharpPredict', '_meta': {'title': 'SHARP Predict (Image to PLY)'}}, '8': {'inputs': {'preview_gaussian': '', 'ply_path': ['7', 0], 'extrinsics': ['7', 1], 'intrinsics': ['7', 2]}, 'class_type': 'GeomPackPreviewGaussian', '_meta': {'title': 'Preview Gaussian'}}, '9': {'inputs': {'image': 'eth3d.png', 'default_focal_mm': 30.0}, 'class_type': 'LoadImageWithExif', '_meta': {'title': 'Load Image with EXIF (Focal Length)'}}}"], 'extra_pnginfo': ["{'workflow': {'id': 'sharp-basic-workflow', 'revision': 0, 'last_node_id': 10, 'last_link_id': 21, 'nodes': [{'id': 2, 'type': 'LoadSharpModel', 'pos': [-150, -400], 'size': [270, 106.65625], 'flags': {}, 'order': 0, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'model_config', 'type': 'SHARP_MODEL_CONFIG', 'links': [11]}], 'properties': {'Node name for S&R': 'LoadSharpModel', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': '9f1b9c726e2cfc0118866c3df783e7f6bc895226'}, 'widgets_values': ['auto']}, {'id': 9, 'type': 'LoadImageWithExif', 'pos': [-208.74978010739324, -99.02778023242435], 'size': [342.28125, 420], 'flags': {}, 'order': 1, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'image', 'type': 'IMAGE', 'links': [19]}, {'name': 'mask', 'type': 'MASK', 'links': None}, {'name': 'focal_length_mm', 'type': 'FLOAT', 'links': [20]}], 'properties': {'Node name for S&R': 'LoadImageWithExif', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'c69751a59b587c3b83d0e37cfe2bab3bc838574a'}, 'widgets_values': ['eth3d.png', 30, 'image']}, {'id': 7, 'type': 'SharpPredict', 'pos': [226.15696022727278, -245.70490056818184], 'size': [298.890625, 212], 'flags': {}, 'order': 2, 'mode': 0, 'inputs': [{'name': 'model', 'type': 'SHARP_MODEL_CONFIG', 'link': 11}, {'name': 'image', 'type': 'IMAGE', 'link': 19}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': None}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': None}, {'name': 'focal_length_mm', 'shape': 7, 'type': 'FLOAT', 'widget': {'name': 'focal_length_mm'}, 'link': 20}], 'outputs': [{'name': 'ply_path', 'type': 'STRING', 'links': [16]}, {'name': 'extrinsics', 'type': 'EXTRINSICS', 'links': [17]}, {'name': 'intrinsics', 'type': 'INTRINSICS', 'links': [18]}], 'properties': {'Node name for S&R': 'SharpPredict', 'aux_id': 'PozzettiAndrea/ComfyUI-Sharp', 'ver': 'c69751a59b587c3b83d0e37cfe2bab3bc838574a'}, 'widgets_values': [30, 'sharp']}, {'id': 8, 'type': 'GeomPackPreviewGaussian', 'pos': [641.9426914835157, -275.49795068697], 'size': [512, 658], 'flags': {}, 'order': 3, 'mode': 0, 'inputs': [{'name': 'ply_path', 'type': 'STRING', 'link': 16}, {'name': 'extrinsics', 'shape': 7, 'type': 'EXTRINSICS', 'link': 17}, {'name': 'intrinsics', 'shape': 7, 'type': 'INTRINSICS', 'link': 18}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewGaussian', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack', 'ver': 'df6bf3d73d0dda9c6ad7428eb58a00dc8cbaf6ed', 'cnr_id': 'comfyui-geometrypack'}, 'widgets_values': ['']}], 'links': [[11, 2, 0, 7, 0, 'SHARP_MODEL'], [16, 7, 0, 8, 0, 'STRING'], [17, 7, 1, 8, 1, 'EXTRINSICS'], [18, 7, 2, 8, 2, 'INTRINSICS'], [19, 9, 0, 7, 1, 'IMAGE'], [20, 9, 2, 7, 4, 'FLOAT']], 'groups': [], 'config': {}, 'extra': {'ds': {'scale': 1.1, 'offset': [292.8560303656579, 525.3669699599554]}, 'workflowRendererVersion': 'LG', 'frontendVersion': '1.43.18'}, 'version': 0.4}}"]}, 'current_outputs': ['7', '8', '2', '9'], 'timestamp': 1778448210087} Details: -Workflow: /tmp/comfy-test-run-frk8o1_6/ComfyUI-Sharp/workflows/sharp_exif.json -Node error: LoadSharpModel -[02:38] Stopping ComfyUI server... +Workflow: /tmp/comfy-test-run-25wt5ji7/ComfyUI-Sharp/workflows/sharp_exif.json +Node error: SharpPredict +[02:37] Stopping ComfyUI server... diff --git a/dev/linux-cpu/videos/sharp_basic/frame_000.jpg b/dev/linux-cpu/videos/sharp_basic/frame_000.jpg index f868e9f8de0a32fdca440f53073908c8ec6bcb1d..352adb95cb3eca0553f921cb6557ff696b9dabcc 100644 GIT binary patch delta 1366 zcmcb4mF?zLwuUW?+>7c@e3y%#-S|00^wwc!o9BI1r7M*;-20TWYt_`i11D8#3;&ri z$80{i&!xBBUNg=rd41gBy*6?C9`Dk)Sr@dbxb?t+%k%8(FD)^@lsa>w~Kh z9p#rYnDWW`FFczOmg_Zn7Y`H1_XWJx(Yw3d%ePHkloc~kw8#MI6gcC80W$Ddj}$!+p``9lqo;U#bV>R`e&B^m~N|wdP`PY|RH}{cBXD()CE@YOpc>g~1#R8@! z@~@6x`Oo0hH~&9_&XwxP4m^vxG#Frbxw*@)`e0WPhT<;EMO_SR8P81u9XP6MGyMvI zg7w7?XGH=S&t*IVYOy>jbJ3N7*`#=u#scP9d?5K^59_}fiyFk|Tm&jZF@oJh<`GcO zvqq5OIhW+_M`!IGn>qr{9u^ti(2ph-^ zNQ4O_g=0NEBOA$$=S2b?xDP&U=d(L5vcuo)&wqwrR{|Y4rw6WL6bWQc_$T(CVc-5= zS8C?p&Hw%SKf_vJQiLg+ul_yy->?4+uYq|~9?t$$U%LPO`hQ!2i5bS!6TZ0L9wfpv zy?+&>==9es8O3;DrZgx16Px~cC1cX``#@ny+2$W`L)jBvEdOXC7d)JkMk+J}y*PC&6HR!lrJ^=X5DUBd=FWR;@q5`6S)8u&euR zk!1N)=PRPeSp<91*E_!U6JI+=Vv&~FROdN*#y!RJ{=Q(cS9N(SvgW|*Tt;!#zQV>} z-DzvnJU6WSCRuw7BohQS}*0y>ptl&59>g+Q{)|MZ8z-5R|*XJtIfYh|P^Z zE`w?BbpFMRqSO5rGqO*v&g7b|w3M-Bdd*TszUlEAjJ4bUEn>XQSif99{=k0*W#8i_ zPk-MJaDVB*>)amvqBu%)cF>Y{%?wSpFPQzVy?b==?%SmqGcO!F>K|(B>Ktl!XG#1;d7MjmCe*(y0>t} zy{uxL?UyB&gx->9;Irr3o0(Vt)%y1B3f*^kl8+jaOb#$s9M4a@w(_C_t4JU!_TZB; zetG_N;H3*}y-~StKcDu6?b%`EVkj-i7f>yCb;9IbJWL$lm)EZRE7oADpa1UtQ=zy! zr>z?sVmJ3MUm854wR7{Gq}6{{{uTeU;>pA%zmI=dz!rMfx;}W<<*4ACWNoe1iK@LR zVGK`F43wKgRxIEymzw(a?Crb0#hNp37be_zep^;^`t`~8@0y;y%r^7Dor4Z{9FF-} z|GrwK!LXA3*T%2*mliMo&v4pQ?#TsajYVAyFsym@qTT!}7hM@-9`$7`YG9mYc~&HV zN$!4B@SH$bhI*L`#;zg^#j`AdTKEdxO#&Sl&dNON(qMSj43d|*#P^>eN@D@*bCY7A zI%G2#&$3$pHCZl51FC**(!Tv#mj?6-6_{Q=)t7>q^6KBC|NZ*U@EVvx;q0J?w$h&=V(QZaS24;> xmjW7M%H8rM|NMW3wVp7|NanC7{1f}nuy6mbD}fG-H>@=O__9oP6=D2;69C+9F&O{= diff --git a/dev/linux-cpu/videos/sharp_basic/frame_001.jpg b/dev/linux-cpu/videos/sharp_basic/frame_001.jpg index bcd2e65e5f472169adb1dbd7f58f59b72f7641e6..0362c9c406ddfff5f94d5b5b4146a14c9e8843de 100644 GIT binary patch delta 53870 zcmb@ubzBwQ+AutukPsUbEJdtP=fss~}@ z8&K(k>@ps0=b?Fx9>gP*%@hm)kJi2j2Q{XEyn-@fzp zvotmi$9*r)tuXMcknercZe+HHd^0Dr+H~^B=Y2h0=TiBkI!QKlPD!YdV!*dEaH1M! zZ6nz@JD0v+MAGV33aNWbiQAwrI`S6|*&d~aCr%C&h3QkJ#*RtP_x8LfT@A$=V>ZsR zj$W^f@ClWXG2mkku1S%r)f*Gh96B6AM^c36X_W1*0KI1IOBP6_rX1ktt)ign-iB|e zTHn>`qnu2Y4r)I?nFK8hyd&mYN$Kwof7enRe%5_Q3D>K}xtF-do7)H`Ke5Ey2_bz@ zTHmLLnH{3$2ObtSO;irvc&Or@KW}2(&H8Y#d^f(O6QFLu2KFNf9geB*j*;vv3cR(l z5V+3_xPb{pE7j4T%FXjPzkc&~-_WEabm5U?!I7dRglzIp1cIoo9qzlb2kN0mp+#Q-1)mWwC zuJgB;y$OmmF=r7G)vjrxCKtuC<8})()1+qXDbD`M6nCnbWQn8{je@iNu+`G_bgbf% zJG0#YU+L%f>z{{4cbs&GWSv4pAOl$4mYb@28SjD$h3A~}3k40E_Wf1wz73V0-%{zP z-91c4?-a0rQPhdS%qq3v{#cNkut=K>SW@lBzc)mKnuy}2%(GF}rAuRfg~J>T^pL%V z=`dr(!WU&K`vhIf$?hA|#WKy${Owj3J$gIT+Dm1kjGgy!8=R_ znY=lj4sNEKdRZ~m z*bPi-fzTNRmtqckr5SOaZsrK@d|E80y-HZ?tGaOblLEK*krLEm$3;eL54ri`%;;s5 zE_zkQeY{8#45go}l_(aSu@r{+D8?q&u-P~7;lh6)EK2F3-$z@?hERVkZnV%<;U|X* zfG^GcaUE_ng!!p`=sMy%80Su~@QaH^b7`ZC6n}@Boc7~@SkLV6ams_(Z@gP3%sx#2 z+`CJ>)Lh^{`6+RtPs8-(40LA>U7()>a{7Z0j2@OdrYcz_hj@gA-ItV?KD|8GdwSri z;5H}MnMU!f=koOM_^{wW&r1x9CG=vmPus)$g`dS0V8HIB=TeQEwbuqYT`kr4)+*S@ z8Ocv|A-8T&+>EUdZpxm|R2|B4e1mU>!6uH@oEPnI+aOjimp~$ljH^vs42NfCxT_qH z42`+vc_+Dgcq1`X$puD#D$g8q@?bykb5!Qe&uQ`!y3iX>@AOTEfX2ODPi^JGrXTRW zY2`={W08)@_HXGB8=IVbeHLHn;%wo)Rz@woKOPaF#+&>i%6rQsoG5TpQ2d-fm!dX1 zd`FO~D1K>NGo7&WEz`?vjn9^|C`-oIIU5k#Yi;(**UP=oh+|0eqD`n5@pXs2cPL-W(o z6~6eos&i62Md*@}WkwnSFrF(QdH5YTV9y&W(hn$83$DAKXr1P7o#|ju`rE1TO5MKx zq2+VkBH=rP{C)kW=4$ST4UM0PBI#HSV~3Zl&)NuPAWq1|H z)3J;+FnYW58f_QhHMr4`0TkGr10l>@5gQgYO$IA^#|o#8f!KpfL_lU7`+PAUJksdl z_RNbzULo~NHuK@n@&tJ3=QrK4S24kL3@w z)N>#9p$-3W8nb_3Motk~e+4`XefW!I|1u9=%%Yu1Lkx-K%;>XDq|k(aF-iW{93Z>U zZlQn@Cw`OV*{Bl3a^j!y4OaltfO{4yOQ8qXsF!Pbw={!#vDx%5crn3d@&+_d9=?T6 z>8I^aUjbA!NHXHqE{>2?D4ggz{zm05P@?)4jaBNap!Y^@ycjge}+XYZ@tZTI3pFB+`^ZC${gH61|vAl~>GA?bCHrr-hu2zu`RilEvH0xhS$( zjE@#j2}zPOsjq&{xg=Rz6*nhr@ltFdh!-KK7KrWcac$yExkudIxKstG^6hGu^0PbZ z(gDr6K*@fxwfuBQy}zv_E9OS`mNI$s9`s` zNh)F%86g-zW+UL2$P0sVbC94Q`^`n+Hl$Y8B0-^!ych}dOT>h^aISbtk)U2GT$r2&tETWnLr4|{+_UzvKi<8 zF~wfim*1_CoXywEI~d^pJ?OGm$diUWyeL{ z-u!v^sg{o;av2@4>`fzgk#!A}ck?u^&1@1ih@}9XRAUgS-~QMV)z^#vj0ngOzHat$ zPOF`dWBvo}ANbr5URri)ip>%3ye7r+--b3BUx5G;GMY1T>ioYT{+S%|tY#27D3bFE z_)m~o!+#>F$?OG@tok=XvFWcH72;3-11YE1Q|0kC-TOldavS*@El7l}@sa+`sqVzu@`@lI8i6!;#@#=rXLH&nUfF{K+xDvl8`WK0UNRg8MB0~BXL0P|f zuK8PZ>FB@Yq4A5Lf1~mbIw8L~{D)~@<_fO~0%Sx4Dxs2lQmZiP)j$e4B8?j%a7q|s zn{sXV`285zbFvv+P*%OJM$u$PwSO#T##p4!4Hb5`6G)xEw9mKk;>`M__+^RS&E^$# zNKsQxc~^&nP7D{CE2&5r-UAKP-GBj)*LS|~$S1tfTh4Fk8uaZg)b|SV9${Hfw2(1i zTV76GgDMx+I0r!3P+%ANlyE5-h)FrWBm_j&8&xY$Q;*qHl~KG%$&e#CFEvOu-&xDn zM|3xn^tvC}?3sj@xQH+Vsoof4Kb4$4qwV1FeI=&uKn_8V)~f0jy9MnR{+lEle+;y1!kKhUTySmhVMD~aj91@(_K3oLicBX;IFJy!6%JIknlLJ^)8VguF_F4<^?YYd;`bJj)8FcGJ`cn zh;fqEoZDo1k1gj-UaR#{Ew^P{aS8a1SJ9&5aE&(XM?jp=`+{i`lZ~Io{sk1`B5jXO z_6=^wOHiWt^GgwP9dwolDWqECFxzHo@UJ>D@Z(9RN?rk|I->m^t`44rUrn=T)Ay;A zjnm(lusPl(;$87fOQO&3cTYLfK%t&D`p6N5u2d2unj*^5VLpJyNf^vpW5j%oa?+d$vw_AL z2JOvikwmGi%H3>3$!ndh#}K^&97e17x63X|`>T$UoY|}0SDqYhBm%)4PASO@a-meY z)J-qOE?Lo2dS%xz-*r}2?>+)s1?>mUMA9RKIl^zkwMsK#$zD#cBAUOc8ZYm2&c%Le$PI=Bi<>tuCg}tTp8k-a&IL^RF;34m5t;hA$NQcb}^S`WL%e-kl`^O z7q0mnH7FfdbS>NXp_)K_Z8Ci{<49ln!n5?6<$yAV6;-jVMat5aY8EZyt66+J2m6}yANF|p+GS)7S?9fGLhoEaXZzjsQOryI#q zfQd@^e6(6@G&6quJINgAl_+Fr*sAy$1yghORW>c1ia0!QAeuMKYNzwj*oa_un~Trj zZOj2&^=9>f;&vaWLY(5&(^C220(1&v(N<=Or^^<}&c#|2iVO1S<2*Tx6pFOT)o#Ap zC?W@iIT}`GEEO4CyLuvPBZ(ZAF{@-2AJJ1aZ{G;Z*YaDc&CjX_E1b^nA*3hT0XQ8NUk>4nj5&n57FoRi)`#jYfkSX3tDv%2io6)h} zXMrEH`Tq6M;b5+$y@PS#(;$%&;)u!Uib@`eSim*ahl=%>^rsT#>(DDeu=X`oXeOQ1 z*OmnwY@nc8SQQUUzH3R1HJFD1JJW$}jI1JcnlN(OVwO*k}a zqlg*G7EtPLomylFxxMaP!QNrxSz4v1lJpG)J_yU1s`6RhH6+JJcdxCM*RcxyAlMLv z&PUt}xR6;{S-DE#kN)y}az>MWIY6lNL{`4TQ?Q2eNZ9!cBKQvl2q~QN4TJ{f@~8!7 zDuPk-%pAfGft#a1uwYT<1hCXXoQgv;UWjo|4Az6&Sp`Jpl!3GSn!{2g!58g1DsQTJ zt@%h8tSn3H*0hrNcoaV?jfeO*{_uS&DySR^)J}yJvqW{0LwO#>e|931Jh|Z2?DyQ8 zE)pluRP!D*v8-GAQE&j`9g>BAxCt?VvDDqEX|#g~Lg48)ArAlg(?zRrD|3_Uef;p-l@{;wA#r67-S2&*f6GOxfoVVP~E{naMUrFKO(m@m#j|wuCg-Q_dtJ^ z-I1!0u+Zkl2DwLL=mStAXu0_nkoFDf5P*kU&V^&f2#1TlfC|-Zu?f3u@5)3ZQ3hR)%6vAi7^5z*m>ZNb+RnITPL~g60^xd6`BQ4)*Sv zt)&xp$_;PBr#2OG_%3BE@9e}!{oHr3hxog3gU zcBp@o-WaKB{+o=~|IYKx{k`+a(^nIB*N&lkd>}T)|GKZ=LFSMDqh5gjRE+oA=_3L^k6jt8Ntxh#fULSQ_s9q@=E$OV^BC`&pz+KVU`In|^33?8S) zo#(6R8G+a=$m=if>{lEb@XXHYgh`z?>Lk`_LTrH)2Aux}v zeA@`f#+&+3XTBJ$0%YYL#MkiAdT*~-i+*M!#Kpuoqz#}en%Zz5++o1CjI`*(KTEhuk$dPR*^Y9*2DRn+I@bgW zNf4eZWrJHPIks>y__PE(JfP?0#eBz1ROU>ub59`OdNC)ziprKlVZsNC%8+Sun`pyw zgD4RVb^8jMS60G~lr`1eK((-nn=qe%`4TN8c}>Ey3b4@BKcwO<$_Vk^dGxV5xirGI z#yqY=8V77WEpW534q;NFz72vN^%@mIck{X<}yU0To3LU8*&aE7F6cl|Z^so$z zMm&&ea3WvT(G}2^Anc&DR(VhHs@fKXjqPNlBqYt%hrl~;+x}q`qT@5QD_Q{qhpg9j5Mys8NP2> z;yx)l*a+Nn6teO`c@(FF%7F5PTqKXFCI(%bX~+OI@H0Iha z9eDfwa-7q>PNh%e=;TC~BwZucB0mMP|795@|438cv<23P+?7(r?wG)NQz3kygKhKA zU9SVPErY|djI;y4<_zRk(^6zh=FL65 z6={?!XOR-#&Jd#{%G}6Eq=jlRc}f4NW{CN$*YEWX=AjHZ)&-W?Kn>UXnz!wpCNQnC zb4snE1v$4!`fVT>8%vbIqV^-mf?7Jd7H@m-Hi>=R(Xr@DQtgyW5=9?Je`Rtlo74jJ zyX>-wC&fh}nYZZ%ZTLTpA!507gYGE_G`Vp>`WL3uM6wx}j^8_7osax~!HTXB#qjIyr@{W?SuFdjW zCB(0B_>*Zgqwu~-QK5bX?Y#Yz47fQ676{)EI^-=qf-|^uO0umcF?3K-8*|D~_&E>; zd?|LxuWI;YSiQzYu80a8w7U^$VEAXLT2p+Tk#lRd;N;pBJCLtFPiT@RMf(|{rf_du zL8&$xCX+a-88R`^wYW_Ux&#~dF_dY!wZ=a0@U;wGT2H^ZFLtk){%soLtzkNk)9PFE z-j*d|KaGv@lmw=`t87NCKb{8kx;oG$Fo}n#uu)o)uLO#g7=;4cW+tz_H|cI9JIeL> z)bifF>)k!Sy_NXEA%7!LH7*Ji^LyduZ2Wzc7F(LF;44NcGo}CLGMJZ+o1Z;edGd7q z+d1P5VK?e@+a4ufj4=&6Y8)EsAk}7Ta~WyHK;)AN?yT6LvEG{A(+~?0(b;;}L(zWM zN)7Z&S*`Pj4J5HxwVOGq-dS%5SFE^Dsrq=-AWIPq9)-S# zdyP5S5@yzZDpe?ilheJoK0AGB4u;R*xc9ppXxzwsV;un!Y~CmQOs7OK(Ebot7UvL6 z?;()}1Q~X@zHT%HkE~tx^oX|GuRr7hXNoes*ByM2sWuvZOppYmU45R&|J@ej%fyXu z@F56Oa$knzy4@!9;t*jG_ zBi*|0?;vF`9mo~lfh-ufb&6P(^gpvqEcWu4tRKWml%>gPtv4Ft@t358DlcW|yk#TyyT%j2Jk@3_b#)#T*?|-cWAuKJOF=ajn$5 zn23MX=7~RZKYoj^&FK+_t-PfEW%AF1e%tInrWt3g~cGmr( zA1KhsJ@rg9;h9E;QHGnQIHsiWV5|JX$@0pCd@@JKY(l%Ne@>_CtxdZl!s0%+>G;>_ zIDwhF;?m;!o^$*i3d&OMI?D>tpX9^7`=XNzPEm<{V($$OZ7m_)E?3}_17KE`WaL~z zI95BC-g%XNPv3m+PYF_SWFTy)c~EBsCR@6QkU`|d*P7%|MK&W$#~Bq^H>B`~<%j@H zZDV64chS3wM;DpyB<3iQTB-&Q**3Cu%sAuVUhhh<197pC_JC$aC3g|MVt@bJgkt@b z#|+lSBFlcr&2SKAws8-lC>6A# z0Vpv4ml|+obO<8|5ddAZ^P@{UZr!^!RNn<%+XW0|-3)2k@~gspf+wOEg_NL>eeT(rAHKcrRCC=Xk(DD7T?jSYKUe_I)YJnh0Qy9fY*Oe;MCXzaM~QD6fJD9HI)L z;X|by4i)XE9J*2c_6ndr2IUY{@*n>Coa;FFrhR^udGR$Ex~M)LpvaOD+V%w&jml6_ zV_5_-nK;lEs3AQw>2@b@vkJ#mPCe-~@=VAxRUsNya%ZROY~eJBC#~41ky-s(sxW6d zAbCqvIxpXgQEkulyFM8`T_C%&X=R83-Ncg{w6(}ZQhOf0g-nf~P0;3Xz*_F+RTR_K zLtw?U{iZ^pY~$g%Qx^*~4s=eMkqvGDO);RG@d30EtqRh0ZF&%s8yJYQoR%x_5FOXfVm=awz13}cRGJgYta)ZlWf>C?z-ol{Qlw={=mc}fr)&8ce2O@yIH$N z#wO349HL-{cHs7bZo3hjf{BlIW0SYfFezfhTVfev#+PLulZ& z>j<+l+n)jFnZl#NL04oLBoT=Gkwt~568h4-R*H-knFtNv%PMHNjp+e%ZOjv`5ok=+~+?>Mo*q4{-Xy9 z^wWz`ShEuecrT9YFA|u#n%9u3+oTF8%p*e$N`G*d|3|aDugBk}vGZ(4&i4vAAIjZ> z%;x{VqSr@fBdIBDGS{g88}HKn*&ddGgOB*H(Ng^%w#{M!kszn8g>u%oU z1H8!rvHne}6}R3byd{x1J{o|E=h-!vRR7U>xBHrs)nw=cipK%`+2sWyJ`#g+z@+s{n^JX)Hoo#FHtdDXrZQwSV zO>*Q!iClxp*Qyc7)0Hk0zCgv+>Dqv&;W)e4UAJi(RA1doTh_5!UY^hw66Ub>DSpsX zq2e;KC`)9o#>0b2pKBz;h{Za}`I9;I{%f#+GOwj&x5ItgATW9;`XHT9jPmi@=QWNE z917omb~8_<@xC{)vE7*7&{8L-cIX@MGNy?)_@tQWvK7&6w6=k)2#8T{Bt`Z7W_1N9 z-m&hQJsncP$<09Q#5gYSJFH49a++FKrn5_RNBo z(@n($5f=lk!W{&C22}DGY=i^{A7P0K>KE7aWum>!Yq>U5JcZwyN7%cnSUM5*k_a9{2t_TM z?NB%SR8eqwp})!)ziB2)w2h`r$qJQi*GNZ6zPzq05W0R~BI^q%7b9%9VK}{<;KVSv zG`G9nJdroPO^T4*LA<@R4|mo+aXA2!cyce4&OUUbbB(Us-#5WI&PVhM!&iN5ocMPm zP4t-BRda`iE6?tfu6Mb7#sCl=Q@|^`1A#b6dO$${a*HVUMW`}>{N4hrtzW!yhNW=l z=Ej_z?H!4L?d@&(qoeC4@ISQumrdDkHtmoxI)Tc_Q)k4AMe<_xpTAO5*pVf!*ie45 zUw%rp1ha752Rc|=SNA2DZHXYZR7>jO8rx=CC$SzJm6*8kJz|xnVs1wI3XsUMrg@%s zTC9FsZuul=3H1$1?M2p1mD(X^y)PR1OJb2(k%M z{h4NgCnI_5w(`EBRn$u41~PSkZaC^hII3M$7sadiSc!~V3l+sxH!uAbr@m3sn0116 zead#C*2e7`)Koq(E9}w8Hhet%O)q7ekZBEcua|l;-0yhAm0FkG_=hG1`fFlCqnB5n2dLnwK{gUSOqnZ$Nuahh2@3=S&(d*v&UK}c z`{Jm8#Bsk{tOoknSgxv-ec%fh=KWJ}-Pm(;re@-xUwm8N*J>(8$%TUC{&VaK6uvf^ zWSk#7c*-kCm%7N|%)|Ft*(aMYRVznCFV#mj`q);B(_X9nuEBfbIClo(%UgZ;W-kla zQSDX=SRb5PqdLu|zI2W3ta8`Uz)*bZ4?V{!wu)I@2}2QCNF}IHqjIUW+6}El z(2nX%b&Win6VTV_3GvoYLAi?#@5A7Z;vGPD6VSkTl0j=d!dGS*}@5e(_FQOM8T@rI(Gzb!-!=GeU4J^$(WnrW4Xelm$Os%ljm$rNqlQqxlf)r3aA#8pHavnFf(4&5g5bbwjUej$ zH?DoPs%*Q$ff$QTdG8+LE?q7@-Y9iw@ncOXQYYpbV_rwQ)i^uhdPRUa4AQxzlLz}z z07XWyIxp}1S;@Da3*$#NY{XsgBa4gVSm{~O%#W|_K)lI)(T(OgRo{U7RUr0{)yHpN zBMb?C%!;6S9c&neo-B+Wa~E4U**5gjdVd`?4|W~hbv--GPszA(m%c-}ua+_PqFH)K zPk!Z)$jMAo>JE<*`)7&QT?}*Sx0#=JO7ges*0VU7bcWXL zY}~ElWA0<$ueX#OU3VDBdKgn~BW@6OHX`%D?vEce3L%5@phLo8(7~r*R#lKn;k)f` z6j{-w8G+QqMzehU-H6zEPD%E>E8wNPrtN!Y{2o5f?|0odl93<7HOBC7af?xo9*hRQ z1X2XZlK=|wsd2nP=D~ex_#nw>=(G3{27>;uqEO@K$3C3`ZF+m7BaxhvY%)a!WciSf zgkq!dSP8;KYWn0|+F=?BX!neKHCJ-8RVcMo(zt}5;iMF(u}LGHf^)_2hT>^2i?+G+Y#Bpuy> zgz{R6*VQGmNo!R%AgWt#i`v&Uhl$9Vh{mFy$r4s~oMGG-`_4V7iS6rTeC+-@+RfF@{zxu2 z+3gJ@Y>vTJQbDIOGw=e1o5}2S6<(z8blm1kM{=0lSH!b|C+G z^TI1Z=aql$jw~9>Mtp5V9Dv9Dv=blHd?FF2nep&_XgvbcT@P74dIhx5?^z?=6~|M} z2E?Kf0Lnd zS>d-ubGff@)W2JVMC|{eGx#4sUn1j1yNS@hh*-(K7~Hu6f+)wEajM~!Aq(r8KpAGk_oTklQ0cfIyAlvyBut0E%>^UfetOxwfC!OYL;ifWV z0ipo-1f079e37DvFf!{y?4I21H$K&$zXE`_-Ef3Y&5FWry01m>i;;f>_y1pS@Ne>^ z`3o(#kzdM#Yd_!9bOoHCnf_KAiC=Wx*S2?9t>3qacXP4+k6ZWTsX8!DOYJb$k0N4AL+1O)2LNvQIZ!yf*IuDH1DvWHp` zL2uaRIyT&oAyQPJI-vi!awAW^i+9KFIz!UNBZ@{Hn>@s?VK^>bXgcR@bf(S4^+?<+ z57=HhWbSZ??Nn2BJ~8nb-t>IaHNE9KK$h%{U{BVwv!9_VCC2%=* zh$krT=f(UyqN>9B+twS4bG1yiug17a0c4RICqp+_H-T=39~egC6+d>eJ%j};=I+(! zh%9YPlzf!>Aa&vIK$>;n;0792G5qf@Ze!PxVK#H zgnyc~zdb|yscSjxO!q0$;qy34+faI7BV($#T9vS)Va!f_Dbz9cPK z*N;rnrOsUp1fz#V_AFU{B>*5W9}G(gR3`=A!)yCTWGz3xM6C1L0KyZ^;z5=uBZVfK zzD5LC&J1DHWhUOR1v({F?^20M+WGX~-A0}xiV0(YQ*uJ6Z~~t$A7&$8B2O1(!&Jj4 zU{#USu&g)qu>3F_crho097jrQ&v#^BQT);t;tHDzqkuy>A?PrYFx+bZ*mjBvYU)O& z?!SyJ#ijgA>eUy?n*G3a>K-Mu%F>Y%;XX*uppmo6#-~ned6?hO$czZ!YTo^VJdOwq zW|TafmWuy5W7M-tQ6@v>B29*D&XqzJJ!2j{OLYAG0K}0dTPFNl5#$oQGe?@#^AnBs z2cw?ssm*EVVAI?0XTg1Bi=qa2Io?^7Y2PQ0_Saso=s_Rs8=11b>YiM23bN9tiHBx$ zWo%kery$Kh28*yrBTL9Zz7QMDT$%Re5TC;2$V+iLKD-7c-J?Tjv8>c>rx)ktG$;5- zXGK{0vKzYl9zlGI2qFZ_i)DsI#NN6&i*d|=T$`^>bOc~(vBEg%0;nf{Yhc6Y6PeTh zO2}W0^(ibF0z1=&MZ(n3Ndl2uA}kfgN01}o^!#Qfi))<{*$jVJq^UGaHI|XZ6Y1%o zV4Ud)XrN6KUjgI1mX{+uAf8d=kDRdquZ-S#5oh-;DS}iuj~g;Usvg4X^w_{L)6U8% zv=aE_EeJjs;TGh7r``LiVek`zx+){lG%d5E=FW14VI=F5WJEx7@0L!Lq}!H;8LO+a zy$FH4Z>0MrEB4A2P-Q1ZqScCixW3Rg|5SbQ0xH(t*z|FXai5#frc-Xc@POFF90x}; zI??kcrl0Fv?7@a2sHTV-qYgYRc2LK&*SB=P&$)y+=%n-)8{%jGk=qh3(T!utwFc-7 zSNu4PB!!QdDvK4Fc^x1H{OrzZoU??*ppro>&pii%1{?(Q;d|`mwNH}{k1^x<>6X72 zF>6I=hF~WXJZzq>9837nz90?{9;{Jb+{wQEP>C(@g|UQDD+rEAt%pihGSn zI^<(mlh2 zsKXR)yb9Hk^9mm~e$OT)m>V$4ug*57aAe0@Ceh+1PIIeK9*P~1gRst&C@(p(Zi(>U zV5agsG|@EY&C3Xtg1b^dY)OQciohLETjO{`+vI8F<>0j$Izk429s?nP1s;>s@DM-< zAmAM%oe|?{GnLzqCInksply=&?ML}Om{ohrnyXSJ^Yx}m%&BonHXe=%`*&0*-&PG* z1o5ZNE7x%4I&<}(Jz=&8HcP1`0%~gbAKL!t7Qf*v86xxii?7~8qxy#19nlIXvV?@K zI1k20j zuy?3%v8Y-^7`zGuEk5lT-)yUUdDo+BYOBtGAPDn-Hc`qWhc%~e)YSW6tM=afotyPK zx(jKCPttK4Ck5ko<&ArFGYT^?{@T*+tVB9nHXWoHGV-U z{W^N`y+xmzs051GxP!kM=;trvFs9fC;|Ohe@w@@wb?{t)2r{z%k)h(`sUy;%%8EN= zh?lFykGabl$>G#V@%qsLUE#Xx9L+7f@9W>g+u*DGN6~nFLR>^XDL&stiwvI@e&wdE zQ`igt*ipt{6|4~m>F_TPsDv9;9^)(F!HE=)RiB=h%1_dhQ68k@f~g{(R7$ENZ>1;F zJ2i_bl$k}-n(+q;qZ&{%;NMJgeEXz^X@(-ZdV1vzpRePRxaS(>Ep+`wDIbTTVrd?XL=6-FV{@gk(gCZ5xZM9w@niC@Mk{sNuQrL^3Ijf4nHa36sU|a zj;!8%pvNO~YKxZb<_8{7Vfc18HO8N`SnE*VXT{#eh|_$Y<_jKW_Y?<)6*)diV;pmj zS=j?`OHovKYl#{WRm9kS-O)ll3Qyy)4BsR=>ZCo3u)mEPDoo4 z+*iAfmphU-SiG_r->Y6(p1^pU{E;4qiATqxXXK-HQllkxYgf?jR&aKa7sm(TSPG7o z7|dQuTwf1lP{`&%Syj`=x^XTpa;ti83w-%dwW0cV&!1n&2Hvo5Y_EpV1e@AE+i*hP zx({1mF$d^r_ioJ1Roy%ZHGac&=d5F7uW`QE1Ky05wJk} zV)8?eWMdwxYNaG+!lR(Y@BOZiCtaL%r_$MlCJv#j%YLp(An7X$xMIu#=Xba4{Mvao zHu*2)Y^36^JLT8?*#!j)V^inMqn(1ri*@i_GzwXnQ)?~Hbm2cKi*H{6?~N{Vkf&2r zTx3Z-rYl|RfdyQtZ7Gss4^G|>=A%wdPQl;f7ay|}mMKMgtDC-CL)MV0jY{wm_lIZI z;E6RZaFiqofil9x=;dxcXg`N^!=XkMH9JePiB!)lHpg5_cZ-ev5VMrUHV z`pjdB6bGXaPq}xjYJU4JyL$Gn zV*`!Q-3EF)`pa{_ZaP^+FIzPfHEp15bEW+_Nib*1Aj{N9>fx82!FS)~ji&=Mspk%n zN8zpuF0Zdd=*e-EFJIc4#@O%`kO$jro(QCetLZ_gKr0AL+sMeoOm%tc{s{D$hgtr% zvBjv$kd(i4@bBwJiI)fov6vDjlPoXw?ox zUbmY@&gH)YKF8aW6Lm@9pmyr|11_Aq0pDFOhYt@g>{DiE+m|y`@>AuvVWaEfTBSvD z^b!%^i1Ic=c=uybrkJP&RQ-c~>V0j|=R&e`Hs6r;lQj|lbe#lbuKG!Xq(qs2u4dem z;#UmKI0^?B_JdQEDK}ZogN_bd9y@=`-9pf$Sj^4M+7q6_VWhuIAEK8}{%@WO8~C2; zUS*c6TB|vL8}wYB^+(5OUsPvrT?=`-6*3|~y@C7}4>8DO>o?+hW1jnE38c(6f-g5U zdw5#4gIHfX5{plZSQCW6*zkH@1^IbotFR~Bjn@r6YIC`uW?qy{VaG<#e32Yj>km6vAO;!<${%w8_fW7C8UL6;(QgVh>*MmFv48}AXhdH-WKb|n_EQh_DW*gS`G%Ce_S{qE6cIWrL|;H zqZBNqZqH9ugLLt7VT=?-1BIiOff)G+s6}I^4cKLoUj2C=ftogUa;obMol75Ql_# z3hyaH&qu{- zZT}Eq1{!7OZ+ZC!ovOU`(`dA#<{%m+Z;dJM0&cgrMo&WyJod>V|`G9MG{z#=; zLHE_QKd=76c%*nO%y0vR5eF}^%^4N?=F%bUdd(cL@R`w2nC{`O<6 z>QjaS9`ZNDcaXIcAN|!2vU0vq@XxXtDlHG7zWYYQzTYC6tM0z~*)89temR6mH0o9x zUQ+U5kuqzIix4O`BwXDyiQ1#`#1ibm{d_j^w)r4$bQ`t%oN40W6~N_5jo0Kr5=w#U zn5>lh*e*`y6R{EN$rBH)SIMI#S^NolJ*xt)qMr9`AAUx~5M863ASQB$)LF8ZMl+-e znTb>=!cHIH9oH>Hek!x-d^c_E(%pKPGpux-a=qR!;p?IhYZ40A3Ft92KhLLM_0L~^ z2U$E7U-)PtDz}iSP?Qm~fza1kn8VmUKH>(HYxMUHA3YT`u6+6$t;d=6S$`$2*i!Lh z7|{b%%X!^x>@cFVcTJ43=8Jkw%4U#u&6;on3G5@NLm@LdQe}% zLh;S@jV0p8;n_sZ1^v-f@`iiXLwQas=efIEG$j}Zg8iv+e)3I-zOl@YQ++S)j;m{c z1GWT{(BPt5r4hn$4;65YCC)>a)`AymV=y{SzP#_u6Dj$6p_0Q{8^`Fy;PM=kd4I9C zFkxzO)A$t`pQszgljKoZPVgQ~jPw=|ma&6{-Dd93jB>uiyfUbn3O$wF*vglwf!6P9 z(W87a21@Ch#O?^7eEdRmn_SVnG=bjgNue9MX0d1$=3rv#lhGS5JBoTpW2D!`a3#0+ zVDN8J5LU1-+HO>ZNDJf5v+t*m($HUvv}+e@92MH+HhxyVBls8sh&Q=+n%-*|3Jemz z&6#e!=*&A-NZpgZv^7yEfE)jF;LFXscNN^jtPoY66y1-#+XyO5F7tD-F)(Od&+hzx zw7msbTWhy2n&3`xcPF?zv=n!Dr^Vf^K`J!GQ%H-uyHiRF#ob*B#R?QCT6~>J*INI- z_T77*eV%jgeI5uQ`7$#zGw1lm7_WS0n~@>CFCo!6FPB{7pRH%Ah_y?fTlrW>$Vq)WS*#2C>XW7LAT}Qa=n|ZMR6wKnP+DsKfswl_z@gXKy z_l+TTXmqKfC9S^Zf1PRDTXxVZtGeNOKsj*?c|pP7>>7M+1ZwCJLsibrn9o@DOp}Iw^U{R@IK#WlC5aWzgQB8>t=t( zb*kLrLjLD5w9a?$^DUhn_*nZwhHiM*_Dod@jGYK7dRo|1>;}x(WV5P{ub|U3TIQ`& zWCP}A3vnnqzi79wbV&xc4pqjyQ!scvl+d1Dmp=Qvb~(ene>RiD`#y+2G;I2JqXvXd z98hFk{R(goQ6bN{_b6Z||C7N;41NM#UzRDl(ldJ@tLpt%P%Ug)mQ}SCd^Rq6b1D>; z>v8$rnUe#j&a}D(3^%QQz|L)^!8B4jqP$gQ=$Ca9TD5*trWpQrSo0RtTl%xFfQN`+ z0h1tDY{0PpAl?J0r>al^pdX0cm~#I0Nl02JZwfVIxpBYPXz(*%=)qU$SCu>BTVdFO z@>55J+U7q%W)#r$xb_gN`u0Z?X~pHX%3lX@=((HMr3H87i1V9jk_Mdialh2Fc(ZUm z?C(K?$TU=84cjp^rXo|jRxm1I#*44g2A`Fuf;fJoO_NTeh&32^8_KzYuwRJFp($;) znCF`Nj?S8@(aIo_)JpkR@?d0tM_wcHO>D)$k6PUI&bEaj*O7;oLgv)fpk@~jqWZP~ zcWBK}ScECJ{>j9Kz^6`PW#;4dAi)!BuXLZ89E4^jOTXi5Jc4kqw{~+g{!d@1axSHY z_C3f`68SZM-N-pYHId>b;h3FdB|v7}XEb+7pE+d=WKAu;m)~Az#Moz}j+>J{Jm4$< z!F6mopayS3#M$D9zEV52IyzBN$V6tQhIQ5$=(O1%&-)C}>FsxHFT4SiI?XexAG|(X zKem63<%V808Q;636((IVw8Ig*A~yIS$@?9>{n6pX8$c!mP^(9gRELiEpRY|@u_$__ z2m2P`N+=&N#wos@8z??1e`l>_2l%L2vyU5*LA6rUN%#xT8HED?s*6}*MNF(aD=*em0hzmoO^48Pt1`oCbbXiKd})`=-$NW}&gTT1Cl#rVh#Q*VVoKwQAUM2HqSa2*2O9UKJr zc!~$VWxzyK$AF(b{_PNFQQrom@DZ;~IDQN4F*g>PxxD3)_z!*VgEv*U=2Rz|3KVzOu zPfW~sq8wPtR|wdiayKv*6n?gPRsamAmwr~?f=JQ^GeVicsi2yod5scF?uzCPsXE%| zw*Ja+=T!d)&qjaJyCA(cuj~5HK)+-Q9vOd^p|<$UeftMU`~V;l&!C^kOpnBXV`hGx zt7!~z?_0LgTwlbin|W~#94Pn6Jtw+6GI#6h`L?UFWZk#fM^o#g6Msf{Yw$w0L z&AimtPRq?sb5HxF1FAs}kJO6XPQ>9X?D6L&!jXx`BS}kKY0A{aY*CjpZX_AQxG7V4 zT`Ji9kn%moLxotm)72x*mY0&!G8^SSJrl|WkK1upw~=X-+H7?c+GjpaB?T5d$@H9v zvz^N^n%&w}upd`og?pm2L(yWBca@wrRJaoMz1I?v5Bey`r6qK`ixsGbHlHLc@ta^L zX7P>@e7%8)z<5yegk)_(Li-bWE=I;raO^SzZ=Fp%Y(vU+9(`JT&Y6xAQ!RC8@CX=q z2|Sv1iS%hPnL&(#P9PJ?S?fooZEHKJsjKg4udqxR)wi6Lc3O@a%&~-v4!7uHhn5d; zm}8dz7c=$H6HmD(4yU%<`Epn1xJ6+ZNy!S1;G<32L^j>#%`9GF(} zm}bHs(0-(?Z`sbdub{wB*vx?@i*aZefFssh9Vyow)jt^;O#hXx9(FJ^-j4OM%Qc4KDT@1Lv}FiGk_24A16(^BKDrW?^W zYBXy4(zfw~G1q6k+l}=FRQ={7WOIkIdV2m%gOd z)4gJ;eUKdX1ub5Tyx(;^8%M(an?>5%V%^Y*=uKL%gRH5{mv7>72FacDhAILw9r=VjqX?z{s#u5~7L3x6a?~9U1uOR73=;~V;3B+GDmENnqaLi}< z@*ob6{9I@-O|h{A{zJR-d%e z^~-4DMOYJt0U({R4!SA%j?5!8zp7%A31#I=mnhpP9ubV!e7jbpLer(wH!ewGKr0N# z!Tb>>YkD8n{tp6Jo*YMI7S}sYJB=TYoe#jS)Lt596qHNqmMl1!1`eHkG+vjK@3-rl zm4`dtn{pNF>zq`6Qxac2rU;=7tJwT#m}y=C2`49~AbATPi<)*E!xDj8RGNZe@a9Sy zNeRP10~%BY8u08s*W2FQoqjS85uN_~;vyE9t;2Y(`&a%dF0uj2VDnZ+WXI0K9YuB~ z7#f1^9hekh^$tt{Hyo zDdE-v2T;%v+-w&5{TXh3RNiv`mT2?dAE2%oyqU!3jxr7mN>ek3Z_HWF3R1%c9YM5R zM>pXWHu?5k&&WZ^S zejwj;Tr5qe^nb7bQPkj(7uYpe{(-|?zMWr z@1Guy|C5sm4V3pg-)){{y=IOTAj=Go0bphgZ)m*>BFTYXr5f5Ec$YjG=<%2|f_KyV zX_5?4ZB*3dEO*KLpiQwF$`DPH`x5%fsCeb;FWUK4)9F9c9Sjz8ISKg<>lZui!btik z?xSdF=G%r5Uz)POC=DP~D&B=g728WW|8dI5LaP*y!1JwVXlL#CECAzRRsD_s-HoW2wFYv^x*Lq71Oh2q8M?KFVM2EBC#J!MCN z{}`tr8@lJiIBOh1M@0dW$RD7qDbnaaK!fm`ab`H$xB>M4=KYcQ0TNfD~@5nKvGC<2uqLN^=R-LPO;4TDhGo{P?uH=PsVnsx6L0wPFbX%q zfy06>mY3STRQp$e(fup0<`Ko6?+NPWBZMt}hOM~7<`gJ%=NQ^VWXiSEZcFc0S4Sk6 zzh)*~G4V+dMZ)9XnTm6oQ*?up1XH;L9U!&4Gi#*5N^#q-h$d;zo|GreEya-Hx@@tB z5*B&Vlo;c{IJZ(tf8|)nF7J+_-9AuSjncQz;E50M0W%&@4!*h(*$bzSKZJzh}-8cYW|x zRJ@pHzaoZ6!~NJj&Z3e+4qd#5|1^J$;?$swDzNAzW@xuY(Q0!yh;H35_C+3v@@86S z^?SQMav$JD3O=jC28Y?5^w(Y43btUwzp<8qE-yuPfIB#G54G@!13Eo`bsvrc zuWFX6OKIu^BRWvQ*0Ik5UwRwI04FS7y@)A7{O{a zp`%T;2fbp)y%eVaxH(t&p60xWyWM2VF;|(y=Q!Ntwd^6DpX^{&8Wuc}}Dv52R8Hx^9+L+{h!8e%kq@pI^QL1fw=OrgspS zSg2YEHD@Vom0c%d%)dgzN^^3gpnTaPXuR7+h`na<1;t8{ba2=LXp_AXFfx;`4tIWF zW)6s4pAc#xj|5%GFmH^Su;j z`*PF`@S}bvC}Dem=-XiN-m!C`&dCA{&s`;Lr;}9;dYX4*$g)`aipdkqbV4!2VJi83 zXBE7-9p@Rrb9N940lLnjJy>yXstOT@cX#dV8+)sLWjDL)l(84cV_A2N5d5EIrUktV z4K6Jw2@?;B<~(H|8hCR|A%qr5#Ev`Y?-iihKxBu~HlU^`T}9u$x=dBoxyzLWh&oB{ zNV{*c9Gy%EqOz49;mv@+dzn**`(%W;)jbRtdi~q(ll_P3+n=11iOm(dJ}>OQaeSU!A6J=Sc zRw$4m&9_7{C%Q2vs>5`KDyiaK!8^)L(2261H9h_=TWZ=@vQ@%{!1k(|)IL9(8ijA1 z$_9|%>~c6b*}_CX7;j70_cEapFc>J^msnqQBaCCkp#dZVb9le6^nPEC%#}C4CV4?9 zP9YJ;TZwVgLK6@F8@g)UZIjn_Ub)B~)+1}uH7!JSdg82f(1=fJ|A}-l@FR-+Xk9nt z)!^ddbK}r=>sbC>g6UP_Blj4jFjwkySIR!cOE9F1AtbzL$d|mGP3${pM8M0$68?RG zNs}Yfp@H^(CkpEQ;tnXN*9b&hv)OvoY-%@}JURvZkq@NSBmv#Q0{TO*Gwv ze4c`us{T6|^cDdZI_7=rAOZf<#TY@a0j@=O1%ML)$EOA?WJe(K+-uX=5!ZoWWhmhy z(4OwPzxE3o>2?T?pZzQ@26HT?xi9y+`@|fjsL5qD?ktbgOIclo{) zFT2gAc#kJ>xDs+yx^13?zv2nBdpVE{k8u* zP36FS_4ti~^U=@`FF1oNdk_Bdu9tB|MNmql`02Gur6DhiyS*U~5jnMk6TK&%03U=0 z22$m41ca6;|KlC-v!7Q}O>}zz1vC&4+{Oa`P9C5iZf-zt*KfXq8(P=a&!q+RrtwjU z24a9z>S|yH*;8_>=`80qBWG@h{+rS5>DRT(KS1AwE4X=idJO#PL*8NWfzAs~^Qg~+ z?3QK}vx9Xf2zvDtrH4T#bh}IdT<^qTbo&@8e>2R&hsC*(>U-2Pr2ZrU={q&h{O0&< zjTlWO?1L5(Aeeum$=%f(E0{u5!&p+z)dHWs?sEEA<7(|Sds2*-C7K#tL4`?NE77PQ zF?*?F&8cH_dMmbE|725n-FpC2Y6EAQgUmiAExFpOC72TAMiO$(v+kTQPUd?;Dh-%_ z<2Xd9lM+z{ZsF1$Y7&Ts4*A5Pl3MHMR^bXfWQ3xn;=VYSglsUJ3QO~*}_S6=-;{O=5b;EkYn1*6qKX5$RmN~ z3z@+Mi_+W)Y>9#j)fpajc;ipqI@yi$%>Iu$%(Fhw%d? zifs(A1LS!CX9JDB8}N(y$Ag8nkTzk>GgjBX|ga7SHVzRSBB6R6oyQ&ytU zApa#4PWE{w?lc_bo*0f83kGuouGUzjxQlxacYbrdb;STL0w+{pB={hi09=Z2mH=ZT zG(y4ga5;V~1SAB^i4Y3{M~VOYg1#4={*A=^mj8f9*tg=A?-h9zdFf*^Zv%GZF#a^A z0dBS6?E}Q*m~JQMK+e2EeD&n>O{h}u5mwm!vE>H}2VUq(I2PoIP%&-DoI#fF!_dm$ z8j6n6bASH9BJ-soV*%vNh^4ren{HBM3D|f;O`I8e;vnXt*9)abWbnJNQg((2ZrtIq z#E7uy=nikWe&*F{9czwpQ~#O90HT`b8k`tvmvU=Sc=Nro;iXN*C5$f`QoqI-8urWF zqT(83trtU!D`jT~?~d;LroL0sGz_OMFPDUE{LtvaL5@ieiPD-5<$pTD!_-V#9reD6 zIwpi@Y-SK&l-7lH|KwAU)$)9>F&hZd%PpB0}2I%&HFM=!< z=&$5_3=e~;0r{^BjGxlm(hRM+C3?W2S+{^facb1kXS9j9c4a|yp+HA8%`?J3nM!}d zA^l`>qV{|4s%y7&LwEN^S0AYwG~F7hh~8^dwm=R65IkKIU(=GyyW1kwxkFc1?Z4GI z7I_LYe5!9W^L;bo7pM4?E1M9b7n!xRqMk>T`;;AXRk@t%2t;r-ZOUPeTe8*A*xZy} zA1kEII;|~Iv)D1>Ez4Qh)PW1nO`4hK!k0gBfaNJj?s*FHRIU4hd3c!7 zxVL&b5#)!O*|>Xd&mfK!O7n%ut4VA~CQY2K;$Q5a_?-1N7*6^*{#b=!0wVS#GXQ7IYN15f@GvXs&JMZYn7UCckA`(RlfEWl5RNOKjsP{se}&rqY~PSX57B5LjMZ z6ez>wEA8IsS&Q>Z2##xb0r%pkX4ZI$CH)~PW zsEb$@0M}yq{LRd!MR+{|Ly`n95EI5=68N=+5FSe7Mp&-wuNN}!fg+aSbb{Ju{xj)nuhGJIyA6;ttWHzOr7NUglc}CyWOzcXvfSWzU27DZ4&? zrZ5+@ZPfKdr(!rSKjk>6|#{-T+FTHOc?P2TK}|-pqmp390 zLx%s6WC_e^a~;kHil3Se<`DISO3+|i!bYY{m&@FA{Uu`7*~DaHAAYm&hFm=Bb*-o| z;~DNz{()+TmzxV0Pyq~BJW8^6kVagITU+L~=(IofZ0SGR8M*_FDpoaDl^yU_fhu1Eo3V;okQ#nkR1o2=g-XmzTrEJ(nt;-k*H9Br9E=v2+!FX_5r zdFqshOD~%vqEg}>gEBrnx3}9%6>7$R`9(6vlk29JQ(KWLYSjFev*FuA;#_v}PaUs( z#?uxTD%DDn+!u&Ar52H@r83%7m|98^b-g}}L#2j>bZz9TO~qGZ`(wC=_>P9NA}#@e zg&Kc{G@mKTs&BDa(3Od=`;8F^?wvWdO42>f8t7K{r-4P;kH1a>roGgtu7%TpvD>(5 za>hoBIXh;5+UZxHhc|3nE^p#Ih`~xiI5UN7agN>h@e9NR<9`Uu1mRp&S3syIxSGt9 zR!{;jQ^Ys3y!u>qTu_MGXDN)LLM7@su&7+ZYVtwg6)Jzr+q2P!@jWG&_+DyTA=*rU zQm)cmv7;&F(h77F!nX<8>S!zJA}%9 zh5mNyRs3^QJ0S5X|J})h{^uv}4TH;&?)St5*psh+TK@jy?d~z?fA7eI$E*7$8(?<4 z`$?(d9z_Pb{6F9B_ZIJi38?O0+sXSqXcaznsswfX*ZWMn#+!owxx*^|dO_(W#XU|K z&i$`9{Ql?5=++Hh|3*8x4*%Yjzn%dm?P+TT3W{uO$+i0~3-w=_qpZo-~VKIb1$D^fg+hfFD~M5*R%@F;!pofoU800Oh;QCx~^73Y%g??;MwpQYSr% z0I|$p(4Y2JAZuj}CsX&5zoA-A!xEeXB#=(UW;D?GuS7o-2r-iT7Wm})*JT>m(o^3y zDc5Koed@gg@nDc&w`{jb(z7?FNi1O)_hw|;xUD-{nNNv|jJgj{mqB9682W7XO=rox z=D!A6f8b~`eitLiKz+KCrDL-2qAz2NYhs|dd71IW_8eX$yh)A|Xvv4)SB&0aYr0b^ zzo0MFT6xG9q zZ--+2kO)pQF#_YZd+tU-r8$|tdL~}VXSw6A+q!UDtC+;0ld53Qv-u?)EG?N1M4sV~ zHO)2lX3urDcs8E+`Prm<>L(h0m2X?xV((2!Ll&x4qQ&Ns+pM_)9F+;p7cJ)IO`*wv zrv{q=M)-mEJaUz$ONbHamw_W*N_&IMWtG?RBsOI9kxHL~WvjZBq-kFl_cQf0&iTRz z8J3NBZ^z;NS5HeuaZ*nDQ3e~8=gM%lQT!@vsh-a=n>-u#WqNt4Tu5KhfhF_op;haz zY9-UHv)6Imu1O)B#unw0ZoHv$Ut?hs5Bl z`j)FmYBS^&|0}g;|3_qHh=J4jlK_->%6}nwP4~H52@y*39^JhLmuC0hvjVmuI1T~$ z_1ZE2mnG0h;QhKnAOPXYAEm+Nfe+saKv|kb7npz&TyIy>?kZKnuFCiH_tCTpE}M?q-h74#xMW;27b+-09d;1vo<> z>M=pZuvpMFC8+lE(Lt8pEl0&Kt%>w3#GU{+9~($*GwoJ?s}A8+=GOn44deWC!-(c| zFf#&{0Vczrzyl_6^J_}E;Ge-`NGAwz2ACecZ%#%gzqqHC8BF;o*b{g>9dJ)#i+dS! zO^INp1M5EEI34^e6y6`ULVEc4q9heqNk_+=?(6Tu?LU0Gi5u{U(E@mxc;NjEkBEN? z4ueB$AHeq|V!>|_3`k%ixP+Y`6w|Hu>b@BrCh%3(@jlERs^cX*B)d7*y57*ed;s_x z+$(?;)L`aD)80xo$4kct3LEl3cM=Y)X=XbzLz?k0Qb2ZzcrTDP2uZPp^+SfF8hdsh z+QA0aR+s(@;iqxw!V<|WA>Uyl3*6;!2zFrjfe3PH9kjsYOAXisiq4#MW_JT|rm~N% zg-9BEyC>?0m&#flD+IoSrT3lh$S1!m96`D?V@DrBXXlR-a7Lfp@01Kn<)T$#=liVs z;ee7fVKs&pD-(*9<2{&IuZ;H1%)@6=Y{$|iNlC}_8zgW#*{;dS9)%O59eYQAQ+cgR zMqPtJ4qM2YU3%CU+L~k}8CBaTu}?uF*E0uQ;h-k${ahKQ$tk{kYJDbn&=|B@?kG26tx&}VSv3D{eH>JRTpi>nos$(f)3})OVlWxXy=z z-rOa6T`3+e#r3dO8+h{K7@aDj)9|ZP^E-i83*oCVzbaeJptWjy1ekRE)S}id31eGu z#UsK_zqcyrDf2s{@|Uyjq@`PLe)!B5ZlWc&vZQ;ZOJT^aGNzpeLbqdpwdE?(E_3;k zv9M`hP1NyQDQQj^IbQBod@5;wOFt~J-_uCYL~(!(yxD=oNIg>Ry6MvgmT=d~kgU4~_ir(Em{0cEjv<0QEOZm?EJ_-Eh(<2Wb zk;ly1cxOJTf3sWILN(1Q#5D7fdV;zkcUC{7#s0EHMJDER0cwa^Y&$=4q>?5?T5AYR zYum8ifq_T=50HNeFZV2Y6>pie%=2pVYnkNsa`)J00|v8K=AclC|=V<|&7lW;ZKjcQmP`EJuafC!-6= zr68nRVRe=WCzd#3wzv#GL^2ZFh{RR2K8t_(RS&2Br3oNFb0qv4T*rHW{V_JSBl^%p zbwV(lqE=I4ddHm18sk!_ASfu7MMZ(9s35#@Ph?@vP9lhnQ~LGykZ*O+!oH`jgu`>x z;WD3N&ADKTKN?q_17C_x!fSimgKMu|b3B*cnw@!q#FjUF<}Ws~oC~#=6eoo6tGx@Z z(*e=rQ!BpK)x?nu%@=goz_mkww`Wvp5cBXND7(LJQeS!Q^me$$KG<}|c#L+JrxF@4m`bZAaLP0)pAcx%VO8K*{#p!-xgcp*Av&rjGv=wJegxk)(ojqNu0E8CnHV4onVYnU z5oLB?XHbInG!8-vC;Oz!7%%SzlC%iv;F50xXdCvV!YnlnKKn#KpPYsjNnXEx0%av) z&e73Pv6~Bn#QTV}l#secCmaiYsj>kOpa;%ezI{oo{ps7XKh8^pS|2(+EmbinX^;qU5_n;mL0;`|hIAGCi)!cuLO4K8`B{h^N7qk8dxP`i3Ub53{5v zO40hIj`W;NPV8xmoy({xk1EQfTfa*+Dz76oWI=4|ImGphcfC9J%*eRjSVKP%As>|_ zO_LB|6R)Y%$JMuLN*ET}#yJhh*qr4MZzpPjHoWw_5WPC&I_A(S1kmE%)tS;aLjUz= z0cFArMT`OKP{6fau$tVwz%1b3BoiF`XUYH4$RQFdz!ZpEZ*UHL(FJG=D3cvCZ+`WfWS3ZX1 zp!~R^HhFh(yRYO$bzUjVF-d4%R??{>XGuTe^9F33$qssC2g#OK<3f_0)2a^gD3JZl zKryKeT+Ujc7U?EWCtB9y_u;xq(&99bfwY<(sGxWrs0Ih!waMyBj>-B-q4#RJO8UB( z@Y5Y#j7~x|+GjecLk=p~h=l0yK3$O#sWa(a!WL%1?UCq%gnm{`?&G-Ur#EGl6E=1p z)oLA5h+UUtQLHB~72U>rN;l#H&KECd4eS_1jtDxzt#mp@4%wuGmzw$n9eeu1E)gyT z&{4^C`q0dlA5Kk80t=nYHS*_C=|9lZuZ`$R_W~$koMMX)c1!sLZ(Rxn#<+Y}XlB5uv#(=Y*a=tnZA8?h=E-qeq|f%Exv zTn@)PwkdD1%#HE`n^XY37D9TQh89l{pk(q=v`merB0D~0}jvNxK_*bbKfOIwgttIxz4A zGn1RRWALTog-14*ka;y)b_~w2-)UP<+4CuUvMoja{4-*bxNtd9M|IPzLPYExXSSvI z)ikD?|Hkw@FLT0{E83{klz=ihC1cM7Nv z(H#{xFOv2|J6-6w(lIq&QJeAw=ckNn38SHJoFS$YiKiE)mOXE6=Bl_NNvV8Vk&`6! zLWfgyli3o`w0u%oQ24P_+WWU7lrLa&NTOuY*G7VM0ixnz?wc>moG3hVl$bNoG{uYO zsq<8%VlLM!LEA;r5LwH&YGvw5Ki8lPMk$Vf)x(;4dGDd{M5E%E^6 zv9`&pi_{b7a)|D=-;Vv$!^Q1wML3}CLg+FD@n;I@!8VMs~}fFpP{$`rAXan3tlNVaMn3Y~+IKx`$K;!rL1}&ZyPp@T zLY3>pdN2ZJ(hmFN_9f%^Z_+_U7EUmCCb`~0_?CH=>$kK#P1+uB>e?>B)>(Q7x@0A{ za_q7|XuoccxYXwapIPM7A__I*+J(69V^}DODlZ(O-;OM8N8GU%dCu~EBYRLo!{6hiUL>+e*~}Uwo7( zpD+i+&+yqDla%9blnNh`FD(gf{CxfBHxRXu{MJI2?ws(Os*ipn&ZxFx!VvX?-p%&Y z9*$R;Q{|Gdf9HO>asR*pwwOc51eMn0uC&33Ra!9hf9JWm4)+{MuL~Lo1OqXk?>7Y~ z!LN89fGfWNV2HBBB=TqT?L^(}aE?2x29ZaJ3_;|KarvpgmQsFP_I*)%%Hc>Uf_`H-ydl?LNdEMZJpsBo{;% z>pP}8t3p)_thAo};tFl(sWs`eOq$i)*bd^7B{K4TFYg|y2*Q7_RC0O;ZOGssdLHa`smnxS zJ>dDUPk7Q6FOy9`$~o>+IK)0Ki1~EbFM;vW89WjwM$*6If1*WA_5?}pJ&u-cSWso- zjB?@gAVG92Pq}T{=`@8TRPpvTpRcJQ>3DhM`Swr1M?GFTs@F^bZ1i~3QXiJ^WV>gP z%)VFDeZgs3*XP>Lfwq2#6j?qIGepjm9dRx=>om6-p4KeW#A2eZ{0GUs?{43~y6U;>7ayP!h%ax>9S@5VzYyyj zCw|8q7JLZXHG+O<7N>Q=n7sXQa`6W!RxhOjw!o}EE!EI^&5pe#SDJm2vRuTC8Zc{M3y^;g*kmUvn9aSE5)!06GgA}h4LCN zQ)UrUxNJ{Frx(P@n=HELIEF{|g#><;kFmzej~R^asRmS7cf~nL>Ve@?u~jyYiINL{ z7Hr7JkoPu=gYhw|XR-w{qDj9jwX;=FERat@27QO9&qGX?kwwg{*U@(XmX9hkOMo|| z`MGz(Agp*7Bv!a&(eJsrln%etlPBaTdmTfgpx_CG-lKv4Of1H1mEd$`3~)S&n|r$N zJQ$kp`42O9Fn_O}TD*@EKt2V5ehJxS7Dl9s4}*SN*#T~I`O=^2i^Q^#fi;Pxf#oIy z<W%3tGlKjRRIc?9_|N~gGKQKf}d7<)bC|Hq;dDS zGn6KkiJGi%D&vFFW?bfoAfZbE9WhQ@2hrjjMZUR`CxyoIkBSqKIx~J`*ZdmRyfcg8 zioK+4YVhi#J{=a3EAVWtggP$PDZW&gd5`*KZ9!CgcXi`Vzj{#vx6Z6!pp%?jQ77qh zhSd|QzzsZ=V&slK|^| zs3YhRrN+rb7wR$8?PLabbd+s9s_Acw{WfH>pAj_Te`J7+BC>Wy3k_Kt#pZM3PSuQVc?a! zl4j<7sYW@}@_=pV(yKRgT5)Pc!Arn_tyE+()jWkm^*W=wvcS!sf*t_{!@`Y_XVJ1} zn2qZPQ?{uvdS_Z<+4O7c(lvziB;!A*IUr9~3CmPfb%(glj6EKRoyt5j{{Z(vRn%0e z9PA*Cd6K#L0fpeMS=js_4KLa8?nzjR0&SpcVJ!9%nxx0x!>DUbOow}Xhv@7U7FID-j?Gim)J~^MCAXtq`5lljT>yuiMKXT2aT}GJ) zPvFBO-}>MZLQbZWs84cSZ6HbgtCX@WjWvf#5hNd5oL9n@HB(cj=?wVr_o@S$<%j-l z!^-9R31#^NFR5Q*3F@lyQ#llJ2Ig{LK^ZnmBXpK|7^I9U%r3ZtXccKhqqT-M8X)Y? zdU&ON#$_iJwb?Fq;%@%%eBFM6$)&v0qv1*LJh6F)xu&d|3s_f;cmCO=kwwlxGwdNRa*3v!Nta z`L7YfiFQaUDD*@<=jZ3;kbbsEw@=QkXoBkeUyhDXE{r7H8p2}t?RD!P+8--!g6B_= zKGu9kKgplnc!8tc`|91zgs3^bYMGPh`;vY?4u{t&cA4ARbQMO%^9K=-!A4KrcZyNWGYj88nKSo&<)e65p&=s17)^#r6)lZkKvqY~xfA zP_kjrHRWA9wuY{wy@daDu>U@sbpE?(znvLDi%5Zh)XAK|KGCAt(q*2$-AR31g>!Pi@2r zXnlh?sQmy|+t|H61%&UT2#lr3gImXQKR`jQVgoqNyZ77R1vU>qj3XDfTl(MZ0SZ$Q zTgCnMUNz0U{ijYz6)R=^|*JyL{UtIEizbuIvV-Zs(G%Fat)H@C<|M~( zd(E#rSuzTsA4M6D%ED$hc%N>o@C-#j^P`t)==MxJ(^^@B@5E)3DMfz81<+$GXeEFr zGWbEj`PCj_ah;C>Mx!P@GlvvVDp5;oAyqr^@qqN86n3(Gw!ph zuXS%uTJ-7L@)2srD+C*!oDIh$;al|#x{35s3E7lorFK7VW(}O0G}7xi3Jj<#OA|9_ zi9D^a(%xooOP8dIy?&6NwHJOuHRS;K`;F79xPUBgj3%3=XRDkgCX0J}Flh$y_7;c7xOd zf?01@gALkvoOq?CHJUN(zXxxp&rn+$&Y1Zw#?g80nM!aG+*ZrIX&q8D_h+N4kcV?H zxSzQM%5%6K$Q;LQPvpXl9i!#ZKonv&#sS*ZnFhV|NzNfdLC_7s#Acs()moiGo>Uc` z7cE}t;TYn@2kz>8HWm4g_Krz4IbS?~O^4da`!I2$Q7$@0h4ny8tdE9+qy9(lKq`Mh zvkCoi^4+?fFFQy6BCYr6JtY&OE{11^~bl;dz$tdus5lJ zY$)ps^+{_M%g><0*wzkUC1D|**Uac=packcmGpftoSD=j| z*}9{eT>m(ORPR<#xE~ksaOdL4GM>2v=gEecj>TJxb)S^lnQjYP`&XI?q9!s5zgTNe zx6EP{)uIOJ8L2s#cAY~8gU%%925Vpw^yDY~(!DcP#;A?ZN!uk)lK`5PKR~z6Uvk|; z4)2n^fvJLrsqh{D6$vW@PQOOuT|a{+AQQ zbk?T@V$NJtZKUFMq?Q7f{Nxx#feF$PaikCGGbEi)Dad`1#me~+s;qMgEg!N3IHZ+J zO>;ez*R4KoK!L8yi$vRcL!aYZoUAW34UkK@lRTw`Kui9cJ<}7f7a!^*_&y$vlXx(T zq_8l>Z}*7z$eoi646r74^7a3KxSOOJn9v=HZ3}Czns?J~;s}13#c?_d$ryPme5z-z zoFh+c$wz!v`AT{6NoHV`g}_lEG4fR6*OUL%-kZl$)wX}bYoW|Ugp9GvEK{biMdr-& zMr6p8d5X#+Au{jS$UKil2&qtJnTKSEGEXUErron>xVrB5x}V?gcR%m*{`K~0Z+oqM zPU~E2uXUWq@jbrZ!gzjD$$Tfs#*@C9sSY)6bhhH|WlaMgT$YUzL=x&m%J9>L#ax5u zY?OQijK?%=w_qu6e@>%Q6ydl7k%Iw+T~_>W7$R!!lYpJZ{Sk$oj4=pG!j>l`4#BlA z5E}wdtXFwERfi&Y_2*0ZvMK#H7#HczQ%pu%-Ra*iJZSU^?oxVoO(mxGytB&mz2cry z_H@?geEAib75ru|29t;XIp$?Z|DS;d{$F#ME^=KwjDbgeg1x6QOnC=ckH004`=0?D< zo1D~N5lawC!jP#LQ|+-~wmwo_ArUFP^>(4qMy5~Zt+%;b$UaBUEL)>~fN3J_dL+T* z(8gOQmZbMz*dDENP#dWB@Hu+w#(ui8bNL~bx1M2rK~+Y`GlhG(*VHtt(PD&#t$^ne zRxijaWW`vyt$uFg8C1DNoVRnimOr7E?>N2~(MnZVzCszN z_qB=>3K#YEjLwRLDM)s{af|k$UDz*@Ft)H<|1^!8@=|Q2$uLkSf;A>l>EWFopKhiK zF%zl>qN1^vN6&;>Naw{$rxeCe`V^Z)8>gWvc^-HYJzXWPAMu5vzUEto3y0u)i!oMH zC6!*C#%jL_wV8?>7N1HlIu-x!9nYDtQxVEzEsQV8bBw=qB|Cc>@v-xmKf6)Lbjf*5 z$n@38z1+tsVp7*zlXEM=IBd&C7DR>(>2h7ys~PWvR4OB87iX@n-VB!37HeSGOR9lG zR~~&4b>ql5ul2r4DALRZwOyl+#nM?s4)feEZWqa46l&eie_pE^3V>T4T=?V6Q<^^Q zo}4-6UY8RVR@M7@UlbtXj0L3??r^8-CCWBAbg#I?mJ3VX9ni;cIv4v!}SN~RbUu4CUus@x9Hqi(IA zKhBM&lW-5y`Y@+{Dn&`TMv6yj^O&}UEyGk)iQeG#y~`W{D()Y0c!Hj~r{!o4K1Ol) zhd$M~t*2i^ZsU~QpLh1+%kaI{A?q;H1|zW%2{?X-iCAHy{M@?ez$e1m-93{~wy%Z? z!hi4miV(XX20ixGK|NvfVb8kUo2e{;=SG!$hg8Fp>q1APGU(!M6YgCYUqEldrR2k& zUPNZ;=?9AAB1>&U46_44s&05bWY;=V* z_PDRkvS*QgMMMsoyut}bs7Y0%==xVNeMB7FXM-DAgxtf^QI+cN#9ZM>K_Ci;tTz)|iL+Pi=heg1aQq5RcNqQ4NRN7_TGPKrl} zBG~7lcnBT;Wu;4rf$B{Pgn77zV*{@T(xdBT*(4u5V<8W}wi_kapH$}&N*zv+BWF%S zJDr+%Kx){|^U9d*)VdrFz6F?n!CF6wr2#`h67HH>(Re+CW3;@>;p+JNik9jYF|PM> zu8d3E%S|OH$2ZWKXHzvLE%#Bj;rY{1JZ0k(Y^D3QbgvhQoHCiuoSnv9>b~$u*g|e5 zV6ZHvt?7ocBk!0p)m4*g^n9O(@yzFtDc17$K0H2-4I^AY$;n%sE#mBS8(OD&<_);0 zx+f{|HuZe4dYgl_{tnpG6kITz=rSVEEavCGBQfwybI0owq*Y`6LC+sSDOP{say)y3 zSX}vxKfmJDfl*zb?6*pI#r!ExKRgWKt?@mzIDx9mVnJ*Bi?~>sO!_jV<=C*sj4s3z z<_)(v1tLgly{~_^|3IE2D(oa(Ny7tu)aqnyB5ob0x*qjtZ&3T=oI_BsV1RGzn~PC7 zG&tFWh-a~lZcw?(WVGVA$>xQU)61bcd+9`0b~BIh5o?Xx!pl7s^aFnK=j27%hN9Y2 z8aY`bM$z%pOsNACZ^Sn8S>k3%*?Ab;@BWfgPzImX5Dsr}sR-09CY*k>B5em?M zt8L?6)3#ZhwR)v@fnrj*bmjU8zT_aC7kz?`+n4uJ>kUO6$k?FMO6{pNg(T0eOo3z) z{u1vl$9id(3m7auIFENDkf2s0bGER}?nFc@e#Qz)Wc`7$QXisyJv=OOcCw8mQAS$F zxH((7{+4*xB{&rDHny8PJl!W~j!Na8M~qEu(DorAwe; zEuN)$L+hv9>aV1mjW~3YB`;fb(7Syz-rR|Xef@nRk@63L9Iwygf#_x=Q`|$^m)j`_ z=9hRlX3;M7ca?&_Y-ikbfiCUloU-N-;Yp-D#JqT1I0_Mf@<7ee3 z!WpOVB`0;}xuX=A9BAa)x}Q*&d~Bq&|LVq{UbA1fyLpcxARw&#T7GxlTkF8=_o>Oy0etEbk9Su$3@52$xdwE(Lfe`i^a!NG@^EPtAQ$O@YM_#m5CTaTK z_G3jXWr}Ja`O)mNd{xMl;K9WLP;;aLL+i>mk&ubv{@K$}*~~|$MB|(CCbJT>8i*Bk zByBXw^%5BwrrXCof&AxAMsiKsp#VED0jYG*xwUfAHdIj}q475nNiSD+;P{@1FQaF84!X9@W-X9^m-x+(7 zr->xOg5lhRtK{%HH}|hlKp!0w`ry?#I`35)&eJr^1PrOA`UMzW@A->K2mSdKBk3X3 zvv2x(bZQz3&_-+5okh1jr$DRMk&}W)lwL3zRL1wf4(uG@(?s+VFfyJx-3?IoSXBu-DT-9VS*fJ)4J3A>CBc2@<13M z)Geo^p-zr62|w(-2M7JL6VF3ZwSUDCk^O}uf-@m$4l}^$A!-Ei$tw>egT>l*5)E8& zhrRRX)5+q5i4~r|)HN=MWoGM;kD-W4cvOS1j7+;<`22dD!!4h)<%+k@t{bToMs0ZD z-Cm=-Xp@>EwMgg5eX%yw>P49sSy_-kXC=nsShErvK2tIzZh)$aJ$UlCIC(7eZR?lL z@_wTC_$-#s$Wf5o*^o<7d*V*#_EdfH*AOur9EI5d(LPRzV)F#WFOeFLv|>J0a`Xqp z-G4@R;5r&vr_!V5L)_$kp}?WTWr>*QktO(m$$(+9Y+lh>-EHLwAFt>^lFmsn;OUp) zuA5SDfH=sOHSAl%h1UsjrG1T}9S)TU6}aDt#yLP)|rv^-rSx`ESq$#Es#CnV7KM<{NC0( zK@9CHhQGx3jf5^_YY1fxNVV zVEY=i9*^?t$G|SxK)VIH;UX11)gQk@t$4umTt-45&pmGoI}%3>O9ITH3X@9BmOC^d zKL zyWx3Qj3XU?#Tn*UeicM-{Idx2kHSCOfeZX7s#W>Y0J}@o&H?Tnl~fq&KB~tm81}Ol zO}(<;O&paCpieb;vK=IX!8Zi2SpM07)L~OW^pQtjhXFqNEtVTBeL8lX?M2>_n*WH2 zKgtg7`LEN0RgSeW1hy9O$ladG@(bxJOikfjU^_FFu}Cf_L)oizHat?RVe3ZktRi+| zn$y2R+b8BbP_;uO+4>zA-46nIsZy={qIQVz%9vL%_l-cNtMlK1==5Wm=(kY^b*)-Q z^*BJ=>~*&9fb$yF&*}h*Q?m7d`S06DEgm-vfitFHh_pO=BJ&;;o%J>f#-;w=jz@uv z7;_^K4?}?hPs;u^2xtW>8zqQTJQ~wo!>GeX6jNvy=udtgW}f?+jvqWM+5I_Hs#8zA zNqju{?)Y1$6rIK)m6|9MQoahsb)yZ>@1Ry^o^EW4xALs znS0+#>D6k|raT&qW46~o8eHV3ajIPJgq@TEw({`x3DC{LwLdzgQ7_|h4n)53k>ROm~Y zjeDg;@S0nniLm8ax8Alip_oD6ja|*-)_g-F^!RpS_zZfREeUUD-?=bzm?p3xF`EUU zmD=qjH*m!xydR4bFU2ek`3u_L6pOe&IZe_x4xKRFuZS>UW8s&aDr0<=tSyJlsr$e@ z?F;s5^5!dKY(|*@0N@t$qF88BE$y(c)xUVT?cU#t|b26L-KIDzCMv7K>jv^KV z5+cPcgeH=l(wIgsc0dw%NuMsPwI#~zm_@6*NZ6!SXXVp9wo>HS8+C#>!bjnC(2OfOq1Rfpql z8LBl1Sh^ex^{Fo>d(tc1dWZC8RrMB*$;=drEzAN)zRJ*5*%x+HfH5QKMWSgwesL&& zo)Ok(pXwQW2eU)oy2LcqBusKWhLj73?l6BTG3C+^(Tu!&Q!5yHXT>@BMQI`RA&9yq z&YQs7RNmNVg|C*kng8r?Vjg3xV=vdLRd}Bh6{vqlEUfhYs++Q=Qa4P-@`xdxYb$1~ zBy{{@V)!N3dU~IR*K=Q%M*PJ)Ll2tv^M}*M%-Wv^p*8qsN*v`|BfO$2AX&XvmZ@Go z=2MK%Z}sDi_+M7w74< zHgb7u?eo+7=}6XuQSZ;)7ehMV#XtdCG_>e0!ddl@;3fbmPz9)25T%YS#n> z!kI#-8G7>`w%E2Z#q})3jzTXVa$fK85$I%Zet}QOH1>_2Gi5$&agkN({{<+>y0(@jNopx0ubKlC|J%MP8L@7q-+j!50b>Dt> zo>?@}wk_7?m{tSt=2Rp(`m0C&E&x+prpvBBMIvU6l3F`VnFH>t1d(x%x z)5~HzGN$aaOY<^$iq!rFq7?5BVo;<(va3L(H$^x5V<--AyLfW%!H%v0MZQ-ywv||JE8y2div*%p#M7us&POGU|3$xGX!}1aq84xlu`?jr7 zfPEN}k@Ndg?ir4pdMxbbo{$YEUp;@Y!AYXR>4JPwx80M4yVn6{qZ7e&NB{F3@idw_ zhEs?W_L4`fa=?919d_c+;}nJUC2#G0j@+3?vgu)L9YA$v9HpMm6u z%^@Gy>XsqYZyK436UUI<08KH~H^9@($}q|rj|9}xo;)g{@S`}0I7v_*6K(H|$+-bu z!AQX+SstBje@ac{vsw6!`2%dPYXuy@G)%98fU{g8??~s}6);>kKn{koo9TCPaU>|T z`SQ3_*0RfaqN3l@-hID>{*Z5uDY^mj2o&0RD(8l>#@l@m{-~E6U3V#!8~Jl)_>bl( zo!HDl<8!5;LjbEIk>XG~M%n>n!KgXF^MCk8bTJGiE6z}`dm4plRRaT6b2K&!uwSz0 zgn$0}+W%lTK!nlR+=*^n6A`MULhtHMynpu{Sf6qK4){IV=Y~G+Rrq#}#grKs(bTOo(h1qNxse8QKz~`Wum=nj^BVOe`od@!cBIs&If6y2^F*MWm%|p#gQV?CL!i9F>B*3hY zgXWMn(?dAr{Ya)OdLx(hrG(fA{n67xRhi*Qj>hF&7D=r2LMw|6Zs4@l7fzBwSg;C* zV3G8!eIcswN~Y4d^zBntV+0KD;c0Jh5;_2|KA=kSmVs}i$a3)=ATd3|gM5 zX~o~nRHo2gqb0d`yWZf855pW@&v8d?Zq7G2lDj>} zaH+DcTe{YLp3&&s*v$5@vWUzv^u#j{OEtOh5Fxl96iE7pEls_`Y;p{vuWta{EhcyF z^XJw=o%VfwP1^mk93_E8`V$5w1&AwI@szoNA^&UMbg&v7K3AuK0$MXG>w2LfvkxUT z7zcAsnU^=04aB-pXHGRue>kIeo#pYy#hZ&{f<7BffK^}6^{yWEgo{ z&lqmS-tMnB)x3H&D-6hyHyyYFSv|opIJC_m^jlY62Sl|b`6ZRcNxR-JxWVt19uQf> zhKvKWC~Cr6DZ+5?4o~_C-#g)=K#GE+wmoOUeXNSA=&4eNSM63hd}9dHKv+?>!1$_VrFDm@iR=)M~0tzsi;Y zqhYNPaV!2n!^Z06b7R8qBk>)laDDUNN4|%hytsT1anymfqU^l)SpxS(ppGjm=TkoH zZ?vc+2+r@vMHYgR#9S<{-f4WUs;bBzC$>Cs-8$7TlRBM&#+dALP&kOk`23VM!T>Z@)!n zZf*QxeI`SHRHnl?qrp&=2Nnlj%$KYl+*I2S(kr_9=N6m=-t$zR-zuN|g5{A(hH4Ja zejMpzpygE-C4a-m4z@H4OLjRTRPyndTrV%Ea4ow$&R(&Ipwcp;4}!@v>7i4SuydE~ zB211=P`3e^40^mmeg|SwU?kB!vt8h^y+6^ibg>QDs%L9g@=mg0p0(WN~oM_=qt=TNxfcdM$pZ^fQZXw*j=K7Nj zRE)U}^wCa@^#B~JGCu%}!1${Qrib@DV2(DlfB@Yg>)J^)@p%%`m|F)h)-n4KiwK;@ zDEWfiXpQrPr1VuoFz&IBq8~lvPldVV19GCBd8vqgP`&+)>5cdgrZ@B%epd8X-czJ- zx$s*_hf3f*INKNrACL=;=~O>7w7FdUpdZR z1DFB|{tx8In;cO+&Eup{yLW77b!@|n>f*O8Jjzny7o30X(Ca?`A*o%l&!4MTpCg@U zLl0J2dr56^E(|8mG0gPm?yq_^Ir_*A4t<1s6y&E9kSVui7g1>*^W|!y0iGeWPw6nL5TH53UVBWPbNtMw4?3-KVP@qpXS8IeJ=<{^NCr1@pt2`lzG!Uj zW+=M@ote!etWT0<^Vccgn55ytcd=Zo!J*9T1)ZF|S`qDeM(z67J?&Bcj{Phih0@kF zOCa;-x^F|_(q^%#`YY8~zDhADG>YO&#;8G$pRS|Xr5){F(-7K6e{IQ-a@A_!=H*zX zRz98Zz$^uVSL9WloiB7e3?MGm9%gjm66AOB9T;*QQ}uXYOW)b0ThJ`EZm_9KBbZSY z-YFQa!K36QbPI|Ata>$KIW1UJ=`*B6Iq7oI(!R22zuQFU+S`QaZXx3Ge4#cFBIf@2 zAWxy4PO^7*N`0%imZ#w2x^#t@|MF938w4w#F{8a=l>z6pGkrj7v?c9oYC`@brk#h* zn=PWardeM7{4**F?t3zd=i|j`mm)bRnBODD{oAUXR`y<*c;uYY{>)NgPI9}cT6`hQ z-Ly!+!04)oX|`~pQ%#ra0mS*#G+6Bc6BYGnm&+WIo7dH^9UxT?ApS~r*F=fNYZGDQETt#)jv z5EXT~aKiQx)>m{+&4&@YcQOi_=e#+tWK7Z}zX; zj0&Rcm8TwZ4T2d62_`%axM?>_;`j0v3|mUvK1nbdI%UXH83+s<&XeKS@4$XI98Wf3 zg`eTa-1Yk4>>{j!_jlki1vHOSQwVUj9H0&~Hgfx;b}M(&7Gw^!BEbbV*=FU4_o}3M z_;gHh2pWvYqCVktgmN3v@GMO7axQiDRxHW7fZkcTC3e`!4il-4LK0< zt3Kg>8*n~zE%L!UClD*W&D&qP>y?X%IR^5ek=?4lZuu{{pc0MkAmC68?~u*s@I{tZ zZ?;DL5)Szi)NXfO>PFIHm9K3R52?{iOMIfxXnpuSJ!rTJvcU zu=^L7-?zCQ z)vC{mbxz~o#7C2-`Zuyx`kZ)LLj;8rrrrF4{g0I;Mn6sH5(;=>UDno8BDv6)XvF#k ztguS9D(&L9qhMpP9D|v2FrN|RckN#9WL*@(dC#DG=2@~Ez+&zp{Sef=O9(F=3=TDr z>~L4qF(-{e^gK_Dmq#dC+UnihrM3WG+k!+@i; z!VNu69fTV65JP8%AxWdt*!TU@Ar$cM(gKxUv!@S+ur;wwlCyGZ+o1d z`^AO(4x(>yGQZi;vwvMFf6;IxLX>z6ra)^P!^GSKB_u$3R7J(!WjB>|9<2N_Cw{xIbASB;4gnu+xt*o20R_ieE~Flk;|2NbopJ2550 zsPVfP^Opz*XoECujk*J}HG{fmS`H4Jzh>>p?qMN5^Fc7&)?;={v4eNRJ9efy^l44CWc^i2J$~W zjQ{*7jt=$z_%QzCqktDYf1Hi~z8o9oBnCK(C$9?2KWs z)$3ARaeT2R;CioqbDFqYO}HgMIe8pmWxky!pQkj9A1k)4(1j~1Mz``!^B5P`yW#8O zr>{$WmLYy&1^?4-vRE^IG1@Dmwn#Yh%CWA?pXdkY6NVfh7QLhSua$|BB*!1xx1_5A|1 zb*kYr_Z3TXdy_4_R!uewA8HWb#V4 znF>($(r+B`fD5O+{mBdRG-viv_Lo=Ais?npoU#_!iJAqgNw&MiK0TFZoIj1T*;D19 zgOI(j^KF{aM|y|Bi;ennOc=bhM`uVdqW!NCl=qmMgNIS#DmY3k1pccEZyc1bm~a$S zVHyBNI9nXt)cYqQIY#Ox%wT*(5bSOB8idmT9_%oG$+CwnANl>LZ?F?1?;13h2_wzm zg6q8y8x~%$a*i78E&XdTN3)&zx)@lENaV@>#y_?Q-T7S|>wA70dL04#T%~B%kRM^| zHl_04cSHPN75mlP!RF5~|Knhwe?C4(v(+d6ZZNNZ&%@6V~RRtKmIG6KaRBn)BR`|=VkI?h;XJ0hpo(;L- zCsy=DnFytLG9eC6-Z~)bU`o7;U}`~zc3a>3)Fa7_5#|gM0hfzb%S)mQeb4| zwUtcs&eKp)pdsI@Jwf{Y!<545@-c);4l&F&zle`i-v9|*6Km?|&BaCm zy8SZ!Yn95LMh}`xDAi`}X+?fp872bS;FSApSDi6F-t>0=hD7z_5|$-0=o3h`KO;G{ zARNv)1sb#gT3vP>@4g`0{psTvX^`5sV|8O@Z(#(kNO8_H1(TR%4jj@B*!R}`t+xiM zu1ka;vz1%AoA%P}sU`GeF`7LXhe8+xHv`AFZT9U5T2Ly0 z*N=_Anh*OQ?rQ%IxI#i$;SmmS^ha-5ZvUHICQMS2^Pu$p;LiMJdC>pK%6!*f>A_HER z+6z-*=0V2Qec=vqOATSAwsk(hMJ4sp90MGYSb4!1NzWM*xG%Yprz{-ha-E&>WG#1# zbj4BurD_2qJ=a^M3uG`Vv`?j*!B%D@gHlPupF_znA>924 zQ8wY3rEkpBwqV(Jpx7+GgeZe~7k*aW)Y}E#L1gwwtKd(^!Y0*DJVfxFme*N)dB@i# z$LeXEMKJ-}U2^;Rid!~A6??Y~rv-k|5Gc#a9) zfzM19_(cGcEeUvyInX&Eg=~iIr7fl%^y@kDS(QJJoMp_Ja;z5&#vcxZr7?sJF7f4L zjmmEOS{Lzdw#Nyy;wn0%(&qZ2N2QLrZvb<96aHA;rJJZvpE%f>cT8C429kBmR{d~y zbkZZ0^CCHdt-Oe`#M;<#{CVw%^tWgt9G!3Sg;`r&qmwBn#B+a_2ccqD)xsFLNM%R9 zI#En?#N2)wEIOL({%(=m?9KCt)Yz(1yZ6#;s#T+{k=Kp(r%i$%q$Wx&9sfj!2sWP2 ze1EQJayU}$`GlqaX8HQwm5ok$~0r`U4!&OC0?1Eqm;)ky>^ zW}W_@E{kdB^`~M7O;>VNt*URfH?dLcOSLYwOqufRX21~fBrO~04v~yy#Mx@|VzNfy z>D;%cWCERXg^Jg1Ws=IX3$&)y29sZK38Sa?y0bhr%iA;SFJ8#ypqj|@Ijbhb?&hcq zNk+gH%O-W@zducY`zGtbx4LfM$ZWGZnveVQIGaxL9}`E0l%3AsD1owNvYU9)_(}V{ z1Zkwd13A~;Sr!H0<~U&s z^J52AvrUbS3-6XRJE$b4`xF)!N}TfF@-u`};+MElLWR(_8elW@>_KK*@f)va;mwP9 zlsv|MMl@n<-q#lbK0JjSyx%aHiv|r1zxQ$23Up;tz<(XcS>Y>0BJ%_C?J7<78)n+Xvr)k==L1g~YA}V+XOyRv~ZCp4M8QI(Xs>0RvS zyzoM0@zGQTc}lyPGh}BK#{z=i^v{kedD1;l*fY3&qog*~YooOb$t8Cis~IkT+FvBx zCU>RYb2A;RSbzp!W0&Ez{uGhH<2#(EUwdf3wIl*AR)sUHiSKiMHLFVcU~3xr`7_Sk z#bAPFMdk?QbD5NPhI$|4aN*QP1~P&R%kDCC1Ak*c$JriMe1vDy#bkHsMPA1`$rn5M zu;`NKm#Qf#qVdI8T!gyKdIqn#e460{OreD;+~nKo;C_CjV{x;tQ56Xz45pQ?0CH)E zOoJ7gm73qwjz;;V*xy_hHS-~v(IJlKZsqNK!{HKufKhP&m8=hCouUe11R zd+{SZ-2%e!ND0qbf3`5HSUSTRQra;ZMjzZKQ|i@Kh8fCQ$wjfpXGW7PV^%tax*4p; z@5z{YmCdEPCmH3fvkkK;y>qoVDVf&TgQtsjKCrDKPXI?jOno9qj`7!rxh7#I>6~A8 zO@@BV>YYo>Ilu)nMvaV4TYX0r^m7s%g6(wDi^jDN6uqCtW!lKmQ%mV?Qj_ZL>Fn|{ z+e7mE`8bV@JZh;^)Us)a2=))iAi+a+X@7F`C(B4*p2 zhb&QqiP$gLRnpJJi=);i+fFpzuoAztd`n+eeV(6y?L*2|-UbR7cv)9l_fYwkJJ09i zpjVf4YMi>osdL?~VNc+%&DyhK70|29ul?x^JXX}9B{e&>vhd=AznA-e zG;`D^hWR;6j`sie_rIA>=-5vM}5O2ucuvK|rDmNCruglS$tXDplB3WFf=Y$~29TUHA~}NsL(T${ zlq^|t9=^e|_dfgFd+z(5`~Lf$hwkZKp;lF`>a}WBU}zKj>nZlfUP>^Ck8@7etAWD= zGnQ#OvC#Gspv61B1Xu_2;KEkz{BF{RR$%REqIe(Sk%ZGE0rTJKTopKcZJi>>09F6HK~%f_Xo7VF+dNW&cM9(3I#s-oiF zr>S)EA>JBW_O`9G$_^G=Ytk1;7?8a*#xuu>rE!75o7+(j}0dnD%c zRHLzC=X1FzagpkgK{~E)P-OQq;|90d$4Lj9zDEMzX%zsN@^nfp(-i;)35N??efdx2 zDYIMKYMx_w&uVpm>Gp6OBW6stKgeLq_8<7-tTSVX{ndZ!#WW!TUb7I~^>qWG`jx3d zmJ^JMs(jZ<=O+US1KqBZ6KR(~p>aMcX0_?~R8#e|@-%f-k{~0P8PoQ&p0I5SoqxC8 ztPEba){jlh()8|!^_N;F%&MiU=YQ-lj%uQLyv zHIbBN=W(981d0t0D|0+}*7TEAPUmOk6~HYY#H%W7LEzwr8cvc2+_+}vW?Hp7QIu;Qm!DMmR__Z|&KSs`!DLgtxhemfAqwQ8Y_M^N zBR%L4lBaUyj9LX%^UiTd6-R>ut6AH`*n@g0XW>sm*ACl)`(>4T0ghw1 zB*pp>a;!+(qr*Tu7#RIEvv^x?RAYu)PS@z31Mf$k*qLLCimI@l9xGx{gJNQ8HoGJ{L)II_ zN5p-cJ{j?B{cJBYk-g_HJKn@be7Zk#{A9@9zF|FnYjJLIdM)tjc# z*i>_wLewF@9}(zBA`m0u!0v!{EJ2laZE8)Tn8%M@Aa;4$WK!CII@mZqT$W)WRb|G8 z^lV{WRe+?tbCWM{i99NVs^;k6C+mF&sr@uOe#QnaN1k?yP+k`vxxD5OZot=-e9DSWT7M4F3H|OPOb=6-LxJoO zj?sk;HOsJ=49FCjr=GMWNKK%b5iZ?5?%+xp?Gt9Tm3CipC+o?)NT9W;hRWQxAbC;e zc6mV2JvJ)^U##~f|EPMs>^ytg*`PD-Q9SWVouVQL(&GO z-H)@DYBjYlfk>C;w|k_op<(zT^i=l``|Q?<3v}bVPQWY}=1*rG{zcPCS6|sOL{9#z z9+K&zcd($lP|xWWs>Ms-ZCb%6^cT*zW|n&+LT^r_t@09x2s{U4t)94+;R%!I@h4Ra z|9r*R$)v9n#9(2$6zdpB`|j+kk*jvh2E13Z(;nTvQC1qJRkS7TdI`{M9)rS}WT&l9 z?K^LQx4aifrEgM^Jf#lTy99_#s@XFQ6(w&IP3yNi5_BP648QxrqILsor$hJ&HK_%5 zNxdkUaOZ9g0lqbrkxe+Ijh~LM_K=O!lx&U-3*%>{h$ZqA#W~)7%$pA*>X9!jYS7D2 z-k3!L&#cj-!iVe@lg~p{ZkS^|e~2H;wuQ|-2Ie$1$c|R(2Y8bp#op}_rW85vI)*M% z1t9ent+IIYMz=TmlkDf?1ZqZmL8~y;-q+%XvUYs|PY(*0yhTn-&Uh!MJ8tugPravl z#%}yscF;6&o;lqgH|S-Pcr3pZOV7@vAH&-%+G6|FTRo2HYdcbuJ$G+KzRP|OIr;Gf zp9x%o%@#>H@>isoHw-^M?pQR*-Gf5vpXb=%rLA?22}phKn#{S~^@VC7IDbC%guDdl zphat1q5X2x2QA#g4Xu|z&L)aqIUzYj8cu)<3YAyJD_^?BLBN&XI-)#P`-MUO-yOde$-(#?{{xcb9_I0k7Rs5 z?)y4DgUnzfI3%pJoKUG9QZ6=z4}q5`5P<=q zY8c^KrM?y2Mq<|P)lP(?nCMLOFU_sK>L<^XGF99m!Uzuk{mjKH95?Ba9ks9}W_t(C($5YNVsV15N!Y|vmv4%_IfA2yyBz8zmnhA zeOhIeUzzbp6nT&nE#Jk@h4>dxC2zYp+xVGlV(@V!BKVsA!E;#z*YDxdh7%{}4ilQ2 zPjSUZ1kk*blKt1-RuZ$GQDA+2Qay=se#3vA90Y~_5hL zp^Dz%y%L8A?h8->{8zY!I1Kgpd$i;GnO7}R{~+7b=@k79`DBwxb#Z<{({sUm)g%`@ zarXLM{)fa!4>~E9QMidIKgjt*21NhBEF^6aVL~S-gah5?zOY6aG+hbUpCtVqA#~ku z;gbsgr#vr{na1h2IeyinyMAGX`5?H~-3~(^>1fN=VBdb-wH3?s+$I@-F8@qb zU9+xOp<)_2O$0JR=+I?;=q}Vh?Z4}x0m{j$ zsOkZlh#_YP9h{E)1_J2}f#RV*3O$iw$T)lq0jK2TAjK6K#Hr1sI^Y8YUKZnI-=!83 zvzCLu;9^4%xIqXAu9|aiSp(}`>ymizbWXP0xZGP-nA3xh*`UpXtA1}>77x;{!FRY= z;rY`fc-PRlHPTUgidj3tS-IFr|1EuRLr(VpKTyQwr5^5;h$a{iW0gbcWJUV?co?vn zbO{7LmaWa#0yE?<0Yj1#{(D*icQb-nq7l#4AaWonUn-w^r|%A<{6UA%h0UE<^cpnG zb^7xX=(6U?ET_L}X=Ux$#bfZe@ZF4-Jc}SvSj);j-`NM3@WtsFd5-q-P$ZoY50%4> z%}ZdcAkN)sQi&lfoJZiEhvQG1o;6$cP>V`=`X91H&hJ|G+X3;TjTO1q#Q|8>@v-&_ zcarc!kBaIl-94DX=)f4}L){)%V1MtkfNJrSeFIgj`UJaf zIiyHKFDmx77xhiGisJ95t0?K!P5SRVJ|B9*NZ2@4K?Ak8GJ(ic^KMb8L^ZkAb}jF1 z9^Hh@ZiO`H%;4*BKD>E`u!e?=Hkdh65b1-c(uz#*n8r8tmn^ipsyb{jq~H1mvR4wg z6DOkMJJ@c@8HSViP8C!rLa3iSWJ%v6l4sd_7V%>EqBiuCkknp>soKp4!G*m1!ZzdQ zO*`WsnX??)=|Z~P`!$8mZDLjVP%i3)T>Sx*d!t&U3WuW|nIW>(v8kC8EEe(I?HmX@1*b$wLrniuP?HJk#sv(t|) zx&0GQCWE$T@uD9~WQh)@-xnAR77PTz)3OfABhPO_5L48UI|wmqNFQQA3gUp+qJc2b zMu7{%s;56wy9#)R|0xwpc`uJ5(P~T=yevZ={F{*5uqHJBUEuHL)5Ww3E2Jyl?IalC zr-pWM;GG2LAxK`Bbeplubs`N$`m-OHJ&Ov07vi6J|JYx1vWbO494jgG)bED#_&)o> z5j1_@d*|3BGjVgNTE~q(BWWk42I-8P)Bc%;k#s?_dZCQ};2*yL`FyB4;!GA20znfb2;u)ji;T8J> z#-9@y6;jv~-)DY@D)kH!eP3Ny?K{9OR$5iIC>1;;p1wR++bQ}VhcY% z4Ud5s{n=w8{1Q;r)7dC73zes0?{0|-KL*!>EAb-*E26frWTv+7;&ANU?p~pi4~Z6s0Qf~Q|U zu*I9`OTm61MMNAtu(*!z7;=n0Vu>e?Boa`i>0YI071Gc_wMmlzp7UUg*GXg%9G!mz@xyY$J=dVmrmC9z^Dl5-xk*Rb zZh{~+K4l-G=Z#aHXtmVEjckCnQcJF+TzkZr-R9_7N`ke(G=hfql(9BoQ$VBW^_#&t z8A2Sk)`f{Pb-qEI`dZyDA7byCv`*Iwt%N$Fpb!mx$~;rcxZB#ALE=FfL?VyPa22p| zRclwz!;Dha$ZAKa#Gjabb^tv^&{`9nHG58VRf<-$F%L0mz%|iNk&?(|i90~iVR>d} zF%ba~1exQd(HJ(&!}hSH9*cI{%ll3p|Mgfqb0N=H?baO)gh3hP z+oDF=ir~p7sSVGJSw)Zb_PRczr{*rvT7rTDI8B}x%oqhaGa{WKc=n-wKX$6cn`7^m z*XW4ukzC(NI`di>E;g8feQ~BuEYWF$7LZ~w3!Q%w9!b%6D-(ZFCO1!)A7~yWx8Z$@ z8Kb!J!}L@SgC_@tdIV^i;yjhjr)NOXE3WAo%pnaU6$UlD}m(d;+*sYJaomNc6Ou zk736qf;!!D0EO_Kzhfx(l&%HTe?CIV`pE zD{sD{CXScEk(Wy}{CGV=uajy5BFDhO61i(U8M3m>Hfn>gtP9G|{^Y{cLp!xZx>~1A<75JT-_4T*Uej ze9Hz0WSuDvt%fvJ?B4z{x4?(M0}= z%=f4H7kuWvP?}`6ryE}2`32$GhWeqH1j_gA#Ub;G)Pd)T&(H32796nH)+a*s5=c!) zpDTi;EOQA@ywD&rlX1STEFEQXH7iKqeg)5HQqi;Z2z3ViTVtU?A0uC5FP;dM7+=!D zzkvU66mG(98S_q5goiz1_2+*kd&>mty0xRrJwxUt+uLpOpN8 z2AIkAE6wNsM9KDWx0MCfemA=T_OJHCS zeT;9XH61~pi+_UOO~PGhpQa*aLo-LRX#;I8{y8V&$XuB}n^XN1FO}eGq<}S#A(|CN z|6;YCyh~BZnf0UamZNj4m4_Z)A?XQMOwC1Gb)S+y^TbY+Ygc~>Q%0p^pT z#27AtlK1C{nG7cXMq|M(BM6(`d4IP$YH;7&Ah=X7(60Z34jY+(o1nc~qUHS}3kxjjan)4pf^sj4x#mG65DE_GG zvvakmB{)u+PyYyuM2Tab^U1x5FL&{<2adq)QtAC-0B5*r`dTi3jwy;J*TyNzI5J{iz8kE36r)Npi;{k z=WeBZF!AmoPkybFig<%BU%52&R+mHM-N+)dj+Q8zAM%3dIL3NFkBeEy0gR3)Wj;{G zpq*68!z5PJ#IC?OfoZN zYVsOW(x{L=G+ohnD<0$r%c!uxqnUtJ=t5g)eQ(YyELQnM?B?HQZaCh2^@f`d(pw`^ zUM*6-;c?E4$(j|!!W1b>9OpcUJA!d*R=4V1V1=%eEMrwbqEAEc2Mf8o*!r>-l!9RA zw1k1PBzbSPPN6Ffc624jLa^0*z17GI%7!IOU?KK=FXD6Fl#FG4IKMXIG(L$R$O?oJ zWw}1q=tTlImm~eN{O`+RJ!uKLAzksB{^fpl=tgKkq_^|fJJW#P^1$K+^A8?QvZB1E zDKpHNcaqB*nt83iC0SP4YRn4SoBD&6{`XtDAJDb<6i~=6Tbts!THAbTD`P!h{7 zFfW0xXnx_{*QQ|jflHyl{RHd2Al+dx_TA0p_^B)|tdMdm*!YroBkP-Rv#2clB6-21 zH0&#LrB*50U>pUG%c2z3|Mn~&OPxRpRac6VqFbaQ()200`!kd>p$v7B$DD={jJ}d) zt~B&N6?E!+Yi`7KLI@+MKe8Fvd;GGdp}M(JInTIi;acrvNGq%vZF0yOi9qBU$TfRd zrlu7IhZrVP&GtuEZ7}E3^M#T^%W3>H0QnZGQ|+XAbrlygr||2~Td_Y#UL*Ay>tYx# zeVJpS{U*!t^|=$bM4Gng$&;{wAU(GC9Cin6iXojrdJ`|7idy1DHfZ9}tU~H#wzZ zL%vzU_Dz>&VW<=eFCResQG5_;k%%tLlzV-}z1!k=4owI#a zhshZ{Ji=GeR8?1-c*rJaSB33K`hoF1W+2vKA@{M{Be$U*?-!AHrY_YmXPC@Q9)P0X zxkE$^n~@Y$AGy=bY#F{xS!msJeL2MKhJo3wmRp|G^&=}oD{rN$z8+;h5{a4Qt-a2G zf8mze?Z<0X46-%e@m9V)q8U44K6NWoNxd!&(GPvYJoUv*9R z*@|o9!Sa6IAmtu;WHY-PdiGw9xgF3Z$ARC{xLvJW3gP@?x*U>niC%t+0ku+43 zfz@N1Gea`Up!c0HYb{1vh9B*6x2}HgtMu+EDDQ+}L}soDDHOFftBU@+IKS?)$Q|m?s#B6G@nll&2bIdtL2dn&jofteCJ6 z-wT)fB=7{^$%d5~LrV0sI&-4xeFsX%&U0(Md3T0}VQv@>yNZl+M1Mwx-#zcbw{ITq z$qjKmW_Mt{zX44%0ZBi~4d6g0nK7)kO6X072I!;HW{+O_Ex?k+mD~%UeA?3Nx^I&7E!-0FMn9ZoWCoGby?qRU(;Oi*uytEsO^|i49@{Vk`q_Ap#ga^gn ziy@_#?e-a|+1bzgnTAso&8$|^!ZKYWMwoZ>Lo=r)#rbSC%l8uCB~e$GBvE!2onw2v zCr@YeIzCB@PhIjF6n!au-&rNQZ~+%92^7%&fPXw!B&dIjg3oDEf;@^`xiz$~m!|X? zrkNNwaQFs3DyKHy?yIlfrgThlJsqMx-)V(DvL+HgU~v8(k;}A~xmjG@vumz8{qV~KE}vAEsH3KE10dZyp93nnry! zqcmW;IoOS&fW_QH<%AfPb0##DD zPeC}`5q2+-KPQu*xHzhPQgjX%td5sA$yy3v!3^C;k|KvB$(CJwd}YbR6(}}ozcexf|DWf zdk!WKAMU`Lr^fk>#x+OyKCscDT#m38XRE*ENJ9O!wLcL)QxQD-+NCZDQfn&aTK`%f z`f{jP!x)WI{eDrC3lVm%hnpBS>_6qBmPERCeP?a)2P$(6`S&9DaS4y+s=eNC< zeE37Drjp_vc`fiAo!ixJu@G`h@xQi+0(ze?h31`At_v5{#nA+{@7uqf2Bc_{_mS^& zL~}v~;TKW@C~&xYUNLFhyW;B@@j?^+y87|+e=)B9?d30b0#s{kY}lYvL#&y3x;-Aq z9ECq2Q>e4nChIXbpIK(}Ps8+g-jsw|72~a6ALey7S+>ar|43Ze2;{r6ofMw^`I zL}Jr7#uI&uWrRX#;i&Od*{hp|y5#?|3jBZT_HTNLn4b7rjFgMGyA5RDzq<=gUNB$X zSk0ceYf0+H|A0&n-;zR~?<9$?@ct8d&@bXQ*_prZ`K)f`wU2KO-M=O}a7;*r%7`Zw zO+9Q@_h^^S9vrE0q*v7j&WH}&hx+6SB1P|{C@bIv zy3|%VQ$z~Cfs=m@#LN}N1(Z$JJUK-XQusCyqD+b<70;RNq%k{HPY3&w6ubII&#v`5 z04=1~5DE_=qW7-0l|O~3uu5VVxAqcv4YFoyQh#eS_NSHTMQdo~N$@C4hVm@aB8c8N zpG>0dhYKF9+R$2_$8TfAcET%WMARFj63OafGjFtT=(-)1uhxZ3Pd&J9TI(%1@JQX~ zg*7ujDd&=uKMylT)xo-)xj%*u@(vSG+goD1W zt!oz9;K1&s8#jqpn)s2}Tmmk>T6V@;5#4bJTf3PG^j-;V6Zm^^FrZv`F?6C{3D!xl zdcis!-u3zbeQZbuk3AxUm;k;SmiN=M%-u}zADt@HFn)szyXvGdBuT)W`!UbZt%|k% zcU<8kSiUhz4DH1zi8znT_}ep_RfLC?x$wz@RNFm2pQ87*GU7X(fNw(JBY@}$XD z)|&7405naHPkPrTHk5H}yuP4e#D zr#SUW1kA6Ls;f&>#yj!x*?e{ywx{nt`tOt(l49IQW8A39N8F;>|M0`0@Jd}uQ05=? za6B6x&=RpNi`Z7p@S`__rDS~2Oo_b)7!Eft%v}Q0sLJF&mhfU~Hk3H+#lX7mIL^^7 z*Z?L!JWd#rn0vJR!o$KWc8l*r#DRd7!r226Un&$vS@!$QmFQWiy|yL7A67wbRW-r$ zynAhP$T>X}Yap3=&@R`(Q%4+}(FoM7DwYGG)A+_y^<(v@L>`tpzKJ2GJ0s(P#ee`f!J)XaEq8vK3_@xpj-0{!bpPpcrZ z55H@7TZ&L6_FiZ6N)6hmrc8;Rz_$zmc6E z(H?cBWy#Vu!wv1I!N=k;?yDLvLQvijXNyChxK6etw&9XQD6}1wRXGYAK-&~wB|eZw z$F(3YcC9cZKEK}2cSFawh`qhowf<+h_yzO%ziZEXW!sbg1FT{d*U82e_*-blm!8oD zt7McQKI$AzR@k2-0TI8_(4OUggAZZ$pWT0hgB!h&m!ubKs>sb%h`gc(O;zR}%<_Ys zGt(;k$ujs~rQ5?1pR@kp!0)#3pD$Epq`t3f+M($uJX;*bdS`j`4>tOuExiARy%eig zFm?wozQM(RM64>iGRth82dqmHz`1Ro!D7+u{=;FYWfrOxg0_uBgX51;%JQ)UsNFlv z83}jcjyU9?p5Cirshscfc%KBhf8@8W**?gvu21=9_}m<_Q^SLeLoFN(e68*qm{^Jb zn9$a3K%L!UL`WO^w6d})vCEAv&W)h<)l5;AON*FIrm-P^OLF!->1$FgEm)?2%l2dU zaiY&j7wQ@4BL*JnU1rTvB7FgMs)1Fj5W&x-Q7E^kAl3px)Njjz4-sihYC9>7-s) zZq?6g=)V_zmD?_X1)9hLoDY-JJ_U^9w!+-8qwmMJNf)2cq=If(lcMxw-cPM@p=)aFRFJtw>@YdW!O?BCK?X6@W7 zm~m2maeq%=YA;Z6@@UVQ)2GvP7=KNym2YAj&x zf}T zd6H@&KW-J;R${8L_O{?{hvd0+Qx&TE+ThSH&6B5IAs6YzhZCKzzEZGsF5;Hos2JVi z%o^p#OGdkRAH=$Ey(`2Jq)J?IxscgbPFO0BQlG(nu=w;EsHz@>r8T^s_@>Fi{QaxW zUe%?kjs(rnh*;Td!qfA|&800@hczQ}?6D3ye=_u>yp>8hnj-g3V>^@uS7>93rf$Gaec|c}f zz@c5%C^O(7cgj{^Y`~#&r>53!xTuV+@PTu3mZ=c`ldU!HDMU?OWEWdfIn91OVJ*S$ zohLEV zMw6G@EW(yp;l~0NB)swdHTpGTY>MD}+N|nwf)5+H2lfhF)UH*J-gBAk&I*6a^g3yQ z0=X(XwK#QuA|bxabO3y@uvZX+I8lNKf&4GPMN;QW00X71P%?1|bh56XuALXeD!E%6 z_+Ed7KEo@@+%#J6*0#pNv4V*%`c^t|%rEzqMB&#Q{QC(;s92VcMb z9=bAF27#r+RwWr+1pCM^?Wa6+BEBs|t5%AeKCI~<8mS)6O5qV5Pe|ITl3*`;6D2b@ zPVHMcFpQ4dV@UPl#NPbeg^IZsCLO6d{h)-wes0P?dWMcap`%KDrB#WW1m4fj!>m+%s!Zd-NZe!3w?{AdS_5OsoglaHzL=^} zB|&4%r|){RSt7+UF;X#v2#41(p=eW)Slu|iZg3#G95uF=h8k~Kob@(8!9B&&*^aTt zQwdPdm*QVur@Yz1Lk@pBh^<2*t9|rf)F;XQFGFGRAB972@{Wif1S)LxPvIqp&}ukK z-jIf>(V-(^NI(p4&nT@g!dvgdJ=StZ)g5_ibmk1pm}YSDkHinIK>@csRuhLCc~%%( z=mQNcA!_BIXg%U!_-Zq@S~cE5N04rTdj04f&zR{9c{0lNKA8js6*ncMujW*p5~Z-? zUfNiiKn}W~3UzdfzY`Kxtm;+1UaasnA$&!@%Nw~j=k%LYQETCt1#uXh$yq(u$R`>_vc9|;^qtjH{*cFuodw38Y;gB~as z`!X3plUfRCTJQ7Oi3b%4^HAMyZIMWR;CFY@hk#L4u7#)%cqGm8WB5vCMh|xLOXGuJ z!0qrb)7x9qDh=o5OB;de%0G(0e^d6qD7wb3swpoGg}9^5a1n1W0q4^(S0wtVjy|DR zxRf3rgGUm@mIh!c{9@sJjjXNzJvwrimPg#y^s}?4-Y$!%l3-}+_~{dgxhH(94Ph$7 z_OC4rE_nOY17NjpH;$@rfdecQvOjFZZ8h75JjLm1TIMB7Bsf8XF=Mz?D`~Zw5QGo{ z-atDZBRralFIev+svaMOtbHF&PrE^v@B{wJaw1?b;?d*bhG7Z@A=6VW7d6Nem#H@u zqnq|-_!<<^GI*nYElJuo%$SPWW2Kc87P|H;-WD-+k2hP;K@bTT6$?99m~Fzz!wGX$ zqY%S6(yWkW{F}oLo>Zax{C(<@)X=&`kgae^&Yp9d1NJ^WzB4%R>n^QLI1WxIyfZJn zmh3PnR~Si;6#H0RWq?_x4Syzj3AhR&y*_972`3x3-7=aolqcQ%8MonVw?v=iDfG-Z z`pbx)mqjw!`;ET#h)IrR53I+=%$Ph)U)5wK_WKCM_6)M25LbSd5#2j!bkjG^L6q0+ znYwC@gGOGJGws=g2U*bu*zHkt4~tqt%WzgOMe#9*Yta-I-a#ePq_R6CERg6@f}fD~ z!S9yt>ohri6W!$AwoIoo-Pttw3WW?)8>^x| z+v+mZ)|vw0f=q#g(HGy$*KiChI7Q}*CEoFUeej77;T}dh%9EY~C2n~qWxfaLS;TjK zZ4ibw7Fy53M(hY0eoQ|!wcL9aJVThI$bHj{N$fiLVNs!>(JVy;j#*3?|B<4f_{&+u ziRVhdcd9W)D6mS-7y2cgVZ;itBLjItau2c9j$XI;X@&9`&&t5s3uRdZhYo}cKMSp^ zHlAwGd`HLM!in0M5O`XU8=#8pq}=n^=l(2cHC6%_JNfO2BaQTD2x|DFL>ga{7Pz-Z zw)lNcE&SX)8!5)3^QxzeE0*^By!}MrSba$r9ihPOtBfMOEtUrhkI@lAm>9E4oScO0 zzWkNh9f9&SIsb6Z%I>X(Q+fNQ`2^z6BIaFm7-4FB^Sw(Dzzw0=&!idsANtY@uF8nz zeRSq*`wJJ@KgZXS^hQU*sy|ycd@q`ZcIhv3bv1wfYYbLmVIOO`h3x-fVDz{&qmWHd zIv~M~@h@}$+Jc{VRR5kKw`fL9Q~nPOk)>w-O%(Vihvolb zCiFecmZ}06gU-df!d>;hF_dK%o#R*GX}x+ngr+^{L>(Qf&}$3_18M#Qrm{OSa*%nI ztQUgAvmx-`*$&{k|07utL_=bChN6#dF>schu z`!AQY3Q+MW7Rh|zEQ4>Xq-8oe%wLS)O51w6_2UBM@oEnAaORb61KHml+b3a&oVpaX zzjClXLyQ%z@EMs$ioRI=_^@X6sOG|Jw0{WmR@4Hcg#mH5uW{N>Hki|CumD$H8UZ;& z>|DxYGvb$OH(C}_66OnL?#2jkns!WI0)$FO?GG70LkV`_(JY}0RBGH|M`4Wr&_1}p zf7L2>F9Eb#VPnm#sK{gw1&vpA-D%hVu*n7P@aAMxGQaBF6|*Kk&&7%A6VClutzY<) zW2UMo9GYrk6Yi|v?h$7wzVA{~jY8W)H@*f$8AUi|>rQ`T%! z&_4zfuZV=>-jQpkpsApVspx>yE-=FHKc5EkIi5wYEsJ=_tTMb{PQwX&Qmqua3udG9 zRTb7G=7?hSnDyIuLX+#S8=P874A*vj1}*(oK4y2<9_(eI`(msqJ;=8hYFE}tU;`j_HV)~mi#T0*GXbKoS+L(2%&Ub zN(@?%HIUHgm7cKgm`pbC;7HwmJKtg0OE$NeiHw#fyCcKs#97w9uUS>Y!gbMkQ|^9l z@Pj;N^6wmC%;?HwX$<(_Yd-k1*IDR`m%N&sM&}YRJxzQI;}=7sAE!|{Y1?wo;ol{- zv5j~i9-R)sRmkY!spL2y1aFPi+X&`Ms4U_(Lu%4784n=0L$k3`Jq=UILZ9h8= zi##)Qka=4Y2TElUp+KkrBudn5ZicrJXNCIL%=__Jl_WF>S>x|A z_RT#O;KH&W?)ZQaDe%$c#`>U_rb{1}YVg_^TeYV>Q;@tCYfuOv2pmbc3vIRo&aPCA z1qx=3`S^4J1M+V0M&PdFQ7z`_*L;^xrT4?tx<9y;{h;y(|||evk#L7TRKA<%iZ5B*N*DFDXAd2jPS_esYw=9b;FBpK*&nigN^i{s^VQospRvqjC12wv{qS=Vrm5vS7%hR8o!nf-Oo|v;Z8^__ zMC&R;%@-#C!KJrMK-6jQYvc`dVsOz#lVLf*`#O{M4=Jc`$W`sstE}NPEF`rur&u4n zB!m})RAz$6La_Pb8pr1QsL+q5o@d=&w5Y~=VQA}2De4l~Cr#IpuVl*{&s5=OX6{^> z6oSqzxQegKS2ovuk9FbGJZzFt1)Aems;ZClcQb84*JjqAR+*D0IEP*+)0D~YGcUWt ziZ8~_3)3?qY!_+2t)GN@|8DgF-2vP!2?`b~jRY-AmxVU3n&tiOQFn*=uu1A7<^L7# ze+m}-U*h|p!u?OdUU4f0k0tkcEO)Nk^MN01Ho+=|KeZfgsccT0sWWh2Um#aEm}$8< zPfA5E$1VrG(|;)A`L4XktXd5ivNl^oJAmz0%i=9B^kK5k#&bm*yV%=v&URI)ruNO| zY#L^D#5hHXCbbZM^PJ;~Z2mXby|hl+cvQwmvRFMvIXMl%H7j(Q)C$yD>DfQ>n(&AE ztsvJ|yVezCsg>_;9%RFxguviTp%nOju8RlR%aQJb)9FEU8>&I)VBmL> z(@-BKA7Gl26B(YAQqi!Cj=>znh=MPKzz~Y}(D^fyAtVHn!n3+N{9r^9>j`=NK> z79k`cWXlRErcALpoq{bq)`xgo!WgnC99n4pLWuF$L?U-Vk~}vLlL6jBZTn>4OI_^X z^iYV$=~nzgM6O=#MQOJ6Ba1N073Gml;!7Y2{l65tnnqu`Vkpmi;kg7H95R1p!IZvv zcp*c2R$nqwYjD+{f?+xz$6Y??cQ*B9z02$e@%zHo2r1C#=Vd>nk{YkHKQfQ{Vb}A$ zuxW84-Woyv78?OP*F05+06bVU@2d7VN^E2e%x2_HzTpW=9J8#IdJ)%6jqgXYyFc}v zUvF0D+l$TWeBDfsBuf!_(@>Nke=I{OizdvTHC=YlC09zcYWHQJe-(EUW<-vcwy`=$ z_R?;Plj)l+)~9xREUBm)6x3ec%O&&%?RL4Z1*>;MC`i9Qrxh@usSK=ryF=TbwA)2b zFG8GmU43=-%?9?@%+HF7_^B*4?CQBh1ze`#Iq7xr^0v-Ynw+~DHm#|8U+3+Ho!j;?u5|d1fXRDU6F`w1)yh^ z{D{vvQ78@gXD^K38FlD%xBztQDq@!b!hu+2fZ!2e{F%@9Xlh*n9vQ+3{!Pe!Z*LO= zJrN47fbwBJs^{<}e?!vNw-jErA!+Vw@>s)D1603+@ls_pM%OIr*{-ZpEli#y=Dqj4{^ zq(c&VZx-}}v|v&foO$>!ertRGNoYPfi-1Zl-@jgt75k=Vzbt=*G+;$-bKV&~EYk|x z^(WV~=-rxpO5WkQDp%LO+rt;a05(n4DltD@I;+vR&pk!W8VH4C)Genm#L2`7(a7Ux zbrC-p7t?hT*Br@B+s~>Vd%2melM##EqD`Io#9Ui5$*;`}6OL@O9Fn{y%iPbZ5Uv>w zY|5GOsY?S;?LtbcmAw>C3i?0+ZuMwSOxj}QrB#W&9oI|17kNC0?L+FcHHlRnK0o%< zVI09`}0Z(xUi|pusFcjm_&_*2;C$8i*E=;s`3Cp|T zGH0Z%p%a#%AU|K2I9rcxLU!<$<_$^W2@IsrO8S0|a&{-obI|ktdwd)CM`AP6P_I4Z zk?r})sv3U}hFA+$r|1(iyMeNU4DbEu>*>MRkHalu?BR|=NQ##Ib*&=v?L856(lg*} zHO}Jni!W|2({NZI@j(Y~MEqfTg>9CukxU>lJMktR_yvRKy4YT@`(cLI(gs{VE@*E% zqX~B}Dj;H2dbxpofEn{=dR@7hRSF8{5v=3KOo2vRjNsg7`ceBx1M~lb$_}iE~00+L1l}$X$49syw9;IN53eMIM?0x+&<0|z%E%T2!J|L;8@L2w z=dVlsP$+u4JFrKZ>O=PJ056`q&FLep(vG~f#JAGTl>wseBHx7NiUw^$cxm?xR%eL> zJE&kNJ=!TItbVNaTZitzM7xNzBpOXva?jGtB1*HbyFE6e^@uLqTm$uj{O--*9GOY{ zx{HF^2b@KN-yfZ`-hr=&tKk02>s@I{E1X~Q=p+EbUwKw(H>#yBx+J#K|K5oi!)_3C zQa$?#22!S>7E_PV5$w2Tjt!-s7%X3q1X2iMGVQ}(M=-*L!&$I6AgCMg*6=%U$?)6y zN**&9WHM?CPSM;omJ~D%0ZRYD02=`)EJAeHTiT5(v;)7u1bLSA3`J8(JExqVv@MNj za+qBi^Mk>~Uh;ye_!`r_AE#u7J7-9(Aa8!zpc1l-Y%K5RA_zTG1JA{5rTH2qWW((F zyB?R*XnYeozW@LKYeLgnYU#1B zYlydxYo6k=k-|WD$k5ZDtTip<@(#m(pg7ZVZk>jUE2|;KRi|lt6~%YV-^V)Z(Vh}r#{BHn z7|es>Ty^~+Y1cqt$yhHDyM=VuHyxF1s!V)RLHc^I+B%=tIHbj$3oq3^wtYt7UR|^{ zIeuGk4kq|2U$mLG$1YjGG@?I(RcWE;)q>lDl$2(L=`)3kWQKQ-O>VuoyTu(4E;C?o zrtKCh@u{holVlSjaJ#crX~n|F8x_OOI%?ID-EiXX@c5IelX~|7WEHUzM0zznB@HS;Z^+PQ`Ta}9(ixlmKh>c-W6HmWI zH%c$+P+#bU@_CPpr@7%q&ugl)VHM%cwVI3;Q?$w04;?vSMP~QM;VXT6_|I)lh$8Dg z;?e;U03T2wh7a1ZATHiRZo&sypdd2?+QlDLyZj+)U5?PW7?9|FF|^Dt0OK=L!))ki zr<_EmQ=kv8z&3Z@9wpzPGzCQ(j%S!`{6x+o`jZ4iyw$H-kNHUhBE2sL&FqD87A+!E zQuP2&H>9R~s?9?g=FWrPA>)wjY-PsA%Kfqj)TRbhnCFkiii~Y^5s@LroYFLAxSMB{ zi_xB|x>fEn-%`1=$~x-}DFtCdoBM@MYi_$6-*Y~@F>9Ypy_UrDcIF?8z=wad*qbn8 zrhc1k{?(s$$Kb=~*W-ao!S_Qc*Z=RWt$K35!T ztz+$6USE+bFYhqUi%PjnXGJrf$pS`j(_-)~>6@YoeLPU9$Cw509__j5zbVRfI>jF_ zP2rTOmOQ<17fSy;q1xyjz8(e^p6EGg+}V_8v`eWPTh~gDNuBaM5_2%7Lnh1B#re zKU4oRC*ePHG6@pMouL9QuUr1@V$lEdYi!Y0|8oMg;s0F9zz%ck`N$J&18%_0i+AWQ za&O?Or1orpoUc}kp}8r3Lt?m{oNz2ll(7rRS&z)V{-7%l&m@5Hek2##S^438$~tR6 zPb*81HA6qs7YMWY)Wh3iCN{T>G2l?G+m@U=0;=(qVoq+fll;7$rd+&kF_lwJoZ=hc z@+-c=QV_3}i6sMTZcdC!`IG3;##bg~Lb$Sj zrJQ<5(7zZpuX&^008^Ei?CcElpk!JW-7@_maBQXJ% zXt58a^mQ|Yefq*I`m#Cc4w%j;G%_zjA~*%szN77GmY)jlpWdrfrR7qr23QcVQNBy| zi0_jNg|dmDxR>zC7YJxz+p+jFN|E zpNVr!H>z&9ZNA^AGM}t8YYkeb?C0Ah>5PlVe*!@zKI^+2Gqf3>m!uOjP^DeqojT|s zHHb8J9SachT)oHMJS)N%WCcVuUvE=%`9BNv9fHhb8GFV`u-n(ORnMn7IV8mu;nt_DGtmeomcdn|ybE}g4;@^WWWqp{IEet$Vkl7vb4$$<$9 z>JMxPamhKstfD`@SN3s!BVqXim4NI3NMvv?sgL)>;}s?cx<=bwQic2!Q=!~97-X*@ zvY!!yAiZ?a$Qm%sBz@rsUE>C`6i1Q!`MwQX@*z~OR*`Te2wnk>3)bF){l6e(3g%IM z!Of+V1GGQNF`|TqHe_eNwW@aHb~*Vb5?l1gOnK;i9lz$ppqtD%O6%d5;qK)zFEDMWo>8vv>BlgKQm`hT{&S-Ft`uf{1kxy}FUw?hnCAO-;>&)%tIfb1J$X zi7tzJn}WrXhQf;9JGJ@v;^#$n&I78O?Pk#CH3<6p)*ki%l3F}BHbaYO><;Yq<{2!e z1Y-Rw->&nYI9#Pl%M4B-;z!t)d-26dIv36w)_r`2BVb~R1dBvK#Ef^6+_6G%#M0A~ zTcNfs>K@C|MVX*Q4$6EnPuYVvz4xlN=E`jzZtEy=h~F%Y_wg$v$;5Nj>6_bTzUB0b zftP;dYt)!=K)loEbwMJkz&WI^1BNfD-+oI~s%xz0dS@Cku>UrO?EVZb#O#40T62;WL_}=Bf3afG*qG!2;fXc~9H-j|-~~jUm!iI{B*4?qaGS-0p!N%E zrNtEH!#v{!a*qp)sO{^0-#W*<`!Q~1z(G+a%JNuk3aEWuE(R|wJ6e6URgF4a$u8q4 zpXX>Uq_=&g-me?k{_S91CV?E7p?fYivNMrxZ@O=#Xk{ z66a+N^)(>TGevJAT*4alWJ(h%?q7XJLXyIR#_<_t#w;JdmYK}TxROi!| zMI&P;Z3w(Uj63bSE*XCNm{hU$!AzOzyz-U8KIwbt=2C-^-i8D3jj~TRMVZPO|mkrU=rj;P^+ zbWQ(Xs0#2KRw;S?>T)cuOBgu-B7}}iRQQ=xh3hFL`zFL95cc@mr*Hz~@RDEp1$nKt zZ`bjl+sq(6ZSrBU4C7~HWwZk7T8%@yB(_LjCD%-pV^TE+N#O;GXlO__=s-k?_P6IY^V~3c~PYV?^-O zSm<{hXzg!jx@hlw`a}0MN1sN|qH1L3guiqe&spy)J*%E)gK~` zi?)6KQI>JTNFRtShlwpo9tBYWY$o}SXB)0-OdCX}io_Eo2Vap?W0}gl(GGMKVOgIq zIwAiB!ESrHZ}3x)7>}A74A2xuYyt0zO27;RRZ7tH;+6whBKu+AG7VuvnUa7K<>gzk z(iA0 z-)6LBmFbtJM)WC8sR6Z>I}4~I?s>F&hc9MuW_YZm@*7wE#oW)&E>Fvp!SXA*HQ2=H zPt`Qc6jN+hl~Cde3myAaYjcP2oaW*GwqT~f1)~5i7*;uF;r++84(+I!{tJHA2HKpt zV`V&HldA>^3Y_a~u*~793qKnmsjz%u2Vu-yZ>Z`h|b=F8jb|A{#&S}^TE)?n?3DPL>8pB1|E^C&n{x~B&JZt`1081`)01ma-hqx{SdQ`y8Jw1RXbBu*wz#dBw+yEhzTo0P9ZS|Zq5PLi z_w!W+`;IE_M0`=Z1)YX12*z)pijT#o8ru!ODmG_;31FMP_N^R-Y@~}0r(*Tze>#jO zO5Tv*zc1$CI$6b7umH5r5K1i0u^8Ymu~mU!KBF+st~~oM$XKpQEe^w8s;9ag>bqx5$Lniy!BR)xz|qw*B4%FVGu=K3tjqn+#17ug<|m}Hx2AiSaa1!X<5 z;?uKu&l%s9K^m2H4)Mj!AaV3A7=@|5{bvT$$yBLF?RUZxmWXIY^pBUd$;`;3M$VBW`SeK0Yc0)v9!;a*4OrpUDG13zJ^SEbr_wbddSooc+58MDh1J3 zIG27B+l_$99Q2uNEp1c0Tr2KNJa;`;C&-Sf1WWf5he=4>gMHh00lyZ9ssS&?c=^W; zzGOLubkoONeV*FYTlyX|XXBbb6z4`%7uV+brp&*Qa%76nTXUb}>WW(}de@c<^Npsc zB*+?=C1Y?)@Sg9Jz@nxbnV{YA0ZU8!CF!ck8;Y!z7Rw*($@ME5iSu!vkf<_; z!&fRSZ6k^u$c%f}d&#R^l`w(YOT{e%p7%Jcx5ww1t|KXyXRlUtac6mT+S#Z9IBEfo z?*wc~igpPfMBilRYN(upGprAN?46>J3Z6y9iwHcIH7DB6kP=0b;Mu)W6yHK$tr!cVcra2o@pDCU>Yz_%QE}Dfz4+3#8xyo*HeNM~Bo9ey7+=VtW^Dcehe`I6;g#ttg5mU^v5;pp}quEtN6-wPiME0m)Q3XvXsdKgHRkRn~D&%~4TM>Okr;oQSbK_YYaL5F=a}5B>X=W5Q`pC-39?^z! z@d@6xg%}*|t1IYiG|r2hQ7;=VeQGscJ0Uirixn4g>pCF>)h4f&Q;0HDP<1Kewzk9P zeoORy!^%4Q*4*|X-|Ds`@VBdn@qE;ShQVS!g3PM{&xO#R@W+I)u_pB7Z1)j5^1Ud$ z%s z&=KFv@OMA^1=$7hADPMt*!-)Tj(}sOUMD%|+$qb6Dp8YoP*6=2Hb2A&Ml)(5177+00VIVUUd~>O z@jDiAZxk~!C1nO#(r$7NKj1ZLM`QNp%MzQQC*{lU$FvCf_+ zMyOPfHsyovB=F;?E#|141oDsU=^a%0qxa!i#!v#dSUU6t?73t*z?c)jKC3_Hmw4ca z`BBFyyvmerRdoAe^cSQBG~N6deyX2LvRG5U%LYlNZtTo&U4)@~%;QiDd54^;x3mB& zM?n2*BuE1VQHx*fR$wZu`f>}WgsFdyPRwVxr9PztuURdYu}PR64?y!+MTSn zf)tA1QI{$eir>3?mOv56#e@ACj)2`#ssp9ohAoC{m^(wuNwuek_cvv`};=xKH}TBX%fBv8(*mcY*)qBAia9X<+Ii0!|^ zRHcFqK-Y!`1G}Av^+FAWJmK^?bOO@QZq*o5-I)}yKHkOpnCeLs+1!#P%fXz0qr7hI zc21C-Z?B;#wUOyskdLY{Xz{F%Z-zf|=Zp^^lycHVZ3I(@N0Xte3;Qsr2#e5h80EwGYO&&AuA+$vA>pkz4ISZMW#M+d#O9K4?n zL5}9Uy1)YmlOPd?xS+_hLATXUlav;m++Pe%{iZj!Wi3%;@J#BLKFt=+=Dj6&%%)7B zWrsr1NX*M{#{SOq*k(4Tit?zRqHW?fD6z{G3bmXLeD}5;&?J6TZ!f~{O6TvN&8({* zE$4b{dg;&0IknF^(UW6+ClyrtZVP|#MtOL+`LSO$&8kmR1cOomQQd5(*&)6_^uf|l z^7nsir?-dn+=hx{eLFpYC*&oM<*}U=S&4E3xIkCK*7eTSz>T|F&ACyrnIlNC2tovQ zFdsWMm$95{T>XN)y)MFlw^Eu!*qp;8o<&bbr2*Kew7aki&B_Na_}*F3*XZOnrk}xQ z`Hc~W+Z;aDeVMntOgn#K{>RmjI6nn>Hy0KL*K!n!Q>6DZmLz8rLrjQ?*WBZ^E#sP4 zd+5eYg40w7xdPBR!8osL3Z$lCXbK8I-N()t?Y}&nyB90B@pwoZE7EmW4NG27b@FU# zXn|IiuU8%E^zx((ENj^BT4S>t(VM+M-y`met+E5z7>e)g?oE+9l23cV%imm|ia$oi zHm679!ns7PK;LOJ!EzHV-`baC}!D#8rvUco6rjP(bJuR{{k_*+2tR zX~Mw@IQ@2--+P*eS~(d&2v?Ga62h6~p^vCvpWN*qq!tycg@A*Ab*GZFcxK)s5S*%9 zkrN&SMp#lKCpH4&RPZDmd>?RnIkpDxQGikdS+OWq2;G_HeEFXB^{YrnU%Y9~A2mZu ztY?uw%}ncGtShrW8fKV4oWD)HXPWiX+5NiV{CczbG04PE`Q=Jmhy#UNe`$t|pQEA9 zd(Y!=MU>ONvy`QYmKx!{%4U~y!$Z=DVg~16S~!(^-=MVkgv^Qfmoc?sJxw;3;?XEk z`zYb^C&X#^+C+`VUWf&#Z7-M}+|DZq%RLlQaH_Vaa>>fT+0?Do^5EgqSBt@=drVhR zQx@@ofERH*xJzh*Xz%1IzG|3MjwbOTggZD5(~aWvtrQ`m-m#k8N@9}NXL-R0lMo}L z)M9*?6kak+vW*cS;nOZAFN~wBep)vW`V6Oq%FOs=TY(@O&yhPZ>8Vqf8N0M^n}iJT zy=<1Tksxy9CS?Ek(X*CSVVN(S(O#>k#pWO09#rO|Upd?_apK}?KfcgJXKW-~2lqOz zfqOMxe>3y#_qs0Wo3NLB8=)j9r`i!m_{s){*4^K6tcq)^(20k_N8xqkJaJ-9e~1*N z&;gxm1`b12;q0P*m-Tx8SR*trFiuxa6irmChB4pi5lrAH{ftY+<(;^0@Cp!JJ z@?-nz{Iph8TT@iH%tB%Y2##wpP4g`SP^Cak6d9ujk?{WRJ+_$nL&W){gOX|2W^L`~mjMnOz5Yf5NpI0evADF)}hgFUr4OaL0}PeXz_OGMcvyB z&=*RJ_f9d0(Szc3!$fL{;CpgV401FTWgI;<&n@eF+jmMc0P~6jdd36Zv1nNsOz@XN z&?3CP4KW-rg)Dnm6iexkl5>Hd%0VaKNpjExfT1dsB_bqL+l}2RUxRWu#i*(^%&Y-9 zchlh-#SSxrndp%fgIp{^uM78Be)N&-{&gCYYT5%?T2XJxO^F9sT;Eo)2;>kcjE7`< zDb*GA?}f9hb9{E^$C`7ETuCtMr^Bh^qTt{1&T2nY@wt{E3g^YH+OwqEJbWOrNtA^m z3Ph%E;#PBnB;&ShPmXHVx;R#}U(hA_V>u>DiRepC$1Na)@lEN(yx)Gyv-NV{A; zDKh$<*MwNd_6XFb5Rjl3j8X)k?8C|4L+gOjX3@;KQ(GT*Vx_sIo6+Ijv0~GdrSFSu ztZr=2Ps7F8xeuo(GiJvU9O=QP2epRbFKAk?9IAv7lb3JC{K)}>ueKO6A6laqurbms z$4UZ^j+DJq8VVLtF}5ls7+$VChM7xxi3 zipO$`TEP;$zaaVWCP#7{rAdyCOK~itY_7+bl*VVL{N(vkgk+Ktr}M%X%3OB*v#m#+8XL)GxM zT8Gbr2q&`)T0F(n5yU>b6HzJo**x6dK};FpT)RDVvI-Yja_$s&33WdqbLMCGIk9lG zCjtVd)8p*+By&gunD6K)*^YyRN#doegjk2hWC(S(2TW?Tk!3HfhqvEsdJOVw^{P z0=fQ~4Vig$j32B*S5!?`z!#a}dD}LY_+QKo{efwAwKXUWJZ*roUvQX6G+mRk)>%$nTxIc@#+GUM zQOvEXvsGn=THcav2KT|(>+ykH3C7v>bAC=q3VzuRX&;N`AIr8lHAL?=SiL{)xt>%= z4=tBJrfF1#k%snE*0~3FHXF@+DbQ9E%6|G=D#{MMyk;xDDUppcIht5Dw`_m88wgVa zOtzE6`N~UJaDPEqvv+S)wphfqzcNfXK7tRvqc%P2YTbumzS`DZ7SMQw_xcs8QEjz4 zMMNQ;Ve5 z75+XR>H#H%iEom?FFc?J0Ajb2qv0<|_D{Ys>=+M*8{*~)k%zdqbx8vLWiqS( zv>E9%4qAJ+YVd7}eakd4*P+D8ditqVIWbQY=5Sqh2!NEKb4NPzuCIWQB3WW5Tf3AKn{c+z7ra4W>#Wf~q#`5f=(TW#xX@QSAenFtCm)c6pAMWcRwI%kY$o^FB$Hv(-s4ui+3(aPI$l<=w z;za2qveC?N?@4@{mg^_ybZv*QBH1pzaYwAE6KyKXJ5g5Rtu`e%;$FUj#S6+S(u*VP zWZr%`>UfK|<{AQkXY@8lJp0xnKE2aw$wG|6 zn~}!HJ-fOSs-PCXeALpKz_Oo?UWrH>H+7Vwu$8fKCQ(_x><;dT^|~$<3ui|G%>aqW zq!gEGTBdm31tQeA7D1az`mXeT>PBuBsaSkG@*O$aH0tkO=Vd!g^H>TBb5`ZPO(fdS zNjZdAm>9BAOC}BR)EvIu5j^nLV6A&0z{H-RFnDL%r3K^`ixxoxRHLo0vJnGmDGdT| zc^o5dz1nWhK_ZVV6fg!1^Y165;=YSn=PeOl9|Kp1Ah;=E_2#oMnqeQR6qaMLDi3sFE)Nb&Or=ZFMtTtO5i9Y zLeFLJZhip6{9tV27vyr{KV}oabhQE^td5`q`U`Se^l$U|w@Hu!XgxqVyI^5x7%=en zFio$|+{BttuNe_Uz!PjfX#`V3aYx3Loh48h5u&ZO?qy+*D@=ZQLBbDLg{|=?w5U9e zgn+#SnhcdsPf0hM;@p$IF^WRASX9(0&A%7CvmGsP@z+A+SxTT`#^EIhj!PJFAhqp30 z`@4L4yL-Md7h`FPUg=_p8zvthj%4{$NuT7&1){4!Y|n;+usb$)bkns}!*edia+UXb zY0v24!&XS8?Q`i(9XaG;6NBWn)%^^f=kZzgl>k}hHZUc3eXQF?p?k(#tg z_D7%0W2lTlb7jryZp5PTeF5nt<6DX3*sMrXI!%RMny{yIm>YsHC!EM=Sy3@CvxY_! z;xk?)v8|09NP8<*E`GR`h3=V)?=*d1e0691_BOl_{L8>~X(7uV=$Ym6+2&oh8kg)v z*rvc{B*~UTx&1N_uQ2Lp%M_vVAT&xcR2MUlA9)+BI>nZehpcl-v#4w9tksPlYB8?F zZ#+6C;6=|*>|cYn_af$74`a2>9@b{tLc$lnG|SQ=DD4C`5bU_P_9$B+CU+5m$StQd z2#jE=g4iq~o=G?(q>H)O0=+be0Ro+juVvkvainq-6P;h4_$GgESAuxW_*=AfSyqg9 zi)bop-1U`fkTOy(uUY_AzT?kxpy;+XeOv#p@B<E-Nx3@6oYQ z<`;qUA&=6s+jn%{+t06f_M1jdI`vapqKasO7tyw^W+L{ZI?A{IFHvP=Z)PTh(?s4EQ)B`k`me{GND1^{4Qv z5UTrK$wy9-vx4U(QF%Jk5=S=hhsSR8wI;}v9Z^HBa~ov-wa^eL+n*JT%RkumoJvYq z0k+{e)G7l4{)CHf8Y3Msj)_@GQO4PPfmk5EF8mS#GdDL5n2qon7e%6Xe7U zAu`g;oY7eUtGc^`VppG?y9$(?(HCV{Q8=XfOT1FU$k;s|)463~+k|h^kG`t)Qyvp8 zEod3fc6ZTyBHJ%PL4x?u;n#c zKmj_xsJgXD`E+_5M>&D|b1}JO;cy^NfV-&#<~5TliMDL4?-+;b=_45JWNj-y>a5%D z%g8dbUI06@f;pGMnoco)fMDPSTO3eFT^Dnp{{#=`32-@GCjP1122N@7wPJJVsqB-? zm+d#mn!SZ;2IF=bs{=>@C)+a1ciuMOJwc#LxkGzNxna#Da~XCEX0ON_>k}UNW#^ko zV+WF>3F|;mD}2=3Y7J!hJ`=sBR$)kQQDOM#nsHI0q3TQs=6BoHvt{FQ*>OT7Xa#rE zHbsx+XCs8Ke@Is)x5gL8g$#KPd4V5wV$UC}#oEyO%mG8PkVC}84Q^Mx-UhJFwx0Ca zWAr{WP7I{ODR9p8)f56f*pQPPH@J<1PHT2YH)qUHEt})FaDnwCofpr-DlZF;g^V$8 z=6z1VSV<#6?g!7+5Z}h>_N&oo7r`N+lf39H`*^|FTD3+GG^ZKjEoDDH<~lqB42uo4 zc&XZODJ~`%u0{vZ_o(?aOMrYOX^3JEZkUrd*=_6ByYW6Qu-{y%i>bgyZstvoi}KU+ z!x^U`G-{KqXX{C zBhyHxx%)#dt((6?aTC?H+7I+=Er^gR?}r>9WO9y}Lef^V5C!_W%)wLtIXf(Df>tVN zbW*s{%r!(CDbwyNz&#toJsUtD8yc7ViY~>T`^#BDO+4pV0IB@a50C{+^~Rd%9|=H_ z&UnrE+v}Eqzi@`q{YkZ>X#iNE_YtrKmO<}s1Uj3P3g(F$z2Y3GL#e!8LygDD#)-idtcM?y5F3_)8(l#HsAX_rpe2( z?szG&RBO?ugh4X4R#s(CVW*i6FrmR4y+0>_58l~;b!<30XV_m;`@J>$O~NK|yBd@X z8{0WN%58=e7$$UgZ;)f%cPgc_lcIHF2@=@u=oJ8w5{T|ZW&T9ny-Ej!dltgURP95Y zT90{4Q#*X=Wo72fqUHF4J0v7}#5N~uz_L8PDfZc&gEdwK`U!=H-zXE9o}g`3_6lu& zQ1Dr~$DY*^#cFSCJ4UkdY*BZbZ||rR+Xq{)%$pGrsA!rj`}i4Pn6+nUY69_>%?e`t1e04wt_5JDgxF4 zK+S-n7%+03mv3~6dxLY#lhDps8gD(`L(0jSB!Q82hc6f01R050DbOSX(gv`0V#LeQ zm-trYOeabDGi=K#47deHT~&cSMnhRbzKb?AwRUuBy*o2%s7C8j0mV{A<0q@`qwqx9 zr~yX0<5+HuJi~Y{2d$3o^(`xCt>)ogOH|3zXNKcnbk488aAqKL=qTE+Ci4Iv1fDG% za}EjM=?1EWxAOEMg^^eRe1y|`m9cL|CeG_Q@@n#+2;DoW*JBcWv>Bpp=&UH3_$Dhu zwq^?)7{`g|Dh%YZXC)_hUCN-$jEJJ!(^;>6tJ103k%dFnoTdzVLat}!B(fr1+8wB< z(^pp$IC;uZIEUroin`B&URKFRzGtX{#8h|=LM&GzwPHsd0L7sU`$nlSrHywSAsEQL z;_9dQG0&RgX9eRGT+F3CbB|Fj5aO{>uaRzio}*YWc7c=u;hZ4#ut_9{s}kjcB^{tC z@z2hbezfyKRf+p*4c9(x6M&vP7=4WKxQyAA=^2ovf6SDsmwCRHxe@%I)5MA{P0v32nE*AVbC#kt*qlZ%6HQ0pw zz5Npr`5h2J7068yhE;X45z{ve&w{qKr}}mh$P)U4lCqQO_ix*IXXUd4GTsoz@`SN0 zufvyGext}oO*@^ID5W#gJ?!bOuAIibI7z53LYv2UI+!~w(v#hSb`&zK4EEjltIUit&Yku!a z6=;n9ruPZkV%~*wPvxmTtH``p>fgM!Cz?6g+)7U!4kS#Lc|N8YdDe69qU$ck8a673{6J1bU=7~c6d@t(A(bxMt#bf+T40aJZ6bn^eg}QEG@a*5tR^4~ zeXu1s5Eed|liofNdO0>@KlWH~Qjj>gIzX0|3^S#q9&`s9MzR(uS-&vkoc6t74*&Ci{cDsFh}7XmbXtdw?&O0H8#c) zBjTHBLa^uE#1o~bl8#8t z)}HIx>j4i(yZ$n|Po;z)?jqPNxg#`*56_l>lF{%cGoELm75`Cy^ejM6%Z}VZR`Yc$emF*S<2h-wQ`T{t$JTqzfL*X@>+@3}-}CHk1>YE2hCFk&cRu z6`0#qZk)*SNRT4UQ^KIBB;zK7oq!kIND@)%#id`~s+yerT+DN#>h@f;W>C6;FFIbo zZzJ!CIvsl!fr<(D$)WCvdLt===Ig<_yk<^THll>|u?NboQy_=PT<1XnQz1NBu^mBN zU2`jMp&i(I#pcZ-tZM6CUMDxb!yTFS?Uonyty^#9@)db?eV1JeKQZll{79kj@YNgN zwnNHIJs;~MmlN(Yj*ZP7nYg<^v6gf;$PmYPD3cFCid2o;mD~nfZKD1$B31uFCen%4 zQjDQE{)|UAJL_c_TrKwxw27YW_$h1;*u=9&ktL(IBQgw3iCW>x44mfqjLc2_DQZ5$Sppx^vW}}_(BTK8N$+QY{(2`r=Gx#7h_o;<7eeqi zr6&7Fifa8MMLYjYOcv&t{|FX){RsBtum;X=3u{P*@( z@ayjw7-ttzE`AP|ljI)}yhHg5)q=Bw~`>wMY ze4+M#Nj`k6{H2-l4b6Ev3+X39ScSYct7?IZs(21@JgniZPG4M9#xjzSo5;%}U8Y5% zb(H5KnT77RW*+Y=)zn5S@HblJrN{PSdD!XBSkw1X|FjZE0!d3z!3%es7<{^QVYv6xk4cy zmIeuIn%Il(wOA<@9owO|AGx2>MQ@b67$*M`!BwoQ<9}irw3xg5v_XQuRWw`QV5WRw z9xo%~rhT+1enI%-!Z$aM1Y4gYlZ|lerG^UT;{8>a$k=tKc_7toJG9p_yULNL z_++TBEX2MgQQWrmCnXb7drsie*)4o#v8TyP(b(!I!|UEqpAtn8C&{A|?RxxfUm}Wb z0-?#76lGC=-4}7sb0a6zjh~<^^lMmvvfuHI4gB4{4EQO6f_Eg`WU`tH4uW=TUv+Va z^0>Uwtp#@_I{$TFwO#u(T(tv2@^+i(w1;U8Kc90wxPx6l`ss!WM5rkO@}+qbr4@|& zn$#dsS_eHD^HmlaWAWDi{;&;X^*`VYA^g ze-|2qC8U-^GzuZ4~+ zQ|W#V6*Kce5p}^iDc<}TF7uJO@;0u)LShwFILL5(IAfEqI)w7E27^ z({Lp-VRdx3V;olY*(fi_w(|fieO0RPWNEZ%tvV1HA}=R0Tx`@9Xu5>EuPE0bjZ~%w zn;9p20XegFyH3=m6z*Oj4N=*CuFvP^L|YhL$||_Z-cY}(vo$d6vGiLH+A3HuG2!^~ z+I76ZPs-AUkj6uzMu9nJ^;I}wrm+yZ@&cq-3Qz6M(1iA#hbX8rECTp!5L=@y!ldvq zst2Fq@6SHHtYgORN*lQ91q(tVrBIBxOYp1tG?| zXxv&edtqhQ;E9c*4xjuP`9s^YJ`&k{X={9KQaCyU>Eyum=W}kpqwbZiI0syr@dgr$UIq_5R-a#Z}H?@?LAD*ZL|P@4=r7T2C-?t4Euv% z`M!ZZ21{qFb)1%u+ar2R&DRD&_b6_*ZrgClPP`xG(#4R>y&O|vedA`(b}p^Lu$@vU z!lge<_mF*t)})L(4R^A+*WsZ-ocR^+NHpmvO>$5J663`Mvj5>?2f1zPB%PdFL?5kj z?|74%aAbwO=rI24M=Jlvk5(~?=XF9he@Yy-)w z8H=(CAq%zdzpa!{1LoW3eJn=w{nbLD1f3U(+UtJhdY_HYvdsOIC%ah7D_(D#KWwh>XQuc*Qz(R&a0!j#bg^ON2)M%kH1Z z{YP@X3gvDX{%94IObNPqB;SyuqVna4mC>bax8!iM|eLh0aO8@VSi zV>N8J$a^RnEKALe?!Wp)f`6eRU{DAq@`|Sk?wSZTA4pmfw~D!0Rw>$#xqRkJ*~%<` zSGQmSR%-|R`-ZQKZS!1m3v7IW;LVKwzdjf(^S%g&WP}HWLo#_Ere%N)H4y&C1v}sz zu7A5hUcKJNw1mecLYW&flc4-in8jQ%+(`zCh6$RjE?zOgcZv3{4fo;D=TMrzlI!mh zeeSkDS@OU8`&vPI?h4;SgJ9oJg^7{LrKFqy;LhLr zkKbJe#vwrr=KZ4m%eZO)yKxpEz-Ie|0Qv^X?K|{{>14q7CI=LI;vYDKB$14c!D8k( zg*9+tiok9!@Y$K1jWqixdInqvnh4`?u8&l%)-)r8b@bd&&_F%tq+b5bYwaG%TFTC= zeb$^{D$g?OHiNf`mgt?xWdK<`@HOUp zd69iQUvJs|%f4nQHH4xYpbvk=gxQsLE+1RVBvk-o-7bq#fGn$9ps$Ehr2%vQ%<8=t zUDl@?=G{gsy{ADOp3Gj?%pn8p(xX(QZ|y$}E3W2yRmhP`*@l&`YH3C<6X(E!o1fA(TCk2Yzrc;5UO^?ywiQ(p% z&7i7mOwYLy?6q*XlxF;??uvG#C0#U*1M0HIV+R^bXZtEyQr&pRUYVmsK^;(-VasQc9igAHp0^PD_Ak^r?f!~;$CdtcL4exmp!BN?Q~iQ zta$n~MTxXi0c%o~jzZtEP!wm=uu-ox<#E;Ui_`=X>AfW9Zl~{5VDE`=$C+g?1jc#S z5xw4VBkYp~Bda&1{Fg32a$z~c+|81Pd%Ci3_CRetO!NzK7^l5gW^cme>S`C+bfIpw zxvLmX2^(}i3JxK<0=nOoE=6FdvZRmU9%XN-{M3GzY%(G4rs7{%2wyfAU(}e(&Rl7U zFwPNp8A1=+pvJ?>ZIBOE8XrSLl+RuWRbEchG~~MX_+asJD+yZNbO4rJwuEzip@-LI z_LdD3S606nz7F#r2Je`d+Y3Cu49bgj%9|r*JJs;h3)ATzz=yn+ceClOfT>GdN!*Y` zm#elQGMWjuVMxDM(%9pYlr=|<Nm4_tqleytsl!yE+14u9_WR2Fr}r~#>ITd^o|?-f}HSDBEP6# ziMAy@zv?uLTND;Gm{~5>ICj8W7uk2u$w}w-6{`K`4N*Vq*RaJ95a*L1`5)$A%qdt} z0+P+B(s{y+cQasqQZ8^X0{tFCVB_yfX%X1+Fdppv)9;x7F0bIDHc+WQ_Jx>unEKT? zTkq8~;1C_~Hg-$S?-IsKt}GRk->3+oa~|@zf3G6(5T7vEK#_|_4fRD%ndsgD8k>RU z`^7Qe9(PKjV)b=PnVT#Hznw2_jqFE!{3x^^%vofIAQpWByW06qh5@we6p8B_JYW-r z=8PnSma;k9myz4RT3XQ=L-t|#P%8Di_X_;RE|AMxUZ-j%(&{H*(j%c`>GyFA_ zRkn3!=3!!IqXSgI10CJ?39hH*nK(Lf#N8SdM_i5jAjb;ed~EJCo>R&saN&RW5si2B zryr90n^z%;+{a|tr-j^gudQ1liPjkRKM3xoWEWZUO^w8eVoNT+LH19~siyme#9*}_ zUArWzcqQ3E&fTq2XUNNLo6XH-^+;;|y3$lBlw&@wB{Br81tOVatw>d&IxCCVykeFU zk@Z(RP@VS%rpkVtdI@UX3?aiu&(aPL=o7D#72`vsr08Q_o>Yi_ncc|Kt)_X}JBMkY;DB*w{gMQF+W$mlhDV6Ze zy2eGSE8;3DLGseR!CX&i!*{#u56{;rX}RTHKl+}_7m?B(cPZst4#s+Cmy|i#cGs7k z9cCTP&_<$9`j&@|XKt#OW?j(9lq1RS$VICN#D$u&wtlT(FSw z;?3l1TJ;Pm5yZGIrEVioUx4KGMqq=9Vi{Fc1Ine}9*$YuEesddkyHQ;|9x9yie75` zQw`Q&WD6C6QriFRlHWZGHvfBSs<7IaDJ)Tq9@M|LV!y3t@HX$c{BxVT^Oz*T@lR!X zqPp1F8S@C~8YtV;w+D5M5#oh1PO%!-V|-0A2D^3QxnzmEe9vr!Cl#v2VwggTj9NfR z#%kmdBzPcK;?UL{X@)gphrnesQB^F0uy(f4k>{D(ZvmAfJ6U^G$?VXR2YlIxMCjxo zuU-JqLo8#4-VFp*J#vlw_BAzMmKIZv)$2mqmNT7>{lya+L~7aDyyJ=UBKfu0;Y=ag z=BISYbPfGN566!xTI52aK6X4tIx;G*(3odRA|`H-At{X)T$*#-G}MfIJ=ZCNiL&P> zWtb75|9D;SxeRLg^RE@i6>vc0Ff#DSd$X!waelxSGrkLF7Tfhbh3me7e`)!=4P()& z-P4ky_Tkft2=3K$Mjs?wR0BTch_$g-pkpg}v+-$xeCM z%M9`EX37VK^!0Jf1f**h5(ic)`VXAzRM zu8a|PE#yG(Qft3#a{V>8Y$^2?=VV!*xub}EtAlz+ZzU>aOq8sP&Lt}f!mGl4b}x|M zZ?ua@<0XUe9Jx)gN^Au%;%^sh7}E2`Sa&8jHcUpWP8y4sLY#YmDc*_5HF7GI*wyyo zSDRVxwELWb2<3GA+<`>WcJ2txE&43F)G3Ue77|XfC&hdASq&E&mXT&@DR4ISdt@(b z;==m(&uPjZB@;Zw+*ACFL?tlftuX-jN?A8A#93Qm7{=)G!g3D!oNArGMKglDv4%~XMt&KMQoHF{Wq5ay@`&S?WX%LE{jziVlq9wANcQb=7kk+Stpm91ZmK%iq$=9U$htqj^eADv_8jrG2kHYc-mV{m>q^?6%S|pRT+{h6J(bkX6F{P9_FKh74rd6&7Q(d4uzPgQ3Cs z`SsJ5B$Dzx^G_jU@t(v28@XmKQFKS#o6(Jk8EGeFH{Po3<(!nCL#{(!=;q!IhfLpm zg#ch4&xgK4eV47bib=Yfxl!N4X?@vo+Q_i$rnkR=0RO;{8As&zK~gw4*1PHUpWTFMW^R>e4Mr8$#O$?OB5zun8HE0>d4k zE-3DoE3gkIt=t61cdM7L+Tt!+_hq!v0i#Tyi?9vxg6%j`cbNJAkyWFYsZbaP;Q|T zaz!B74=7njn1?wX_J^CF_$@DetZ3gpZ)VPN$v>;w3~d+L6y3ftaq?e%pN^)Xl>#)8 z*BJIuALrs(q`=X7$Az9n`nU3;%Iom<}K{A{m z6!GZek14?-{IG8m<=iclaKv$<0tz3s_XmvdAp}rb=qJY=!vhGQB=7(Yki{>`gA%S! z1a-W7M**Aa#C-@h2~ilb275<8_D_JgN)CZRepp{8BR&Gi=d7M~$Lg#;o(};5R~fMX z3QY2_7X3ISWwi{rBbtL7`9g`{^+Zs-|8+c!e;W_R`I!-Zs}04#kQKhM2GGGNNMOJ^ ze97*1;^F-}pY-3M7Fgev8o(?$ncD!u^>?une5zeV>>Jk%DTNG3;f4Ri4EnQ>HREuh zc-tix{hCeMdu;c!8`~>P4JOZpttW-wEv=IjJuB740ZPEz*#8vA}s~FG@I>< znrPQw*o-#`HoVo;TtY?6Dl4~miJUMrAJ2hISJ7vQ<*i^S3`<{of30LVW{%Z-j|d`W zPEk01Ir*xG3wOH*SeK2|3})&;rJ7O-6Y@;!{ZS%x2`P^kT!W4CPD(_q7oiG%`=-s1 zKQ}1iWSDRd!HiQ>?sTJhPM0PHckK%qQwL(2kCr`wEZ!z!$gsclfs;_ANnBh4Y7cRj z6w6-Jd|H68#?h`5sO1R_?m6bv52JA{MLn;n4?WmHoAdYrEbCxy02?}+dYZuxk0!%k7qX*Bf_~s%}^se@1_!dwrCVkzr#c&X8k@!ZKw7b zc|3O#y6En!_RTnRpY6xqwjzxJ^C!XnS&!zL?V8ebS1dp4u@u!y7#zaroIFVqSjtNc zF2S8={UqG+p0l0ZfTlP`Rbjg+sS>X3RAkjZ!BiD|8uMxWe8Uo#??cY3bY&bJT5;H*S#%HWZskcJ?x%PnFPVN8|<4&=WD! zT=i!85l#gEB{)wdT z+EuQcLdd5SPe0bzNG~s~Wet3l{BkyaA9C{ci}UX>LfyZ7Q|}bQ>5;T_P$tCZ9&+T6 z0@MS!O%L_0zO(!uO6J+|moxld_-|QXfce)kh~tN9k`d8AeQLUdHPE$VF&4BJ7&GE; z)|1;`jg|Xg_%ybj7#|p)5^2`vm$n7?tvq;-L%V;zRurB(m;I3HwN+jc$cBuYeI1X` zuPU_Xqlnar8-JD9lGEHo52N>(@CUTSj!%sjIc@`2s3}ctDDfUU%&Y<>VTcpm*RH~% z18zue{9CuF;c6(Kpaj>&SP8aF1dW%5i1>kmZ(oy(potP!?U=cn9H;fMlEHY{N^@Ie z`S{7;;_;I;OwEnA%2YERf_G`hs7=)IW3jQZDxTx^upNm#6|k@KS(TXXa&x>-`Z96U zxn_^|31;KS3p0HkOV;8hxnw(Q`lE zx)Kj}?NZ&V*SP2!=_CW~ibN{|8#08Jd+7EJX!QKaJKv@OYY9-&QHdDCF zC8irV;kBXhmYiCG?IjFVkI+Ber_ZE0x_E3SQsa2-MCINK8#s&HSo zxC7fUU+z>Je$f=h*c?Z%5ggn=rv=7#Kr*BkHQX%xq4OSFZ;GepdUu!+4C0Df2W3wr z>LU;P2m#z70TB2k>^)cL1RS{}KX9dj5{hO==cWUu z-DMJm60&D>{6*NTm{Z3h%++;@<*{%oFDi}!RgO;A^k+q%p5$^ojxWYkzSHnv_hzm8 zeC?7y)txyeIidLR(yTM8=KT)IP_^{Kr|$S-$jT0O^tUXPumWn4;k%)vcLEg~cw;>R z&kPL{p-Fp7&w$<={?>F}z-imNCxg<<8j^u#V@Yv$949rU&1z zwXn8t!l=0Vp>4IrnMw@CDaBY@pR{uO3O>TjIs3!|0lU{`S1bH}K7!Gl#r30%(?okz zrdK)6lxMW_RMx}%#JPevqsuyd{nsAQDP8lB1Nhj%8-*U>KVJKH=>ZsbK^WS$!%7I^ z_ERbZ=L0?@KMRxsA@k%T@)H}B9_?3popkStZ0iq}n8SbgD^@{*BPW41ba!gUuB8H;tl78}`2 zjAQX0BdixKS>6!wz$KI`b(HfgHk;0SysI72Y+kUABHPU#j1bc- zG8T>fE|zlX7g+L(F=_=uFtOg3%D0G|sskH4>N+YT7uhrRM+;NS4UnlQgX_Udz?pub zpr=j+TdpR7F4|qa)z!@TcSUQWpLj_}6kXrmt~^{leTSU7H+svuqAZX+8?)x2XH;R% zL3xB`53f%U{;X-Qx|^-GSa#f4VM$!3Lu}!R3e~ATGM6>AfO?T3P1h{WH4pOm_;VLb zvq0{`DcuLR?AS84B_)mJr65*34Djj%%4|E_K0n|5x`fhqn4XiE35Ge!%42Iv6tad7 zwAa*VZ}XRNdwEA|2DL~Teiq%GGA+JJPVA+%Uz)|vHRx{Rtji@#M)7&5-Z1d2h)8KF z>E1Bod7^EqP-4~5+Ux!nsAxJ^o+v91%!qd1dDTVKP&1roS&%g)l>|>b62DN z9+#VLSn5%}!zUKSc%U5pt-DS-R?z145Y|!*h`hYSVR7%|(dAnWR%YJ4A3L4jbZXq} zDS`7P3I@6BoDrsx1sX@*egW_k)p}{b*wR?KQd`DcR)-B*Zmzh(4fbiQ+)nhbRa_#M?7R4TXM@H8l%w0t@|faV0F| zT=Wv}WNFoFx{_Sywrl6b;*8J7wkQjZ;~5fzut!T(os^m*fd(MaN2hE{7Bg$eFox@R zt{~$t%iu@22#i{R(GPG17A1cJ8xZ^&xd@rbr-+fmA~LKQpO}lG4JY~wF6Up!#cN2$ zLMSx?&x4}6T#W$A@E7DN6D@W2yCS$~>ctOXaJnK#0VEC)7+?Pful#+Z@iX|ur7*6I zb=2U-d-Z|N_I0X77KYUUEo)%axU^u|CDC>^T{-Vg(>9Xet)ThUdlNVL0|HS7uPvA= zTTQa3tQGMqX%i(Fl8DyTJeGZFZQnk9_s)m}OnY#l>Lmy>{`e*CBlmoQTR_NUJs(yy zFsXW{l4omqNjd(~(jjcDV8J{h>X?N^0%O@|G>dHT5kcTU439U*;C;Q2b;E8-%H@tu5pk4fgTpl+E zg1eHC6mKX%)vsbEzJ$9jWNbw6%;xqm{-+n+791(JDONV__2wQj7deHuz@qL0`|;Sz zh7?K>BPK(APXqzn?(vFc^uZ_w$A!B+`(@4p-4q*d*E;rFuNySSP8lae%VkilQlq~& z;^s(J#(&NJqO8%*(ZB|1UQC^k3h^cjOyD2FGZ!eB*!Gin_HIPOlldXO&fPY>$tF6O zMw0)hmOK63&$Nkjm4U%xbG-C8)_)@PKQKJKztx%ZwSLgFG(jb%}*DE~2gS)ZC0HI_V2!v^k*7hQsP3$G6fHm;83 zm^$Gm?Tb!Y1#{b2pUad~p$4mwnm5WB`i*7^k}&MgceUrt%uH%)k~|&&w~9-K7kU}J zH@uuRM^%_v_`SmE;R|CUz>w3Y;SKS#X`%e0G;~#Tf!UBghA%nSp2d)uV*1)x4~oOW z%*F&7LY?i~qTQP_4J`QN8*3+Y)x(9BN%g+gL%fIbcp(FmcPgrte0*a_o;sLE=T>5$ z7?Mvh)Vi{>qh~lxy?cKZ$XF)*++p>(fr@rMaMGePe6_g%6WvvU7DcXYimRo|bfq(I z_R+8c)t1qgO~Mo>)xH=(pTd%L!CvXQYk17i(^x{^gT;DsD*{d72)He?&auL(binX} zhc3^|oa$wlN32gy(^XD=i?6G$RC+161v!mZ@s4x#H}j!8Zpd|K0nz-Uv~)A`zVo_H z?SY6BbwbvRXsKJP(V?ZLW|rnJ9&wn8uzS<`9>^xTzn1iDnXqX{tqlE8Rp^h|+B@L; zRckxB>CXIN3bR-8C`VRyk8|$y?OS%wdj{uyj_4;?5Gf^zfi0h?PE-~#ytkcJ`!B}S zL_ydO%3yj(ZBimA4RD@YHaq)j8zFV8in*F&DyMJ=wwJxJb(IBz{b9I};SLa`u*x}} zpBVCi)ViQWN*%tJ8*kv!dqRCs?ys4qYO)3NPVpDv%(}b39l27fl6771mIo)iG}40+ zu~+z_bvEw=czJ4MRGaG^c%`L>&Q9)Rk@b3HJ=ZyLm8gfZ3ov?~F>}GWhpBG_L(ilt zzhSdJ$f+EdCT{A(#I|(s;&_}~H9XThTDI26AZ3d<8Fq0%sKTMlNht0Sy&6{F1k?JpDMWqezpUTN4S@rCSIFT{f z&V6M+%l*{2t^qhTM=hmCU51CVtdaEUdLD?#j2FJ+BVoa8pG_B-D>lt_^(bOmN)IiS zh?@9{v4oGRB}O)zXMfhcP5PmqOTNQ4XnKEoj6scs+X>bf|B;WTG^Dzh4yPo>#kMZ) zTH;*Gqd>#^pA{r6MDbpSs;#oUOn$&hP8ZD(RAfGjddH(Dx7bM>w8@%iV8`uVBdS8Z zu2nf%W;!aGbVGKe0cVJuXR0ivbHO-XKc>;5Dw3tbI$m}{%6y>*j2-^Ui_sa^H~OQ3 zwHKowgN%`aRw3p^LXcqoQZ-)cKfIF2%)21(439J@Wj!x)g19wHPB8GDx?&jm16jC* z04^8+EVx5&P78ekloteZf?yt9!dkkY;O+0W{=qz^6gd@JDuK1P9-eOKH7HKxp4+l~w@N6t#}^_>ZQeSL*4R9J2*;;-#y4{O(1+-p#bf zE97i?a_<2$mZ(B{(q$wZ%%(8xR%R!!WUZ<9WYO{WeBko(u1RFqF5#pQqono|z; zJVyfZCrPCRBK>A>bwA8N+j$2a8S5#p`6C38C&-KRmD~wyK*EMe@kLwv!KN2eVHeDhod)zt51C!2{emE-aw&W#Xr(=>|>2-E}c7e_Ngjh+cdqU{G`t357J$;)mO=;nqQ z02$8s!7`qv54~q5WoywB4V5LNtr9h?u5mgJvLbse<2j7$w7gLo&aOaYOmo4P(gBJN z!)n3j5^>>6VEDoR^U9P$LLw~AfGqwBqvNLt#jL7*TDFlP^fE1cdVOwU>7d0!8K<(A zYz49BQkR*iq9B8qW&)~dgRAV5RWU6>%DKuRY_Drm9BB9TZQr}y*64q2b3BAq!GlsG zbA)jPtP~1<5Q@YQ-+<_ET9B$vz3s9r=4mFW!e`!+eVSatnyVJ&z)uAj&GwUnN~DB^6E}pa^pR4&>Al(xY!55zXg3-0uvupCM#RIFJX}1pnqIu2~4ue zy&t7$cNBfp<966VVD*_KDhwMIk-XR`_Kq0GX0Ps;NmFZ6J#nVo)>>UlWlDkq#3@d{ z^d;1yIu9_^wmP1>6MO%F_|koa*ASVPv=^KurL(#8`c~q5)Ahv*t#bR5CA>?0RQUH^ zW5?W^$lcZ$DJ$j?V!5wW^*K&?P#ds`i;Ou^UNzaIZC%IzirdOR^_!?aWS zFEQsn!$6yl$Ie{IHhWHapWiQ%c0WWbvs{MCztn<=UAEb<{xPv?Nmp-2=qd=(*_%Vimu@N4-ecI!L6N2@j{-zz^WPv* zSK*d|Qb7}@Z2MQ!72=TV*zkY9OV|+$Ag$a>^9NYk>1zO>0UXAA9jHi5F4^TSIv>8b1Dp9uub{w@wua< z3)#pAX|pUV)_V;AwIRy{a6p{9S2F`aDBit{-J&Q?=Ctc~ zj>l$jRBH5A?8|It*mA9Ag@j_oA@<}TQQ#%=<6ODpH{jT`zN)zI$6A8}0ZtFi<7=O+ zJmpm=+_-X2QLd`FXdLpY_O279m`)}SGpT1V4s(^<0>Jd@;4un3-QJ8C`Q({gCt z$w0NJ<&J1(+iNW=w)%=NJjAv?R$ex5eCMup4z3G0o`bQnn+zwbCk(p89CzF4C*Uu+GCp5IIEdB1t5ml<0MWFa+OqMg;!w zeUKH<3!yVng+$mx{Sn`okhuR~QxFQ(THuZoyw9nCXv>GHH|k+qNO=vAR^`hQ9Y`fY z#0H}IX+SjpUAgc3-e>=~%~fpte=w*0Ax@J)cs5WWrmL?I#?m*_*EIfw&7-X%DjS&D zL6)`4J=fq$7?Il03~PDWZjdtzN(Qk{e-!(jkFAk9m%RYggF>7(up*Wlma(G?bPiy55C&_w|C+-O0KH;>N5Cke=bDPj;$LiTz2CXqz$!zPAiCd1 z8=^%=01kju0OWLroLvzbx+c#Y8959NL;=LY{s8`iU;m_h%f;|Uv{zFhG#eP?$!0)Z-@y2+C!L%BNvR_K4YB|IUq6;dLy%{WYLR`# z)}oW>_FN7q4y-@Sdu8KL$1PvwUJNhAb-1jR+frP#UGF8k$$%cwNsA|x)Qpj|0iNf}7EW{ON3WWyyuH|k zV6R1oZgAVshD5)Yal}ue!;<^F+>o-xyOPrze?2q1I37!3xyfcRley~PLe>?o95J4w ziDk(A-u|%1P4a?UL1c-K{Ox331@G%po+{T!EFOPz@6etsx)zE4y5@$Ok4KI-Zp;H{ z{jaSh<_{SjqLF7ta4%xK!?iMetxh~6vpXhI;*)1QrS2^}YM!DJseYw=_VXwkO6vxM zXx;eTWtq+$;fAZLJc=QR1Mo2F9JZ<(cFNM~+%iULO1xIK*Sq7YhE@L_7> z^0fII=}ti$QgUc6p&*e2dZ_rJh`rYBVdjQ+>@~?tPgU6V?k%BT?Oc%GO3yt**D>3S z&AXWWeB?!)uN@~Wgu#DRU~kzh6(V$)qxEiDGnqAXN~|`*UBdbqcZ0P3>h!zlhD-u?p_1^N_N}^^ff6x&L^N03>odeSao1F4Rk#DkrjRw$!s|23%IC&o`dNYh2+Rz zjNxG|ztb)}2OtQnG#ia8Qo~p#%0*p}tE0*cMO`#z6TnWEhBe~6hy!}|;{$wh$N;=8 zJQR$8c)}MGH!l{{3@X3Zx{)2sP}^dJIwf;;|5*bG)rH;wbTQogZ??{nO?_`c=I`$# zApV9uKdS!h=dTuA4lU2t^gx}|t)FdSn$dkfvhSZ!{HgGxsxFzE#IH`4&FEr=!&Eg2 z#JI|4cIE$DupUQHHHL_}w31*yI_i``tvKLLL2l&Z=*NXJ1Q2y4#w0-rW$X{t%Fh|j zfY^Mr5!DrC)W;=`eGoI}zDEYB(e;lzm0RKs%MDm$!h7?qGVFTl;cNcaKH%SIJg= zz3_b3WWGyI%OjFItB}qV&;%-7`bWyV+7eu)BbIn<`PQP~tsRQ4fY!IPDV^p)xM*!DY3i!?_RyLVglA>ATl&eW z;gFGs@*1X5nN%5^^Yav|Dp^$_$?kGb^ybHmO_Lu?umZr>8_rzM^=tf3g2h=3-qqBF zT=9FRewk>dI8}%NxZzi<-PFVNvYW*~f=dglG)mFV|K7P;e54>fm@4!v6Zg&{s_cHj zsh(rch3SRX!4D}Uh>lvZNhs)TZ$mFC0X}?g<*BFGeRI)$U-=y^Q8!4#ud9Vox95_G zn`#q4g1JHDsWXh6q=L#+56gBzfj=qfu?NB>zp~T8x1FqHIx4rp{1Y%aRvW72V0)c# zx2b4NEtWvA=FP)?RgaO##C~PAdxOdbn`7(p)Cn)m99-yf=V?8S-qBkNrC7Ax%ksSy ziL#u`XPZ#x5O{&VA~M&o#8<9dVG4OuH2+By78Wa{eg{zS+Zz=zj|^_xkM8t6^;9J~ z1(VqC0;Z63@oiQkhj=5B@>Q-&Q!-ka**N8HHhWt+Nk-ki-FOVWhDi^bdjc{XBE;ur z-?<=)v8==wo`6t`rh9=dJG|#>q|Q&?^|RTcFW*;?Xj@MY_!OOK*BD2evty_iN~nO9 z($d=eF%7Vo%#RK-v=4t>(I*xiDG$kbdnHF6@5gsE(`N%GqdM|LaJyT%@kAJx^*3gK zP0CFJ4hWs|b$IYCW|Tp?WW;FZrG+uKa_0S8mC44ZZYt_TZ*j}5wLP@a56U(leyn(5>>al^9`FGB7Kk^^<+G z3tB!kaDr4jL`*-0cy1cTGYE7jQ><7A1I3MOB_;;HyT0VWMnmAH5r zmrN;p)v@2%wiCeYfw-<><7K?AaDuFgvL93K&!#`thaoHiOvBte459@n)(nRh>Lan~Ken-9>4u(hLc-R>2ZG zobnjm`~kH3-tcrix*Wy;qiaC9y4#UXgi{ZY@&fMINIT6&kKw4Uz1;fgv(`4>vW|K7lPWSa zqT6Ps{T%~DNDP4ny@oC>+3mZ7UAWxzn-{955s;kU_p9&!XLLvX$ZC)@3ed-ZquzxR z(99_{T5t+Vt=!c{I}rqvV%R}jLxcWC>pr+k+Ck`y$dmg2-zf(EZ#MqlXdC!{X`cT! z6j%u}hYy!mKqL^L$NAR-3+k@LYU*!vVdGKFbRdB)7bhZ;F#Lol^+l;8>V+Vdzv|Gn zXo16G?Hj{4s@N{kJ?Vut$WGif|KKkOFZ0ItioMBda64|Tb0wIO;qEe zH95&5!>i>K7L{ELNPNJ@8`SxXD#eOzEd}QD9Mi(TrOh^#YF4KScO95Wm~AG0!conuM z>=uIxAnKjCN3_Ftalp}r0(Z3^6@z&$!LBvPs;ohZ#~T>tKxnZ#16l`-k;w*U;tT{SB>k+G!Avb>6TdBW)mgwIFQGWl$bJ(UG zUAx@-esEk@Yh4epw*-H(i9;8s?qAA4>4fc(O))QcmxYU+Ev%BNM6N#E0Xhjqb~!*r zfCrVTcnQg3Q9TB?6!MKUb}^E6Z$$R6ye45sLAalTF==3;0=y5Xxq=37iDeNg0W$SH z9h6&fZt4+WC)|DwM$w13T%RMKNjSLN5nOy=uMPK z*X1d>L{F3Z!8U&cxPQdC>)FGhDrmqTxdxR0-HP*{B2U*wpG6$3E&7|eI1J832s+lf zy)BAxcnTS+FTw1^jzhHN3KoGw!T;l$!1ry{{{*qxIvCI}Bk&p|-|AJ>`(f{lhX zv%6)nAwE4ABypIDKc!u&{{kaqd@;`;j8NF|pr zU{CjuT$~E#)G^)Q4ZYUf)@9+}=f&?GD*=iNUwuxixIrwS^^6fcHU0H88T4kNL0V`b zPfsx9jfmUy?V4Dzgo2E;y7;^6VMCv|oV%i2+n9-cyR{iCqV5N6y~?=XemcG}vj^_NHwRQ?!QOCW?;~ zMlpH22IS${(rDPb-@kWad?MY_Fgvy~1Plgqj6Srw1OZ|tSO^pCI^|ccH!>Ny%?Ex7 zzDNly48}&S@8x*rhloK19j05TPB@=ItlZ0~ldrWG_ z_U}>Pi{VEHNsa(vUKS=M=4iMtWLniAWl9c?o0lG(43OZfFhztmd-zkI7kkp0gjn2q zjZ+tl^$E}vO23eCKxdAa{031r0Rrk)EXsoO&<+_gHc%%L65sht^Z7`Kf5bvNFUHKFIMnM@~@u-W=u8N^n{XwG=pyh;i8m63y#O;5Ra&$0p2 zhgBd8x$Q<%xjq*R%dTY=U0Lw!!tF$N<7O5$s)L|okF^k|c#PSJ)73{3Y~}LG%4Zc!bVuxurIIM}K ziLIb&lx67KNJ`_O=DE+fS|@ipzPu;BUoz71twbm}`xAqAC6V*uyaSaGwW~z;bR@5GEk3kmcP0n#W1a6o z#|bU6_z6^$AHBW-7rl;b86Lo(bE1bDkx+c(D2j*|qqQ%00?7;8n^W7D{Ua%Pj2}t3 z91fKkA@ts}6LG!~)dF9∾p4&%L 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 literal 0 HcmV?d00001 diff --git a/dev/linux-cpu/videos/sharp_basic/frame_003.jpg b/dev/linux-cpu/videos/sharp_basic/frame_003.jpg new file mode 100644 index 0000000000000000000000000000000000000000..232f96e355f5b2262a5721b578b8edbab8e9e19d GIT binary patch literal 112436 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

$xso>34ipO+&34`Ltv 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

ErK#HMN5t(F0c+$hahaYKZ7ws=<)(6gL~hR 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 oLL=vWw?$t(Bg;tRV#gZsJXD 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 LN|Qhb`TsWoGVP%M delta 1538 zcmeBu$kzXmtzipe;0hOM-j&lLldQM9aUSBC+{7+warx7x`Gy_6b3Hi^+%i6I`)b2Z ztu;Iz2am~^)#VjWJ|8vZ{t3UwGO3NKe*C8=_F4X`T);K?p|67I1z*`0CJbo}nVGB% zioXv{nWtf25inhD6{Dmq%f(r|x(o^?>9bg6Uofb589To8cHot-xb&>?d+)SZMkUdV zv%2bQ86+2*R0UmN4u97b^V#X|#mSAn5|iinaSAYe^!Bg{V4RmJ{qEBDh5O!4-r}bo zBJ7r7vW21HlKdV`SN8W@44jX8E&z2irS)8V?Y@*ja)F#?Cc77d@mZFO_nIBpGT5d~ z02+~@-erBEDu8j8x3AK-b5@+S60L}U6R=J>Ly2(mLMUIJeFO~=C-xZn8zLHUO za1{hrCr z1+|Y64w%llicyv0>hDFef^z~Pkx+x4- zEK2R#O&3OP)$)5`z@dDv!Q^e;J6+j(x57H-^5lek4Zad$8vNG(#g^KYf5ks7;1(9x zXja`5%2hMTWPZgzky8vBi@F$!zy4wWv?NU9;FJjmo(SH!cx_UH?klO@XUmOF*BZ`p zja}Hm@c6^)Yt!Bb@2%gvz3JYwhx0VplzkY)d&<7aX3Z602y{ioAq@`~+s*m6RaTcF zW|$F%kXrR%l&Jf-~i)N?VU#$MiPy|&(Tso623O)DaWBCfe6@VPlNS(tit zF>Ehf8F%OI-YeIQX3pI%#@koB@zTuNO54AeW9}Mc&fz^H!h3`#i=wx z|K9&)S@3^`M)#d245u`Jf-qdnC;a#RtBgerJSB@o0v#A+0{eg*!F_M_fGQX?j@O$6 zIxxxvc4;hN7D?*TU^vQ92=sgMEDm5W8ae=VfMQu0AuRzEXL!_83{)iO1~CF|0t+xX zKf-1Po8^K&pjsZdHH_lG^bIzn9^DXBX8==OpaXXo1IRUJSwK!p>IrmZkU;Valg3ez z00vfIe(Ta;^mqi9X47B>Ia}s}t4IJNiV46p4>V{8*o=BefItnAcm{O7a+e|8o+a_S zfDRYOVhG$Gj39-F2dY=FhiE;+QECS%Ng)~m_bN4lbSW^N;-`E%@chQ5>3ka)O`;h; z)tBynzy9A=J>iS{?f-2R31F(3e>ea4>;DXE-B13#_Mc(j{$E#sQQYz+|2$C4!%T4Q z+W!o-^;D;|fKgm9ulMJFhOaB9Cv0F8oxXfMqsa8S^^7L+ r3~!jNqyPQ-&+t0vp{?|1APr0?>To+i?or}SweMW;DPvKC{r{T)#foa<