From 4c80faf2d5db45bf76df3034d8b3c377e8569b04 Mon Sep 17 00:00:00 2001 From: comfy-test Date: Fri, 15 May 2026 06:30:29 +0000 Subject: [PATCH] Update dev/macos-cpu --- dev/macos-cpu/index.html | 12 +- dev/macos-cpu/logs/sharp_basic_console.log | 38 +- dev/macos-cpu/logs/sharp_basic_resources.csv | 17 +- dev/macos-cpu/logs/sharp_exif_console.log | 12 +- dev/macos-cpu/logs/sharp_exif_resources.csv | 11 +- dev/macos-cpu/results.json | 24 +- dev/macos-cpu/session.log | 580 +++++++++--------- .../videos/sharp_basic/frame_000.jpg | Bin 113289 -> 113297 bytes dev/macos-cpu/videos/sharp_exif/frame_000.jpg | Bin 116299 -> 116330 bytes 9 files changed, 348 insertions(+), 346 deletions(-) diff --git a/dev/macos-cpu/index.html b/dev/macos-cpu/index.html index 59b34f0..fbb19e0 100644 --- a/dev/macos-cpu/index.html +++ b/dev/macos-cpu/index.html @@ -924,7 +924,7 @@

PozzettiAndrea/ComfyUI-Sharp Test Results

- 2026-05-15 06:21 UTC macOS-15.7.4-arm64-arm-64bit arm + 2026-05-15 06:30 UTC macOS-15.7.4-arm64-arm-64bit-Mach-O arm
@@ -960,7 +960,7 @@ fail
- 8.02s + 9.98s
@@ -974,7 +974,7 @@ fail
- 5.17s + 5.74s
@@ -988,7 +988,7 @@
sharp_basic - 8.02s + 9.98s
Workflow validation failed @@ -999,7 +999,7 @@ graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing
sharp_exif - 5.17s + 5.74s
Workflow validation failed @@ -1067,7 +1067,7 @@ graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing }); } - const workflowData = {"sharp_basic": {"src": "", "title": "sharp_basic", "status": "fail", "duration": "8.02", "log": "Capturing execution frames: sharp_basic.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [4], sample: {\"inputs\":{\"image\":\"beach.jpg\"},\"class_type\":\"LoadImage\",\"_meta\":{\"title\":\"Load Image\"}}\n Status: FAILED\n Error: Workflow validation failed\n Details: graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [4], sample: {\"inputs\":{\"image\":\"beach.jpg\"},\"class_type\":\"LoadImage\",\"_meta\":{\"title\":\"Load Image\"}}", "hardware": {"os": "macOS-15.7.4-arm64-arm-64bit", "cpu": "arm"}}, "sharp_exif": {"src": "", "title": "sharp_exif", "status": "fail", "duration": "5.17", "log": "Capturing execution frames: sharp_exif.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [8], sample: {\"inputs\":{\"precision\":\"auto\"},\"class_type\":\"LoadSharpModel\",\"_meta\":{\"title\":\"(Down)Load SHARP Model\"}}\n Status: FAILED\n Error: Workflow validation failed\n Details: graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [8], sample: {\"inputs\":{\"precision\":\"auto\"},\"class_type\":\"LoadSharpModel\",\"_meta\":{\"title\":\"(Down)Load SHARP Model\"}}", "hardware": {"os": "macOS-15.7.4-arm64-arm-64bit", "cpu": "arm"}}}; + const workflowData = {"sharp_basic": {"src": "", "title": "sharp_basic", "status": "fail", "duration": "9.98", "log": "Capturing execution frames: sharp_basic.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [4], sample: {\"inputs\":{\"image\":\"beach.jpg\"},\"class_type\":\"LoadImage\",\"_meta\":{\"title\":\"Load Image\"}}\n Status: FAILED\n Error: Workflow validation failed\n Details: graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [4], sample: {\"inputs\":{\"image\":\"beach.jpg\"},\"class_type\":\"LoadImage\",\"_meta\":{\"title\":\"Load Image\"}}", "hardware": {"os": "macOS-15.7.4-arm64-arm-64bit-Mach-O", "cpu": "arm"}}, "sharp_exif": {"src": "", "title": "sharp_exif", "status": "fail", "duration": "5.74", "log": "Capturing execution frames: sharp_exif.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [8], sample: {\"inputs\":{\"precision\":\"auto\"},\"class_type\":\"LoadSharpModel\",\"_meta\":{\"title\":\"(Down)Load SHARP Model\"}}\n Status: FAILED\n Error: Workflow validation failed\n Details: graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [8], sample: {\"inputs\":{\"precision\":\"auto\"},\"class_type\":\"LoadSharpModel\",\"_meta\":{\"title\":\"(Down)Load SHARP Model\"}}", "hardware": {"os": "macOS-15.7.4-arm64-arm-64bit-Mach-O", "cpu": "arm"}}}; const workflowNames = Object.keys(workflowData); const videoData = {}; diff --git a/dev/macos-cpu/logs/sharp_basic_console.log b/dev/macos-cpu/logs/sharp_basic_console.log index 66f3565..598d628 100644 --- a/dev/macos-cpu/logs/sharp_basic_console.log +++ b/dev/macos-cpu/logs/sharp_basic_console.log @@ -9,6 +9,9 @@ [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] [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,28 +25,25 @@ [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] [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] [FBXAnimationViewer] Loading FBX Animation Viewer extension -[Console-log] [FBXAnimationViewer] Loading FBX Animation Viewer extension... -[Console-log] [FBXAnimationViewer] Extension registered: comfy3d.fbxanimationviewer -[Console-log] [GeomPack Multi JS] Loading mesh_preview_multi.js extension -[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 Gaussian] Loading 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] [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] [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 Multi JS] Loading mesh_preview_multi.js extension +[Console-log] [GeomPack] Loading mesh preview extension... +[Console-log] [GeomPack] Mesh preview extension registered +[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] [comfy-test] graphToPrompt: 4 nodes, missing class_type: [4], sample: {"inputs":{"image":"beach.jpg"},"class_type":"LoadImage","_meta":{"title":"Load Image"}} \ No newline at end of file diff --git a/dev/macos-cpu/logs/sharp_basic_resources.csv b/dev/macos-cpu/logs/sharp_basic_resources.csv index bd72439..1ed401a 100644 --- a/dev/macos-cpu/logs/sharp_basic_resources.csv +++ b/dev/macos-cpu/logs/sharp_basic_resources.csv @@ -1,10 +1,11 @@ # total_ram_gb=7.0 t,ram_gb,vram_gb -0.0,0.49, -1.1,0.48, -2.2,0.48, -3.3,0.45, -4.3,0.45, -5.5,0.44, -6.6,0.44, -7.7,0.44, +0.0,0.51, +1.2,0.51, +2.2,0.5, +3.4,0.51, +4.5,0.51, +5.6,0.51, +6.7,0.51, +7.9,0.51, +9.0,0.51, diff --git a/dev/macos-cpu/logs/sharp_exif_console.log b/dev/macos-cpu/logs/sharp_exif_console.log index 04d4e8a..fcf7f03 100644 --- a/dev/macos-cpu/logs/sharp_exif_console.log +++ b/dev/macos-cpu/logs/sharp_exif_console.log @@ -12,7 +12,11 @@ [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 mesh preview extension... +[Console-log] [GeomPack] Mesh preview extension registered [Console-log] [GeomPack Multi JS] Loading mesh_preview_multi.js extension +[Console-log] [GeomPack] Loading UV mesh preview extension... +[Console-log] [GeomPack] UV mesh preview extension registered [Console-log] [GeomPack Gaussian] Loading extension... [Console-log] [FBX Preview] Auto-registering for all known FBX preview node types... [Console-log] [UniRig] Loading FBX mesh preview extension... @@ -30,20 +34,16 @@ [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 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] Loading UV mesh preview extension... -[Console-log] [GeomPack] UV mesh preview extension registered [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] [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 mesh preview extension... -[Console-log] [GeomPack] 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] [comfy-test] graphToPrompt: 4 nodes, missing class_type: [8], sample: {"inputs":{"precision":"auto"},"class_type":"LoadSharpModel","_meta":{"title":"(Down)Load SHARP Model"}} \ No newline at end of file diff --git a/dev/macos-cpu/logs/sharp_exif_resources.csv b/dev/macos-cpu/logs/sharp_exif_resources.csv index 9a31746..69d1190 100644 --- a/dev/macos-cpu/logs/sharp_exif_resources.csv +++ b/dev/macos-cpu/logs/sharp_exif_resources.csv @@ -1,7 +1,8 @@ # total_ram_gb=7.0 t,ram_gb,vram_gb -0.0,0.44, -1.2,0.45, -2.2,0.45, -3.2,0.45, -4.3,0.45, +0.0,0.51, +1.1,0.51, +2.2,0.51, +3.3,0.51, +4.4,0.51, +5.5,0.51, diff --git a/dev/macos-cpu/results.json b/dev/macos-cpu/results.json index 82c91dc..6c2829e 100644 --- a/dev/macos-cpu/results.json +++ b/dev/macos-cpu/results.json @@ -1,8 +1,8 @@ { - "timestamp": "2026-05-15T06:21:30.612109+00:00", + "timestamp": "2026-05-15T06:30:06.978447+00:00", "platform": "macos", "hardware": { - "os": "macOS-15.7.4-arm64-arm-64bit", + "os": "macOS-15.7.4-arm64-arm-64bit-Mach-O", "cpu": "arm" }, "commit_hash": "03f1f97c252e89e1ad74e68b5aca94e7e23ddb70", @@ -24,37 +24,37 @@ { "name": "sharp_basic", "status": "fail", - "duration_seconds": 8.02, + "duration_seconds": 9.98, "error": "Workflow validation failed\n\nDetails:\ngraphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [4], sample: {\"inputs\":{\"image\":\"beach.jpg\"},\"class_type\":\"LoadImage\",\"_meta\":{\"title\":\"Load Image\"}}", "hardware": { - "os": "macOS-15.7.4-arm64-arm-64bit", + "os": "macOS-15.7.4-arm64-arm-64bit-Mach-O", "cpu": "arm" }, "resources": { "ram": { - "peak": 0.49, - "avg": 0.46 + "peak": 0.51, + "avg": 0.51 }, "total_ram_gb": 7.0, - "samples": 8 + "samples": 9 } }, { "name": "sharp_exif", "status": "fail", - "duration_seconds": 5.17, + "duration_seconds": 5.74, "error": "Workflow validation failed\n\nDetails:\ngraphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [8], sample: {\"inputs\":{\"precision\":\"auto\"},\"class_type\":\"LoadSharpModel\",\"_meta\":{\"title\":\"(Down)Load SHARP Model\"}}", "hardware": { - "os": "macOS-15.7.4-arm64-arm-64bit", + "os": "macOS-15.7.4-arm64-arm-64bit-Mach-O", "cpu": "arm" }, "resources": { "ram": { - "peak": 0.45, - "avg": 0.45 + "peak": 0.51, + "avg": 0.51 }, "total_ram_gb": 7.0, - "samples": 5 + "samples": 6 } } ] diff --git a/dev/macos-cpu/session.log b/dev/macos-cpu/session.log index f8a06b6..672bff3 100644 --- a/dev/macos-cpu/session.log +++ b/dev/macos-cpu/session.log @@ -1,4 +1,4 @@ -[00:00] Crash dump logging enabled: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/comfy-test-logs/Sharp-0619/dev/macos-cpu/crash_dump.log +[00:00] Crash dump logging enabled: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/comfy-test-logs/Sharp-0628/dev/macos-cpu/crash_dump.log [00:00] [00:00] [1/5] SYNTAX [00:00] ---------------------------------------- @@ -17,302 +17,302 @@ [00:00] Setting up ComfyUI... [00:00] Cloning ComfyUI (latest)... -[00:00] Running: git clone --depth 1 https://github.com/comfyanonymous/ComfyUI.git /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/ComfyUI +[00:00] Running: git clone --depth 1 https://github.com/comfyanonymous/ComfyUI.git /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI [00:01] Creating virtual environment... -[00:01] Running: /Library/Frameworks/Python.framework/Versions/3.10/bin/python -m venv /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/venv +[00:01] Running: /Library/Frameworks/Python.framework/Versions/3.13/bin/python -m venv /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/venv [00:03] Installing uv into venv... -[00:03] Running: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/venv/bin/python -m pip install uv +[00:03] Running: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/venv/bin/python -m pip install uv [00:04] Installing PyTorch... -[00:04] Running: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/venv/bin/python -m uv pip install torch torchvision torchaudio -[00:13] Installing ComfyUI requirements... -[00:13] Running: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/venv/bin/python -m uv pip install -r /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/ComfyUI/requirements.txt -[00:23] +[00:04] Running: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/venv/bin/python -m uv pip install torch torchvision torchaudio +[00:15] Installing ComfyUI requirements... +[00:15] Running: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/venv/bin/python -m uv pip install -r /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI/requirements.txt +[00:28] Installing custom node... -[00:23] Copying ComfyUI-Sharp to custom_nodes/... -[00:23] Installing node requirements... -[00:23] Running: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/venv/bin/python -m uv pip install -r /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/ComfyUI/custom_nodes/ComfyUI-Sharp/requirements.txt -[00:23] +[00:28] Copying ComfyUI-Sharp to custom_nodes/... +[00:28] Installing node requirements... +[00:28] Running: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/venv/bin/python -m uv pip install -r /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI/custom_nodes/ComfyUI-Sharp/requirements.txt +[00:28] Running install.py... -[00:23] Running: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/venv/bin/python /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/ComfyUI/custom_nodes/ComfyUI-Sharp/install.py -[00:24] -[00:24] Installing 1 node dependencies... -[00:24] Cloning ComfyUI-GeometryPack... -[00:27] Installing requirements for ComfyUI-GeometryPack... -[00:28] Running install.py for ComfyUI-GeometryPack... -[00:29] [comfy-env] _discover: scanning /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/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: /Users/runner/.ce -[00:29] [comfy-env] ComfyUI: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/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.12.0 (cpu). Looking for cuda-only wheels matching cpu/torch2.12/cp310. -[00:29] [comfy-env] WARNING: torch_pin ==2.12.0 not in TORCH_FAMILY_COMPAT; pinning torch only, leaving torchvision/torchaudio unpinned -[00:29] [comfy-env] WARNING: torch_pin ==2.12.0 not in TORCH_FAMILY_COMPAT; pinning torch only, leaving torchvision/torchaudio unpinned -[00:29] Generated /Users/runner/.ce/pixi.toml -[00:29] [comfy-env] Installing 2 environment(s): -[00:29] - geometrypack-nodes (python=host, 14 pypi deps, 1 cuda wheels) -[00:29] - sharp-nodes (python=host, 10 pypi deps) -[00:29] [comfy-env] Running `pixi install -e geometrypack-nodes -e sharp-nodes`... -[00:31] Error: × failed to solve the pypi requirements of environment 'sharp-nodes' for platform 'osx-arm64' -[00:31] ├─▶ failed to resolve pypi dependencies -[00:31] ╰─▶ Because torch==2.12.0 has no wheels with a matching platform tag (e.g., `macosx_13_0_arm64`) and you require torch==2.12.0, we can conclude that your requirements are unsatisfiable. -[00:31] hint: Wheels are available for `torch` (v2.12.0) on the following platforms: `manylinux_2_28_aarch64`, `manylinux_2_28_x86_64`, `macosx_14_0_arm64`, `win_amd64` -[00:31] Warning: ComfyUI-GeometryPack install.py failed (exit code 1) -[00:31] -[00:31] [requirements] Re-installing main package requirements... -[00:31] Installing requirements for ComfyUI-Sharp... -[00:31] [comfy-env] _discover: scanning /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/ComfyUI/custom_nodes -[00:31] [comfy-env] _discover: ComfyUI-GeometryPack -> geometrypack-nodes (custom_nodes/ComfyUI-GeometryPack/nodes/comfy-env.toml) -[00:31] [comfy-env] _discover: ComfyUI-Sharp -> sharp-nodes (custom_nodes/ComfyUI-Sharp/nodes/comfy-env.toml) -[00:31] [comfy-env] Workspace: /Users/runner/.ce -[00:31] [comfy-env] ComfyUI: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/ComfyUI -[00:31] [comfy-env] Found 2 node config(s): -[00:31] - geometrypack-nodes <- custom_nodes/ComfyUI-GeometryPack/nodes/comfy-env.toml (python=host) -[00:31] - sharp-nodes <- custom_nodes/ComfyUI-Sharp/nodes/comfy-env.toml (python=host) -[00:31] [comfy-env] Bootstrap interpreter has python 3.10 + torch 2.12.0 (cpu). Looking for cuda-only wheels matching cpu/torch2.12/cp310. -[00:31] [comfy-env] WARNING: torch_pin ==2.12.0 not in TORCH_FAMILY_COMPAT; pinning torch only, leaving torchvision/torchaudio unpinned -[00:31] [comfy-env] WARNING: torch_pin ==2.12.0 not in TORCH_FAMILY_COMPAT; pinning torch only, leaving torchvision/torchaudio unpinned -[00:31] Generated /Users/runner/.ce/pixi.toml -[00:31] [comfy-env] Installing 2 environment(s): -[00:31] - geometrypack-nodes (python=host, 14 pypi deps, 1 cuda wheels) -[00:31] - sharp-nodes (python=host, 10 pypi deps) -[00:31] [comfy-env] Running `pixi install -e geometrypack-nodes -e sharp-nodes`... -[00:32] Error: × failed to solve the pypi requirements of environment 'sharp-nodes' for platform 'osx-arm64' -[00:32] ├─▶ failed to resolve pypi dependencies -[00:32] ╰─▶ Because torch==2.12.0 has no wheels with a matching platform tag (e.g., `macosx_13_0_arm64`) and you require torch==2.12.0, we can conclude that your requirements are unsatisfiable. -[00:32] hint: Wheels are available for `torch` (v2.12.0) on the following platforms: `manylinux_2_28_aarch64`, `manylinux_2_28_x86_64`, `macosx_14_0_arm64`, `win_amd64` -[00:32] Warning: install.py failed (exit code 1), continuing... -[00:32] [!] -[00:32] [!] -[00:32] [!] stdout: -[00:32] [!] [comfy-env] Workspace: /Users/runner/.ce -[00:32] [!] Traceback (most recent call last): -[00:32] [!] File "/Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/ComfyUI/custom_nodes/ComfyUI-Sharp/install.py", line 2, in -[00:32] [!] install() -[00:32] [!] File "/Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/venv/lib/python3.10/site-packages/comfy_env/install/__init__.py", line 90, in install -[00:32] [!] install_workspace(comfyui_dir, log=log, dry_run=dry_run) -[00:32] [!] File "/Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/venv/lib/python3.10/site-packages/comfy_env/install/workspace.py", line 644, in install_workspace -[00:32] [!] raise RuntimeError( -[00:32] [!] RuntimeError: pixi install failed: -[00:32] [!] stderr: Error: × failed to solve the pypi requirements of environment 'sharp-nodes' for platform 'osx-arm64' -[00:32] [!] ├─▶ failed to resolve pypi dependencies -[00:32] [!] ╰─▶ Because torch==2.12.0 has no wheels with a matching platform tag (e.g., `macosx_13_0_arm64`) and you require torch==2.12.0, we can conclude that your requirements are unsatisfiable. -[00:32] [!] -[00:32] [!] hint: Wheels are available for `torch` (v2.12.0) on the following platforms: `manylinux_2_28_aarch64`, `manylinux_2_28_x86_64`, `macosx_14_0_arm64`, `win_amd64` -[00:32] [!] -[00:32] [!] -[00:32] [!] stdout: -[00:32] Installing 1 node dependency(ies)... -[00:32] ComfyUI-GeometryPack from PozzettiAndrea/ComfyUI-GeometryPack -[00:32] ComfyUI-GeometryPack already exists, skipping... -[00:32] Installing validation endpoint... -[00:32] Cloning PozzettiAndrea/ComfyUI-validate-endpoint... -[00:32] Running: git clone --depth 1 https://github.com/PozzettiAndrea/ComfyUI-validate-endpoint.git /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/ComfyUI/custom_nodes/ComfyUI-validate-endpoint -[00:33] [INSTALL] PASSED -[00:33] -[00:33] [3/5] REGISTRATION -[00:33] ---------------------------------------- -[00:33] +[00:28] Running: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/venv/bin/python /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI/custom_nodes/ComfyUI-Sharp/install.py +[00:29] +[00:29] Installing 1 node dependencies... +[00:29] Cloning ComfyUI-GeometryPack... +[00:31] Installing requirements for ComfyUI-GeometryPack... +[00:32] Running install.py for ComfyUI-GeometryPack... +[00:33] [comfy-env] _discover: scanning /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI/custom_nodes +[00:33] [comfy-env] _discover: ComfyUI-GeometryPack -> geometrypack-nodes (custom_nodes/ComfyUI-GeometryPack/nodes/comfy-env.toml) +[00:33] [comfy-env] _discover: ComfyUI-Sharp -> sharp-nodes (custom_nodes/ComfyUI-Sharp/nodes/comfy-env.toml) +[00:33] [comfy-env] Workspace: /Users/runner/.ce +[00:33] [comfy-env] ComfyUI: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI +[00:33] [comfy-env] Found 2 node config(s): +[00:33] - geometrypack-nodes <- custom_nodes/ComfyUI-GeometryPack/nodes/comfy-env.toml (python=host) +[00:33] - sharp-nodes <- custom_nodes/ComfyUI-Sharp/nodes/comfy-env.toml (python=host) +[00:33] [comfy-env] Bootstrap interpreter has python 3.13 + torch 2.12.0 (cpu). Looking for cuda-only wheels matching cpu/torch2.12/cp313. +[00:33] [comfy-env] WARNING: torch_pin ==2.12.0 not in TORCH_FAMILY_COMPAT; pinning torch only, leaving torchvision/torchaudio unpinned +[00:33] [comfy-env] WARNING: torch_pin ==2.12.0 not in TORCH_FAMILY_COMPAT; pinning torch only, leaving torchvision/torchaudio unpinned +[00:33] Generated /Users/runner/.ce/pixi.toml +[00:33] [comfy-env] Installing 2 environment(s): +[00:33] - geometrypack-nodes (python=host, 14 pypi deps, 1 cuda wheels) +[00:33] - sharp-nodes (python=host, 10 pypi deps) +[00:33] [comfy-env] Running `pixi install -e geometrypack-nodes -e sharp-nodes`... +[00:34] Error: × failed to solve the pypi requirements of environment 'sharp-nodes' for platform 'osx-arm64' +[00:34] ├─▶ failed to resolve pypi dependencies +[00:34] ╰─▶ Because torch==2.12.0 has no wheels with a matching platform tag (e.g., `macosx_13_0_arm64`) and you require torch==2.12.0, we can conclude that your requirements are unsatisfiable. +[00:34] hint: Wheels are available for `torch` (v2.12.0) on the following platforms: `manylinux_2_28_aarch64`, `manylinux_2_28_x86_64`, `macosx_14_0_arm64`, `win_amd64` +[00:34] Warning: ComfyUI-GeometryPack install.py failed (exit code 1) +[00:34] +[00:34] [requirements] Re-installing main package requirements... +[00:34] Installing requirements for ComfyUI-Sharp... +[00:34] [comfy-env] _discover: scanning /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI/custom_nodes +[00:34] [comfy-env] _discover: ComfyUI-GeometryPack -> geometrypack-nodes (custom_nodes/ComfyUI-GeometryPack/nodes/comfy-env.toml) +[00:34] [comfy-env] _discover: ComfyUI-Sharp -> sharp-nodes (custom_nodes/ComfyUI-Sharp/nodes/comfy-env.toml) +[00:34] [comfy-env] Workspace: /Users/runner/.ce +[00:34] [comfy-env] ComfyUI: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI +[00:34] [comfy-env] Found 2 node config(s): +[00:34] - geometrypack-nodes <- custom_nodes/ComfyUI-GeometryPack/nodes/comfy-env.toml (python=host) +[00:34] - sharp-nodes <- custom_nodes/ComfyUI-Sharp/nodes/comfy-env.toml (python=host) +[00:34] [comfy-env] Bootstrap interpreter has python 3.13 + torch 2.12.0 (cpu). Looking for cuda-only wheels matching cpu/torch2.12/cp313. +[00:34] [comfy-env] WARNING: torch_pin ==2.12.0 not in TORCH_FAMILY_COMPAT; pinning torch only, leaving torchvision/torchaudio unpinned +[00:34] [comfy-env] WARNING: torch_pin ==2.12.0 not in TORCH_FAMILY_COMPAT; pinning torch only, leaving torchvision/torchaudio unpinned +[00:34] Generated /Users/runner/.ce/pixi.toml +[00:34] [comfy-env] Installing 2 environment(s): +[00:34] - geometrypack-nodes (python=host, 14 pypi deps, 1 cuda wheels) +[00:34] - sharp-nodes (python=host, 10 pypi deps) +[00:34] [comfy-env] Running `pixi install -e geometrypack-nodes -e sharp-nodes`... +[00:36] Error: × failed to solve the pypi requirements of environment 'sharp-nodes' for platform 'osx-arm64' +[00:36] ├─▶ failed to resolve pypi dependencies +[00:36] ╰─▶ Because torch==2.12.0 has no wheels with a matching platform tag (e.g., `macosx_13_0_arm64`) and you require torch==2.12.0, we can conclude that your requirements are unsatisfiable. +[00:36] hint: Wheels are available for `torch` (v2.12.0) on the following platforms: `manylinux_2_28_aarch64`, `manylinux_2_28_x86_64`, `macosx_14_0_arm64`, `win_amd64` +[00:36] Warning: install.py failed (exit code 1), continuing... +[00:36] [!] Traceback (most recent call last): +[00:36] [!] File "/Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI/custom_nodes/ComfyUI-Sharp/install.py", line 2, in +[00:36] [!] install() +[00:36] [!] ~~~~~~~^^ +[00:36] [!] File "/Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/venv/lib/python3.13/site-packages/comfy_env/install/__init__.py", line 90, in install +[00:36] [!] install_workspace(comfyui_dir, log=log, dry_run=dry_run) +[00:36] [!] ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[00:36] [!] File "/Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/venv/lib/python3.13/site-packages/comfy_env/install/workspace.py", line 644, in install_workspace +[00:36] [!] raise RuntimeError( +[00:36] [!] f"pixi install failed:\nstderr: {result.stderr}\nstdout: {result.stdout}" +[00:36] [!] ) +[00:36] [!] RuntimeError: pixi install failed: +[00:36] [!] stderr: Error: × failed to solve the pypi requirements of environment 'sharp-nodes' for platform 'osx-arm64' +[00:36] [!] ├─▶ failed to resolve pypi dependencies +[00:36] [!] ╰─▶ Because torch==2.12.0 has no wheels with a matching platform tag (e.g., `macosx_13_0_arm64`) and you require torch==2.12.0, we can conclude that your requirements are unsatisfiable. +[00:36] [!] +[00:36] [!] hint: Wheels are available for `torch` (v2.12.0) on the following platforms: `manylinux_2_28_aarch64`, `manylinux_2_28_x86_64`, `macosx_14_0_arm64`, `win_amd64` +[00:36] [!] +[00:36] [!] +[00:36] [!] stdout: +[00:36] Installing 1 node dependency(ies)... +[00:36] ComfyUI-GeometryPack from PozzettiAndrea/ComfyUI-GeometryPack +[00:36] ComfyUI-GeometryPack already exists, skipping... +[00:36] Installing validation endpoint... +[00:36] Cloning PozzettiAndrea/ComfyUI-validate-endpoint... +[00:36] Running: git clone --depth 1 https://github.com/PozzettiAndrea/ComfyUI-validate-endpoint.git /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI/custom_nodes/ComfyUI-validate-endpoint +[00:36] [INSTALL] PASSED +[00:36] +[00:36] [3/5] REGISTRATION +[00:36] ---------------------------------------- +[00:36] [DEBUG] server=None, server_url=None, api=None -[00:33] +[00:36] Starting ComfyUI server... -[00:33] Starting ComfyUI server on port 41886... -[00:33] Starting ComfyUI server on port 41886... -[00:33] Waiting for server to be ready (timeout: 600s)... -[00:34] [ComfyUI] setup plugin alembic.autogenerate.schemas -[00:34] [ComfyUI] setup plugin alembic.autogenerate.tables -[00:34] [ComfyUI] setup plugin alembic.autogenerate.types -[00:34] [ComfyUI] setup plugin alembic.autogenerate.constraints -[00:34] [ComfyUI] setup plugin alembic.autogenerate.defaults -[00:34] [ComfyUI] setup plugin alembic.autogenerate.comments -[00:34] [ComfyUI] Could not autodetect AIMDO implementation, assuming Nvidia -[00:34] [ComfyUI] comfy-aimdo unsupported operating system: Darwin -[00:34] [ComfyUI] NOTE: comfy-aimdo currently only supports Windows and Linux -[00:34] [ComfyUI] [comfy-env] ComfyUI-Sharp: 1 isolation env(s): -[00:34] [ComfyUI] [comfy-env] nodes -> /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes -[00:34] [ComfyUI] [comfy-env] Workspace: /Users/runner/.ce -[00:34] [ComfyUI] [comfy-env] env: /Users/runner/.ce/.pixi/envs/sharp-nodes [MISSING -- run install.py] -[00:37] [ComfyUI] [comfy-env] prestartup complete -[00:37] [ComfyUI] [comfy-env] ComfyUI-GeometryPack: 1 isolation env(s): -[00:37] [ComfyUI] [comfy-env] nodes -> /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/ComfyUI/custom_nodes/ComfyUI-GeometryPack/nodes -[00:37] [ComfyUI] [comfy-env] env: /Users/runner/.ce/.pixi/envs/geometrypack-nodes [MISSING -- run install.py] -[00:37] [ComfyUI] [comfy-env] prestartup complete -[00:37] [ComfyUI] -[00:37] [ComfyUI] Prestartup times for custom nodes: -[00:37] [ComfyUI] 0.3 seconds: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/ComfyUI/custom_nodes/ComfyUI-GeometryPack -[00:37] [ComfyUI] 3.2 seconds: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/ComfyUI/custom_nodes/ComfyUI-Sharp -[00:37] [ComfyUI] -[00:37] [ComfyUI] WARNING: Potential Error in code: Torch already imported, torch should never be imported before this point. -[00:42] [ComfyUI] Found comfy_kitchen backend triton: {'available': False, 'disabled': True, 'unavailable_reason': "ImportError: No module named 'triton'", 'capabilities': []} -[00:42] [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']} -[00:42] [ComfyUI] Found comfy_kitchen backend cuda: {'available': False, 'disabled': True, 'unavailable_reason': 'Extension file not found: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/venv/lib/python3.10/site-packages/comfy_kitchen/backends/cuda/_C.abi3.so', 'capabilities': []} -[00:42] [ComfyUI] Checkpoint files will always be loaded safely. -[00:42] [ComfyUI] Total VRAM 7168 MB, total RAM 7168 MB -[00:42] [ComfyUI] pytorch version: 2.12.0 -[00:42] [ComfyUI] Mac Version (15, 7, 4) -[00:42] [ComfyUI] Set vram state to: SHARED -[00:42] [ComfyUI] Device: mps -[00:42] [ComfyUI] Using sub quadratic optimization for attention, if you have memory or speed issues try using: --use-split-cross-attention -[00:48] [ComfyUI] Python version: 3.10.11 (v3.10.11:7d4cc5aa85, Apr 4 2023, 19:05:19) [Clang 13.0.0 (clang-1300.0.29.30)] -[00:48] [ComfyUI] ComfyUI version: 0.21.1 -[00:48] [ComfyUI] comfy-aimdo version: 0.3.0 -[00:48] [ComfyUI] comfy-kitchen version: 0.2.8 -[00:48] [ComfyUI] ****** User settings have been changed to be stored on the server instead of browser storage. ****** -[00:48] [ComfyUI] ****** For multi-user setups add the --multi-user CLI argument to enable multiple user profiles. ****** -[00:48] [ComfyUI] comfyui-frontend-package version: 1.43.18 -[00:48] [ComfyUI] comfyui-workflow-templates version: 0.9.77 -[00:48] [ComfyUI] comfyui-embedded-docs version: 0.5.0 -[00:48] [ComfyUI] comfy-kitchen version: 0.2.8 -[00:48] [ComfyUI] comfy-aimdo version: 0.3.0 -[00:48] [ComfyUI] [Prompt Server] web root: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/venv/lib/python3.10/site-packages/comfyui_frontend_package/static -[00:48] [ComfyUI] Asset seeder disabled -[00:51] [ComfyUI] [comfy-env] Version: 0.3.89 -[00:51] [ComfyUI] [comfy-env] register_nodes: ComfyUI-Sharp -[00:51] [ComfyUI] [comfy-env] ComfyUI source dir: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/ComfyUI -[00:51] [ComfyUI] [comfy-env] isolation env not found at /Users/runner/.ce/.pixi/envs/sharp-nodes: pixi has not materialized `sharp-nodes`; using in-process import. Run `comfy-env install` (or your node's `install.py`) to create it. -[00:51] [ComfyUI] [comfy-env] Found 0 isolation env(s) -[00:51] [ComfyUI] [comfy-env] Importing nodes (root)... -[00:51] [ComfyUI] [comfy-env] Imported nodes root: 8 nodes -[00:51] [ComfyUI] [comfy-env] isolation env not found at /Users/runner/.ce/.pixi/envs/sharp-nodes: pixi has not materialized `sharp-nodes`; using in-process import. Run `comfy-env install` (or your node's `install.py`) to create it. -[00:51] [ComfyUI] [comfy-env] No env for nodes -- run 'comfy-env install' -[00:51] [ComfyUI] [comfy-env] Registered 8 total nodes -[00:51] [ComfyUI] loading... -[00:51] [ComfyUI] calling register_nodes -[00:51] [ComfyUI] [comfy-env] Version: 0.3.89 -[00:51] [ComfyUI] [comfy-env] register_nodes: ComfyUI-GeometryPack -[00:51] [ComfyUI] [comfy-env] ComfyUI source dir: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/ComfyUI -[00:51] [ComfyUI] [comfy-env] isolation env not found at /Users/runner/.ce/.pixi/envs/geometrypack-nodes: pixi has not materialized `geometrypack-nodes`; using in-process import. Run `comfy-env install` (or your node's `install.py`) to create it. -[00:51] [ComfyUI] [comfy-env] Found 0 isolation env(s) -[00:51] [ComfyUI] [comfy-env] Importing nodes (root)... -[00:51] [ComfyUI] [comfy-env] Failed to import nodes root: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing analysis... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.analysis: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing blender_boolean... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.blender_boolean: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing blender_io... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.blender_io: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing blender_remeshing... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.blender_remeshing: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing blender_texture_remeshing... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.blender_texture_remeshing: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing blender_uv... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.blender_uv: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing boolean... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.boolean: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing combine... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.combine: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing conversion... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.conversion: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing decimation... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.decimation: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing decimation_cgal... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.decimation_cgal: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing distance... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.distance: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing fill_holes_gpu... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.fill_holes_gpu: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing io... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.io: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing paraview... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.paraview: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing primitives... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.primitives: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing reconstruction... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.reconstruction: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing reconstruction_cgal... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.reconstruction_cgal: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing remeshing... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.remeshing: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing remeshing_cgal... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.remeshing_cgal: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing remeshing_gpu... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.remeshing_gpu: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing repair... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.repair: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing repair_cgal... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.repair_cgal: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing skeleton... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.skeleton: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing smoothing... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.smoothing: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing texture_remeshing... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.texture_remeshing: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing transforms... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.transforms: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing uv... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.uv: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing uv_gpu... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.uv_gpu: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] Importing visualization... -[00:51] [ComfyUI] [comfy-env] Failed to import .nodes.visualization: No module named 'bpy' -[00:51] [ComfyUI] [comfy-env] isolation env not found at /Users/runner/.ce/.pixi/envs/geometrypack-nodes: pixi has not materialized `geometrypack-nodes`; using in-process import. Run `comfy-env install` (or your node's `install.py`) to create it. -[00:51] [ComfyUI] [comfy-env] No env for nodes -- run 'comfy-env install' -[00:51] [ComfyUI] [comfy-env] Registered 0 total nodes -[00:51] [ComfyUI] -[00:51] [ComfyUI] Import times for custom nodes: -[00:51] [ComfyUI] 0.0 seconds: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/ComfyUI/custom_nodes/websocket_image_save.py -[00:51] [ComfyUI] 0.0 seconds: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/ComfyUI/custom_nodes/ComfyUI-validate-endpoint -[00:51] [ComfyUI] 0.1 seconds: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/ComfyUI/custom_nodes/ComfyUI-GeometryPack -[00:51] [ComfyUI] 0.3 seconds: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0619/ComfyUI/custom_nodes/ComfyUI-Sharp -[00:51] [ComfyUI] -[00:51] [ComfyUI] Context impl SQLiteImpl. -[00:51] [ComfyUI] Will assume non-transactional DDL. -[00:51] [ComfyUI] Context impl SQLiteImpl. -[00:51] [ComfyUI] Will assume non-transactional DDL. -[00:51] [ComfyUI] Running upgrade -> 0001_assets, Initial assets schema -[00:51] [ComfyUI] Revision ID: 0001_assets -[00:51] [ComfyUI] Revises: None -[00:51] [ComfyUI] Create Date: 2025-12-10 00:00:00 -[00:51] [ComfyUI] Running upgrade 0001_assets -> 0002_merge_to_asset_references, Merge AssetInfo and AssetCacheState into unified asset_references table. -[00:51] [ComfyUI] Running upgrade 0002_merge_to_asset_references -> 0003_add_metadata_job_id, Add system_metadata and job_id columns to asset_references. -[00:51] [ComfyUI] Change preview_id FK from assets.id to asset_references.id. -[00:51] [ComfyUI] Database upgraded from None to 0003_add_metadata_job_id -[00:51] [ComfyUI] Starting server -[00:51] [ComfyUI] -[00:51] [ComfyUI] To see the GUI go to: http://127.0.0.1:41886 -[00:51] Server responding, waiting for nodes to load... -[01:11] Server is ready! -[01:11] Checking for import errors in server logs... -[01:11] No import errors detected -[01:12] Found 728 registered nodes -[01:12] [REGISTRATION] PASSED -[01:12] -[01:12] [4/5] INSTANTIATION -[01:12] ---------------------------------------- -[01:12] -[DEBUG] server=, server_url=None, api= -[01:12] Testing node constructors... -[01:13] All 8 node(s) instantiated successfully! -[01:13] [INSTANTIATION] PASSED -[01:13] -[01:13] [5/5] EXECUTION -[01:13] ---------------------------------------- -[01:13] -[DEBUG] server=, server_url=None, api= -[01:13] CPU runner - will execute 2 workflow(s) -[01:13] Running 3 workflow(s) (all with videos)... -[01:13] Installing screenshot dependencies (playwright, pillow)... -[01:15] Packages installed, downloading chromium browser... -[01:27] Screenshot dependencies installed successfully -[01:27] Starting headless browser... -[01:27] macOS -- using Apple Metal GPU via ANGLE -[01:28] [1/3] SKIPPED (not in cpu list) pano.json -[01:28] Capturing execution frames: sharp_basic.json -[01:36] Frame 1 saved (frame_000.jpg, t=0.0s) -[01:36] Validating workflow... -[01:36] Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [4], sample: {"inputs":{"image":"beach.jpg"},"class_type":"LoadImage","_meta":{"title":"Load Image"}} -[01:36] Capturing execution frames: sharp_exif.json -[01:41] Frame 1 saved (frame_000.jpg, t=0.0s) -[01:41] Validating workflow... -[01:41] Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [8], sample: {"inputs":{"precision":"auto"},"class_type":"LoadSharpModel","_meta":{"title":"(Down)Load SHARP Model"}} -[01:42] Results saved to /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/comfy-test-logs/Sharp-0619/dev/macos-cpu/results.json -[01:42] Saved: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/comfy-test-logs/Sharp-0619/dev/macos-cpu/index.html -[01:42] +[00:36] Starting ComfyUI server on port 41899... +[00:36] Starting ComfyUI server on port 41899... +[00:36] Waiting for server to be ready (timeout: 600s)... +[00:38] [ComfyUI] setup plugin alembic.autogenerate.schemas +[00:38] [ComfyUI] setup plugin alembic.autogenerate.tables +[00:38] [ComfyUI] setup plugin alembic.autogenerate.types +[00:38] [ComfyUI] setup plugin alembic.autogenerate.constraints +[00:38] [ComfyUI] setup plugin alembic.autogenerate.defaults +[00:38] [ComfyUI] setup plugin alembic.autogenerate.comments +[00:38] [ComfyUI] Could not autodetect AIMDO implementation, assuming Nvidia +[00:38] [ComfyUI] comfy-aimdo unsupported operating system: Darwin +[00:38] [ComfyUI] NOTE: comfy-aimdo currently only supports Windows and Linux +[00:38] [ComfyUI] [comfy-env] ComfyUI-Sharp: 1 isolation env(s): +[00:38] [ComfyUI] [comfy-env] nodes -> /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI/custom_nodes/ComfyUI-Sharp/nodes +[00:38] [ComfyUI] [comfy-env] Workspace: /Users/runner/.ce +[00:38] [ComfyUI] [comfy-env] env: /Users/runner/.ce/.pixi/envs/sharp-nodes [MISSING -- run install.py] +[00:42] [ComfyUI] [comfy-env] prestartup complete +[00:42] [ComfyUI] [comfy-env] ComfyUI-GeometryPack: 1 isolation env(s): +[00:42] [ComfyUI] [comfy-env] nodes -> /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI/custom_nodes/ComfyUI-GeometryPack/nodes +[00:42] [ComfyUI] [comfy-env] env: /Users/runner/.ce/.pixi/envs/geometrypack-nodes [MISSING -- run install.py] +[00:42] [ComfyUI] [comfy-env] prestartup complete +[00:43] [ComfyUI] +[00:43] [ComfyUI] Prestartup times for custom nodes: +[00:43] [ComfyUI] 0.3 seconds: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI/custom_nodes/ComfyUI-GeometryPack +[00:43] [ComfyUI] 4.2 seconds: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI/custom_nodes/ComfyUI-Sharp +[00:43] [ComfyUI] +[00:43] [ComfyUI] WARNING: Potential Error in code: Torch already imported, torch should never be imported before this point. +[00:47] [ComfyUI] Found comfy_kitchen backend cuda: {'available': False, 'disabled': True, 'unavailable_reason': 'Extension file not found: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/venv/lib/python3.13/site-packages/comfy_kitchen/backends/cuda/_C.abi3.so', 'capabilities': []} +[00:47] [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']} +[00:47] [ComfyUI] Found comfy_kitchen backend triton: {'available': False, 'disabled': True, 'unavailable_reason': "ImportError: No module named 'triton'", 'capabilities': []} +[00:48] [ComfyUI] Checkpoint files will always be loaded safely. +[00:48] [ComfyUI] Total VRAM 7168 MB, total RAM 7168 MB +[00:48] [ComfyUI] pytorch version: 2.12.0 +[00:48] [ComfyUI] Mac Version (15, 7, 4) +[00:48] [ComfyUI] Set vram state to: SHARED +[00:48] [ComfyUI] Device: mps +[00:49] [ComfyUI] Using sub quadratic optimization for attention, if you have memory or speed issues try using: --use-split-cross-attention +[00:57] [ComfyUI] Python version: 3.13.13 (v3.13.13:01104ce1beb, Apr 7 2026, 14:43:30) [Clang 16.0.0 (clang-1600.0.26.6)] +[00:57] [ComfyUI] ComfyUI version: 0.21.1 +[00:57] [ComfyUI] comfy-aimdo version: 0.3.0 +[00:57] [ComfyUI] comfy-kitchen version: 0.2.8 +[00:57] [ComfyUI] ****** User settings have been changed to be stored on the server instead of browser storage. ****** +[00:57] [ComfyUI] ****** For multi-user setups add the --multi-user CLI argument to enable multiple user profiles. ****** +[00:57] [ComfyUI] comfyui-frontend-package version: 1.43.18 +[00:57] [ComfyUI] comfyui-workflow-templates version: 0.9.77 +[00:57] [ComfyUI] comfyui-embedded-docs version: 0.5.0 +[00:57] [ComfyUI] comfy-kitchen version: 0.2.8 +[00:57] [ComfyUI] comfy-aimdo version: 0.3.0 +[00:57] [ComfyUI] [Prompt Server] web root: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/venv/lib/python3.13/site-packages/comfyui_frontend_package/static +[00:57] [ComfyUI] Asset seeder disabled +[01:00] [ComfyUI] [comfy-env] Version: 0.3.89 +[01:00] [ComfyUI] [comfy-env] register_nodes: ComfyUI-Sharp +[01:00] [ComfyUI] [comfy-env] ComfyUI source dir: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI +[01:00] [ComfyUI] [comfy-env] isolation env not found at /Users/runner/.ce/.pixi/envs/sharp-nodes: pixi has not materialized `sharp-nodes`; using in-process import. Run `comfy-env install` (or your node's `install.py`) to create it. +[01:00] [ComfyUI] [comfy-env] Found 0 isolation env(s) +[01:00] [ComfyUI] [comfy-env] Importing nodes (root)... +[01:00] [ComfyUI] [comfy-env] Imported nodes root: 8 nodes +[01:00] [ComfyUI] [comfy-env] isolation env not found at /Users/runner/.ce/.pixi/envs/sharp-nodes: pixi has not materialized `sharp-nodes`; using in-process import. Run `comfy-env install` (or your node's `install.py`) to create it. +[01:00] [ComfyUI] [comfy-env] No env for nodes -- run 'comfy-env install' +[01:00] [ComfyUI] [comfy-env] Registered 8 total nodes +[01:00] [ComfyUI] loading... +[01:00] [ComfyUI] calling register_nodes +[01:00] [ComfyUI] [comfy-env] Version: 0.3.89 +[01:00] [ComfyUI] [comfy-env] register_nodes: ComfyUI-GeometryPack +[01:00] [ComfyUI] [comfy-env] ComfyUI source dir: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI +[01:00] [ComfyUI] [comfy-env] isolation env not found at /Users/runner/.ce/.pixi/envs/geometrypack-nodes: pixi has not materialized `geometrypack-nodes`; using in-process import. Run `comfy-env install` (or your node's `install.py`) to create it. +[01:00] [ComfyUI] [comfy-env] Found 0 isolation env(s) +[01:00] [ComfyUI] [comfy-env] Importing nodes (root)... +[01:00] [ComfyUI] [comfy-env] Failed to import nodes root: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing analysis... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.analysis: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing blender_boolean... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.blender_boolean: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing blender_io... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.blender_io: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing blender_remeshing... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.blender_remeshing: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing blender_texture_remeshing... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.blender_texture_remeshing: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing blender_uv... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.blender_uv: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing boolean... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.boolean: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing combine... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.combine: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing conversion... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.conversion: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing decimation... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.decimation: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing decimation_cgal... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.decimation_cgal: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing distance... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.distance: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing fill_holes_gpu... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.fill_holes_gpu: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing io... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.io: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing paraview... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.paraview: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing primitives... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.primitives: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing reconstruction... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.reconstruction: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing reconstruction_cgal... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.reconstruction_cgal: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing remeshing... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.remeshing: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing remeshing_cgal... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.remeshing_cgal: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing remeshing_gpu... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.remeshing_gpu: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing repair... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.repair: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing repair_cgal... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.repair_cgal: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing skeleton... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.skeleton: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing smoothing... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.smoothing: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing texture_remeshing... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.texture_remeshing: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing transforms... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.transforms: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing uv... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.uv: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing uv_gpu... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.uv_gpu: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] Importing visualization... +[01:00] [ComfyUI] [comfy-env] Failed to import .nodes.visualization: No module named 'bpy' +[01:00] [ComfyUI] [comfy-env] isolation env not found at /Users/runner/.ce/.pixi/envs/geometrypack-nodes: pixi has not materialized `geometrypack-nodes`; using in-process import. Run `comfy-env install` (or your node's `install.py`) to create it. +[01:00] [ComfyUI] [comfy-env] No env for nodes -- run 'comfy-env install' +[01:00] [ComfyUI] [comfy-env] Registered 0 total nodes +[01:00] [ComfyUI] +[01:00] [ComfyUI] Import times for custom nodes: +[01:00] [ComfyUI] 0.0 seconds: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI/custom_nodes/websocket_image_save.py +[01:00] [ComfyUI] 0.0 seconds: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI/custom_nodes/ComfyUI-validate-endpoint +[01:00] [ComfyUI] 0.1 seconds: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI/custom_nodes/ComfyUI-GeometryPack +[01:00] [ComfyUI] 0.2 seconds: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/Sharp-0628/ComfyUI/custom_nodes/ComfyUI-Sharp +[01:00] [ComfyUI] +[01:00] [ComfyUI] Context impl SQLiteImpl. +[01:00] [ComfyUI] Will assume non-transactional DDL. +[01:00] [ComfyUI] Context impl SQLiteImpl. +[01:00] [ComfyUI] Will assume non-transactional DDL. +[01:00] [ComfyUI] Running upgrade -> 0001_assets, Initial assets schema +[01:00] [ComfyUI] Revision ID: 0001_assets +[01:00] [ComfyUI] Revises: None +[01:00] [ComfyUI] Create Date: 2025-12-10 00:00:00 +[01:00] [ComfyUI] Running upgrade 0001_assets -> 0002_merge_to_asset_references, Merge AssetInfo and AssetCacheState into unified asset_references table. +[01:00] [ComfyUI] Running upgrade 0002_merge_to_asset_references -> 0003_add_metadata_job_id, Add system_metadata and job_id columns to asset_references. +[01:00] [ComfyUI] Change preview_id FK from assets.id to asset_references.id. +[01:00] [ComfyUI] Database upgraded from None to 0003_add_metadata_job_id +[01:00] [ComfyUI] Starting server +[01:00] [ComfyUI] +[01:00] [ComfyUI] To see the GUI go to: http://127.0.0.1:41899 +[01:01] Server responding, waiting for nodes to load... +[01:21] Server is ready! +[01:21] Checking for import errors in server logs... +[01:21] No import errors detected +[01:21] Found 728 registered nodes +[01:21] [REGISTRATION] PASSED +[01:21] +[01:21] [4/5] INSTANTIATION +[01:21] ---------------------------------------- +[01:21] +[DEBUG] server=, server_url=None, api= +[01:21] Testing node constructors... +[01:24] All 8 node(s) instantiated successfully! +[01:24] [INSTANTIATION] PASSED +[01:24] +[01:24] [5/5] EXECUTION +[01:24] ---------------------------------------- +[01:24] +[DEBUG] server=, server_url=None, api= +[01:24] CPU runner - will execute 2 workflow(s) +[01:24] Running 3 workflow(s) (all with videos)... +[01:24] Installing screenshot dependencies (playwright, pillow)... +[01:26] Packages installed, downloading chromium browser... +[01:33] Screenshot dependencies installed successfully +[01:34] Starting headless browser... +[01:34] macOS -- using Apple Metal GPU via ANGLE +[01:34] [1/3] SKIPPED (not in cpu list) pano.json +[01:35] Capturing execution frames: sharp_basic.json +[01:45] Frame 1 saved (frame_000.jpg, t=0.0s) +[01:45] Validating workflow... +[01:45] Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [4], sample: {"inputs":{"image":"beach.jpg"},"class_type":"LoadImage","_meta":{"title":"Load Image"}} +[01:46] Capturing execution frames: sharp_exif.json +[01:51] Frame 1 saved (frame_000.jpg, t=0.0s) +[01:51] Validating workflow... +[01:51] Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [8], sample: {"inputs":{"precision":"auto"},"class_type":"LoadSharpModel","_meta":{"title":"(Down)Load SHARP Model"}} +[01:52] Results saved to /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/comfy-test-logs/Sharp-0628/dev/macos-cpu/results.json +[01:52] Saved: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/comfy-test-logs/Sharp-0628/dev/macos-cpu/index.html +[01:52] macos: FAILED -[01:42] Error: Workflow execution failed (2 error(s)) -[01:42] Details: sharp_basic.json: Workflow validation failed +[01:52] Error: Workflow execution failed (2 error(s)) +[01:52] Details: sharp_basic.json: Workflow validation failed Details: graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [4], sample: {"inputs":{"image":"beach.jpg"},"class_type":"LoadImage","_meta":{"title":"Load Image"}} @@ -320,4 +320,4 @@ sharp_exif.json: Workflow validation failed Details: graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [8], sample: {"inputs":{"precision":"auto"},"class_type":"LoadSharpModel","_meta":{"title":"(Down)Load SHARP Model"}} -[01:42] Stopping ComfyUI server... +[01:52] Stopping ComfyUI server... diff --git a/dev/macos-cpu/videos/sharp_basic/frame_000.jpg b/dev/macos-cpu/videos/sharp_basic/frame_000.jpg index 951abf786297a1f63c91a64448b3d35c7edf1bc3..1e3814955cfb915c20f295738160c8be8d548427 100644 GIT binary patch delta 1400 zcmeDD$~N&UTf-K{6&vd>Mctl#U-O>Fu{R=SNV9oYobn)(FsXOk5I#fI~@00 zJ~1=MTDf=P(|accWBMno3vb-QA2;vI`|a`uV%r<1hB_&-b2s_3TfVFQ?7+Wylen-? zuT1OWml6rf-!q<6mI>Z>HfL>F-{z$Il^_nx!i{Fs>+g<)5VOv^gte?uCSe{wjt`+jq{pdh_kF zNouKDUWP2qS3*LA-}=AUQoHi6Sc8s_L+9p~T?_puxlMjAe`uxyt4N>&U;W-6{7*eN zSp+|bA=VY4k# zJo~s#wvxp;w~!_ao2y#6b1Uj%=ES{yYfFZ4~*j0p~ zefza3&w-)DZo+fXRhdENSzpGY2Ie_|XGH=SjNL64bum~jfXFxRzt*L}SUG+F4n|3f z3`vm8S;e&~{xkf#66nDBslIgo`}O~}%Bz2m{`c!Y!|Om-2KI!1 zV*eTT?f+GOrDp!!{NJztGpq$_-T~D$A4w@f8_Xb)07e*7Px#_~`+r+S0+`^&xS#xc z4Qw>fZgw~uE{$YMbK*a-di+Y^+Pqu7$w)qDr ZG(^C`p?|`@<)7MwN&ZJ*^Tlx*Y9wD zo+7?Wc2^`AE-8G@!hY}$qlE3xKN(DWH=hd#VVqtQ#ppWO;s4p`XKWZ()i2kN zKk%PH+4s1~Q+e|%g1-Wo10G(PcONH=aSN)!St5E}&#-aw9{|wb1LEs&DpeYQ4Rufm2d_PU&m!;uZJmV{bd=78bnc-SxK5_+oX**W*>IT^U3I zQL(6kMaIdu|4e0d88WU;uCKb}svH+1-jJkbWR@(~Rebzmq$b3z@3-17y1=&d?cb+= z7J1*EnVxvz#F57@UxqwWaJl*AXgJ8l?huDE7_EKztM^#_ymuEWb2jN+?~AzRQaGn) zB}+l&swn}iGuOXY-%;I}muj>-Pj|P>KUq!vd_Dblv!1;@GTF}D?gDp0vbyZwS9?Vm zLYn_Z{F?tV@XGv8XX}<+U@1X%`?DAG{ad}m%+T= zpZ^)Yu2|F{{N&&3`up*Jv+VreZU6iAKf^Up6dwGe`=6n<{_BdL_Pg$Xzy6;g3aGaL zqG=_vN;rEl%$$0S1zdB_;{JSyBkdAk{(!p($w6@E0zC;M1& diff --git a/dev/macos-cpu/videos/sharp_exif/frame_000.jpg b/dev/macos-cpu/videos/sharp_exif/frame_000.jpg index b19078d6efeb298967af814a66cada648cd5ae18..a152758998ae479a2007e2f62dc8cdc348bc69b7 100644 GIT binary patch delta 23403 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®w68;UIgF&YW(KoO_+pRM&jMJxuF@YiyNIA9f0Cr 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