diff --git a/dev/macos-cpu/index.html b/dev/macos-cpu/index.html index 9c6d71f..60aac3d 100644 --- a/dev/macos-cpu/index.html +++ b/dev/macos-cpu/index.html @@ -935,7 +935,7 @@

PozzettiAndrea/ComfyUI-GaussianPack Test Results

- 2026-05-25 19:29 UTC Test run macOS-15.7.7-arm64-arm-64bit arm + 2026-06-07 12:51 UTC Test run macOS-15.7.7-arm64-arm-64bit-Mach-O arm
@@ -948,9 +948,9 @@ 100.0%
- 1 passed + 4 passed - 1/1 tests + 4/4 tests
@@ -963,6 +963,23 @@
+
+ + gaussian_analysis + +
+
+ gaussian_analysis + pass +
+
+ 9.40s +
+
+
+ +
pass
- 33.55s + 79.60s +
+
+ + + +
+ + rotate_splats + +
+
+ rotate_splats + pass +
+
+ 68.94s +
+
+
+ + +
+ + spectate + +
+
+ spectate + pass +
+
+ 15.10s
@@ -1040,9 +1091,9 @@ }); } - const workflowData = {"merge_splats": {"src": "screenshots/merge_splats_executed.png", "title": "merge_splats", "status": "pass", "duration": "33.55", "log": " [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\nCapturing execution frames: merge_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n [ComfyUI] \u001b[32m[INFO]\u001b[0m === /validate endpoint called ===\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Received JSON with keys: ['prompt']\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Prompt has 4 nodes\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 1: LoadPLY\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"ply_file\": \"apple.ply\"}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 2: PreviewGaussians\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"fov_degrees\": 50, \"image_width\": 512, \"image_height\": 512, \"renderer\": \"spark\", \"transport_format\": \"ply\", \"ply_path\": [\"1\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 3: GaussianMerge\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"target_count\": 100000, \"output_filename\": \"merged\", \"opacity_threshold\": 0, \"k\": 24, \"ply_path\": [\"1\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 4: PreviewGaussians\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"fov_degrees\": 50, \"image_width\": 512, \"image_height\": 512, \"renderer\": \"spark\", \"transport_format\": \"ply\", \"ply_path\": [\"3\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Generated prompt_id: 8b0c3ccf-1fe3-4905-8819-318606318c78\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\n Queuing workflow for execution...\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Validation result: valid=True\n [ComfyUI] \u001b[32m[INFO]\u001b[0m === Validation PASSED ===\n [ComfyUI] \u001b[32m[INFO]\u001b[0m got prompt\n [ComfyUI] \u001b[32m[INFO]\u001b[0m LoadPLY: apple.ply -> /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianMerge: 200000 -> 100000 splats (ratio=0.5000) via NanoGS MPMM on /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=0.5s)\n [capture-node] freeze=6ms shot=894ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=3.4s)\n [capture-periodic] freeze=1ms shot=94ms unfreeze=1ms saved=True\n [ComfyUI] Loading PLY: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n [ComfyUI] Initial splats: 200000\n [ComfyUI] Pruned splats: 200000, target: 100000\n [ComfyUI] Opacity Mean: 0.53443545 Median: 0.4836207\n [ComfyUI] Pruning splats with opacity below 0.0000\n [ComfyUI] Original count: 200000, after opacity pruning: 200000\n [ComfyUI] After opacity pruning, 200000 splats remain.\n [ComfyUI] \n [ComfyUI] Pass 1: 200000 splats\n [ComfyUI] Edge costs: 0%| | 0/27 [00:00 /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianMerge: 200000 -> 100000 splats (ratio=0.5000) via NanoGS MPMM on /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply"}, {"file": "frame_002.jpg", "time": 3.41, "log": " [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\nCapturing execution frames: merge_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n [ComfyUI] \u001b[32m[INFO]\u001b[0m === /validate endpoint called ===\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Received JSON with keys: ['prompt']\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Prompt has 4 nodes\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 1: LoadPLY\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"ply_file\": \"apple.ply\"}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 2: PreviewGaussians\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"fov_degrees\": 50, \"image_width\": 512, \"image_height\": 512, \"renderer\": \"spark\", \"transport_format\": \"ply\", \"ply_path\": [\"1\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 3: GaussianMerge\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"target_count\": 100000, \"output_filename\": \"merged\", \"opacity_threshold\": 0, \"k\": 24, \"ply_path\": [\"1\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 4: PreviewGaussians\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"fov_degrees\": 50, \"image_width\": 512, \"image_height\": 512, \"renderer\": \"spark\", \"transport_format\": \"ply\", \"ply_path\": [\"3\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Generated prompt_id: 8b0c3ccf-1fe3-4905-8819-318606318c78\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\n Queuing workflow for execution...\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Validation result: valid=True\n [ComfyUI] \u001b[32m[INFO]\u001b[0m === Validation PASSED ===\n [ComfyUI] \u001b[32m[INFO]\u001b[0m got prompt\n [ComfyUI] \u001b[32m[INFO]\u001b[0m LoadPLY: apple.ply -> /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianMerge: 200000 -> 100000 splats (ratio=0.5000) via NanoGS MPMM on /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=0.5s)\n [capture-node] freeze=6ms shot=894ms unfreeze=3ms saved=True"}, {"file": "frame_003.jpg", "time": 5.56, "log": " [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\nCapturing execution frames: merge_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n [ComfyUI] \u001b[32m[INFO]\u001b[0m === /validate endpoint called ===\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Received JSON with keys: ['prompt']\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Prompt has 4 nodes\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 1: LoadPLY\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"ply_file\": \"apple.ply\"}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 2: PreviewGaussians\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"fov_degrees\": 50, \"image_width\": 512, \"image_height\": 512, \"renderer\": \"spark\", \"transport_format\": \"ply\", \"ply_path\": [\"1\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 3: GaussianMerge\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"target_count\": 100000, \"output_filename\": \"merged\", \"opacity_threshold\": 0, \"k\": 24, \"ply_path\": [\"1\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 4: PreviewGaussians\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"fov_degrees\": 50, \"image_width\": 512, \"image_height\": 512, \"renderer\": \"spark\", \"transport_format\": \"ply\", \"ply_path\": [\"3\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Generated prompt_id: 8b0c3ccf-1fe3-4905-8819-318606318c78\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\n Queuing workflow for execution...\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Validation result: valid=True\n [ComfyUI] \u001b[32m[INFO]\u001b[0m === Validation PASSED ===\n [ComfyUI] \u001b[32m[INFO]\u001b[0m got prompt\n [ComfyUI] \u001b[32m[INFO]\u001b[0m LoadPLY: apple.ply -> /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianMerge: 200000 -> 100000 splats (ratio=0.5000) via NanoGS MPMM on /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=0.5s)\n [capture-node] freeze=6ms shot=894ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=3.4s)\n [capture-periodic] freeze=1ms shot=94ms unfreeze=1ms saved=True\n [ComfyUI] Loading PLY: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n [ComfyUI] Initial splats: 200000\n [ComfyUI] Pruned splats: 200000, target: 100000\n [ComfyUI] Opacity Mean: 0.53443545 Median: 0.4836207\n [ComfyUI] Pruning splats with opacity below 0.0000\n [ComfyUI] Original count: 200000, after opacity pruning: 200000\n [ComfyUI] After opacity pruning, 200000 splats remain.\n [ComfyUI] \n [ComfyUI] Pass 1: 200000 splats\n [ComfyUI] Edge costs: 0%| | 0/27 [00:00 /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianMerge: 200000 -> 100000 splats (ratio=0.5000) via NanoGS MPMM on /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=0.5s)\n [capture-node] freeze=6ms shot=894ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=3.4s)\n [capture-periodic] freeze=1ms shot=94ms unfreeze=1ms saved=True\n [ComfyUI] Loading PLY: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n [ComfyUI] Initial splats: 200000\n [ComfyUI] Pruned splats: 200000, target: 100000\n [ComfyUI] Opacity Mean: 0.53443545 Median: 0.4836207\n [ComfyUI] Pruning splats with opacity below 0.0000\n [ComfyUI] Original count: 200000, after opacity pruning: 200000\n [ComfyUI] After opacity pruning, 200000 splats remain.\n [ComfyUI] \n [ComfyUI] Pass 1: 200000 splats\n [ComfyUI] Edge costs: 0%| | 0/27 [00:00 /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply - [ComfyUI] [INFO] GaussianMerge: 200000 -> 100000 splats (ratio=0.5000) via NanoGS MPMM on /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply - Node executed (1 total), capturing... - Frame 2 saved (frame_001.jpg, t=0.5s) - [capture-node] freeze=6ms shot=894ms unfreeze=3ms saved=True - Frame 3 saved (frame_002.jpg, t=3.4s) - [capture-periodic] freeze=1ms shot=94ms unfreeze=1ms saved=True - [ComfyUI] Loading PLY: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply - [ComfyUI] Initial splats: 200000 - [ComfyUI] Pruned splats: 200000, target: 100000 - [ComfyUI] Opacity Mean: 0.53443545 Median: 0.4836207 - [ComfyUI] Pruning splats with opacity below 0.0000 - [ComfyUI] Original count: 200000, after opacity pruning: 200000 - [ComfyUI] After opacity pruning, 200000 splats remain. + [ComfyUI] [comfy-env] Running LoadPLY: ply_file: 'apple.ply' + [ComfyUI] [SubprocessWorker] call_method: nodes.load_ply.LoadPLY.load + [ComfyUI] [SubprocessWorker] acquired lock, ensuring started... + [ComfyUI] [ComfyUI-GaussianPack] Health check: ping (timeout=5.0s)... + [ComfyUI] [ComfyUI-GaussianPack] Health check: ok + [ComfyUI] [SubprocessWorker] worker started/confirmed + [ComfyUI] [SubprocessWorker] serializing kwargs to shm... + [ComfyUI] [SubprocessWorker] created 0 shm blocks + [ComfyUI] [SubprocessWorker] sending request via socket... + [ComfyUI] [SubprocessWorker] call_id=5 sending call_method + [ComfyUI] [SubprocessWorker] got response: ok + [ComfyUI] [comfy-env] LoadPLY done (0.00s): result: list[1] + [ComfyUI] [comfy-env] Running GaussianMerge: target_count: 100000, output_filename: 'applemerged', opacity_threshold: 0.1, k: 16, backend: 'nanogs_cpu', ply_path: '/Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_worksp... + [ComfyUI] [SubprocessWorker] call_method: nodes.merge_gaussians.GaussianMerge.merge + [ComfyUI] [SubprocessWorker] acquired lock, ensuring started... + [ComfyUI] [ComfyUI-GaussianPack] Health check: ping (timeout=5.0s)... + [ComfyUI] [ComfyUI-GaussianPack] Health check: ok + [ComfyUI] [SubprocessWorker] worker started/confirmed + [ComfyUI] [SubprocessWorker] serializing kwargs to shm... + [ComfyUI] [SubprocessWorker] created 0 shm blocks + [ComfyUI] [SubprocessWorker] sending request via socket... + [ComfyUI] [SubprocessWorker] call_id=6 sending call_method + [ComfyUI] [worker:ComfyUI-GaussianPack] Loading PLY: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1247/ComfyUI/input/apple.ply + [ComfyUI] [worker:ComfyUI-GaussianPack] Initial splats: 200000 + [ComfyUI] [worker:ComfyUI-GaussianPack] Pruned splats: 200000, target: 100000 + [ComfyUI] [worker:ComfyUI-GaussianPack] Opacity Mean: 0.53443545 Median: 0.4836207 + [ComfyUI] [worker:ComfyUI-GaussianPack] Pruning splats with opacity below 0.1000 + [ComfyUI] [worker:ComfyUI-GaussianPack] Original count: 200000, after opacity pruning: 200000 + [ComfyUI] [worker:ComfyUI-GaussianPack] After opacity pruning, 200000 splats remain. + [ComfyUI] [worker:ComfyUI-GaussianPack] Pass 1: 200000 splats + Frame 2 saved (frame_001.jpg, t=2.1s) + [capture-periodic] freeze=1ms shot=65ms unfreeze=2ms saved=True [ComfyUI] - [ComfyUI] Pass 1: 200000 splats - [ComfyUI] Edge costs: 0%| | 0/27 [00:00 gaussianpack-nodes (custom_nodes/ComfyUI-GaussianPack/nodes/comfy-env.toml) +[00:20] [comfy-env] Workspace: /Users/runner/.ce +[00:20] [comfy-env] ComfyUI: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1247/ComfyUI +[00:20] [comfy-env] Found 1 node config(s): +[00:20] - gaussianpack-nodes <- custom_nodes/ComfyUI-GaussianPack/nodes/comfy-env.toml (python=host) +[00:20] [comfy-env] Bootstrap interpreter has python 3.13 + torch 2.10.0 (cpu). Looking for cuda-only wheels matching cpu/torch2.10/cp313. +[00:20] Generated /Users/runner/.ce/pixi.toml +[00:20] [comfy-env] Installing 1 environment(s): +[00:20] - gaussianpack-nodes (python=host, 8 pypi deps, 1 cuda wheels) +[00:20] [comfy-env] Running `pixi install -e gaussianpack-nodes`... +[00:28] ✔ The gaussianpack-nodes environment has been installed. +[00:28] [comfy-env] gaussianpack-nodes: deduped libomp +[00:28] [comfy-env] Recorded install hash b37afdb81be9 -> /Users/runner/.ce/install.hash +[00:28] [comfy-env] Install log: /Users/runner/.ce/install.log +[00:28] +[00:28] Installation complete! +[00:28] Installing validation endpoint... +[00:28] Cloning PozzettiAndrea/ComfyUI-validate-endpoint... +[00:28] Running: git clone --depth 1 https://x-access-token:***@github.com/PozzettiAndrea/ComfyUI-validate-endpoint.git /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1247/ComfyUI/custom_nodes/ComfyUI-validate-endpoint +[00:29] CUDA packages absent (will mock): gsplat +[00:29] [INSTALL] PASSED +[00:29] +[00:29] [3/5] REGISTRATION +[00:29] ---------------------------------------- +[00:29] [DEBUG] server=None, api=None -[00:22] +[00:29] Starting ComfyUI server... -[00:22] Starting ComfyUI server on port 41892... -[00:22] Starting ComfyUI server on port 41892... -[00:22] Waiting for server to be ready (timeout: 600s)... -[00:23] [ComfyUI] [INFO] setup plugin alembic.autogenerate.schemas -[00:23] [ComfyUI] [INFO] setup plugin alembic.autogenerate.tables -[00:23] [ComfyUI] [INFO] setup plugin alembic.autogenerate.types -[00:23] [ComfyUI] [INFO] setup plugin alembic.autogenerate.constraints -[00:23] [ComfyUI] [INFO] setup plugin alembic.autogenerate.defaults -[00:23] [ComfyUI] [INFO] setup plugin alembic.autogenerate.comments -[00:23] [ComfyUI] [WARNING] Could not autodetect AIMDO implementation, assuming Nvidia -[00:23] [ComfyUI] [INFO] comfy-aimdo unsupported operating system: Darwin -[00:23] [ComfyUI] [INFO] NOTE: comfy-aimdo currently only supports Windows and Linux -[00:23] [ComfyUI] [INFO] -[00:23] [ComfyUI] Prestartup times for custom nodes: -[00:23] [ComfyUI] [INFO] 0.0 seconds: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/custom_nodes/ComfyUI-GaussianPack -[00:23] [ComfyUI] [INFO] -[00:27] [ComfyUI] [INFO] 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/GaussianPack-1927/venv/lib/python3.10/site-packages/comfy_kitchen/backends/cuda/_C.abi3.so', 'capabilities': []} -[00:27] [ComfyUI] [INFO] Found comfy_kitchen backend triton: {'available': False, 'disabled': True, 'unavailable_reason': "ImportError: No module named 'triton'", 'capabilities': []} -[00:27] [ComfyUI] [INFO] 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:27] [ComfyUI] [INFO] Checkpoint files will always be loaded safely. -[00:27] [ComfyUI] [INFO] Total VRAM 7168 MB, total RAM 7168 MB -[00:27] [ComfyUI] [INFO] pytorch version: 2.10.0 -[00:27] [ComfyUI] [INFO] Mac Version (15, 7, 7) -[00:27] [ComfyUI] [INFO] Set vram state to: SHARED -[00:27] [ComfyUI] [INFO] Device: mps -[00:28] [ComfyUI] [INFO] Using sub quadratic optimization for attention, if you have memory or speed issues try using: --use-split-cross-attention -[00:32] [ComfyUI] [INFO] 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:32] [ComfyUI] [INFO] ComfyUI version: 0.22.0 -[00:32] [ComfyUI] [INFO] comfy-aimdo version: 0.4.5 -[00:32] [ComfyUI] [INFO] comfy-kitchen version: 0.2.8 -[00:32] [ComfyUI] [WARNING] ****** User settings have been changed to be stored on the server instead of browser storage. ****** -[00:32] [ComfyUI] [WARNING] ****** For multi-user setups add the --multi-user CLI argument to enable multiple user profiles. ****** -[00:32] [ComfyUI] [INFO] comfyui-frontend-package version: 1.44.19 -[00:32] [ComfyUI] [INFO] comfyui-workflow-templates version: 0.9.82 -[00:32] [ComfyUI] [INFO] comfyui-embedded-docs version: 0.5.1 -[00:32] [ComfyUI] [INFO] comfy-kitchen version: 0.2.8 -[00:32] [ComfyUI] [INFO] comfy-aimdo version: 0.4.5 -[00:32] [ComfyUI] [INFO] [Prompt Server] web root: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/venv/lib/python3.10/site-packages/comfyui_frontend_package/static -[00:32] [ComfyUI] [INFO] Asset seeder disabled -[00:34] [ComfyUI] [INFO] loading... -[00:34] [ComfyUI] [INFO] -[00:34] [ComfyUI] Import times for custom nodes: -[00:34] [ComfyUI] [INFO] 0.0 seconds: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/custom_nodes/websocket_image_save.py -[00:34] [ComfyUI] [INFO] 0.0 seconds: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/custom_nodes/ComfyUI-validate-endpoint -[00:34] [ComfyUI] [INFO] 0.0 seconds: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/custom_nodes/ComfyUI-GaussianPack -[00:34] [ComfyUI] [INFO] -[00:34] [ComfyUI] [INFO] Context impl SQLiteImpl. -[00:34] [ComfyUI] [INFO] Will assume non-transactional DDL. -[00:34] [ComfyUI] [INFO] Context impl SQLiteImpl. -[00:34] [ComfyUI] [INFO] Will assume non-transactional DDL. -[00:34] [ComfyUI] [INFO] Running upgrade -> 0001_assets, Initial assets schema -[00:34] [ComfyUI] Revision ID: 0001_assets -[00:34] [ComfyUI] Revises: None -[00:34] [ComfyUI] Create Date: 2025-12-10 00:00:00 -[00:34] [ComfyUI] [INFO] Running upgrade 0001_assets -> 0002_merge_to_asset_references, Merge AssetInfo and AssetCacheState into unified asset_references table. -[00:34] [ComfyUI] [INFO] Running upgrade 0002_merge_to_asset_references -> 0003_add_metadata_job_id, Add system_metadata and job_id columns to asset_references. -[00:34] [ComfyUI] Change preview_id FK from assets.id to asset_references.id. -[00:34] [ComfyUI] [INFO] Database upgraded from None to 0003_add_metadata_job_id -[00:34] [ComfyUI] [INFO] Using RAM pressure cache. -[00:34] [ComfyUI] [INFO] Starting server -[00:34] [ComfyUI] -[00:34] [ComfyUI] [INFO] To see the GUI go to: http://127.0.0.1:41892 -[00:35] Server responding, waiting for nodes to load... -[00:55] Server is ready! -[00:55] Checking for import errors in server logs... -[00:55] No import errors detected -[00:55] Found 739 registered nodes -[00:55] [REGISTRATION] PASSED -[00:55] -[00:55] [4/5] INSTANTIATION -[00:55] ---------------------------------------- -[00:55] -[DEBUG] server=, api= -[00:55] Testing node constructors... -[01:00] All 5 node(s) instantiated successfully! -[01:00] [INSTANTIATION] PASSED -[01:00] -[01:00] [5/5] EXECUTION -[01:00] ---------------------------------------- -[01:00] -[DEBUG] server=, api= -[01:00] CPU runner - will execute 1 workflow(s) -[01:00] Running 1 workflow(s) (all with videos)... -[01:00] Installing screenshot dependencies (playwright, pillow)... -[01:01] Packages installed, downloading chromium browser... -[01:10] Screenshot dependencies installed successfully -[01:10] Starting headless browser... -[01:10] macOS -- using Apple Metal GPU via ANGLE -[01:11] [ComfyUI] [INFO] Using RAM pressure cache. -[01:11] Capturing execution frames: merge_splats.json -[01:11] [ComfyUI] [INFO] Using RAM pressure cache. -[01:18] Frame 1 saved (frame_000.jpg, t=0.0s) -[01:18] Validating workflow... -[01:18] [ComfyUI] [INFO] === /validate endpoint called === -[01:18] [ComfyUI] [INFO] Received JSON with keys: ['prompt'] -[01:18] [ComfyUI] [INFO] Prompt has 4 nodes -[01:18] [ComfyUI] [INFO] Node 1: LoadPLY -[01:18] [ComfyUI] [INFO] Inputs: {"ply_file": "apple.ply"} -[01:18] [ComfyUI] [INFO] Node 2: PreviewGaussians -[01:18] [ComfyUI] [INFO] Inputs: {"fov_degrees": 50, "image_width": 512, "image_height": 512, "renderer": "spark", "transport_format": "ply", "ply_path": ["1", 0]} -[01:18] [ComfyUI] [INFO] Node 3: GaussianMerge -[01:18] [ComfyUI] [INFO] Inputs: {"target_count": 100000, "output_filename": "merged", "opacity_threshold": 0, "k": 24, "ply_path": ["1", 0]} -[01:18] [ComfyUI] [INFO] Node 4: PreviewGaussians -[01:18] [ComfyUI] [INFO] Inputs: {"fov_degrees": 50, "image_width": 512, "image_height": 512, "renderer": "spark", "transport_format": "ply", "ply_path": ["3", 0]} -[01:18] [ComfyUI] [INFO] Generated prompt_id: 8b0c3ccf-1fe3-4905-8819-318606318c78 -[01:18] [ComfyUI] [INFO] Calling execution.validate_prompt()... -[01:18] [ComfyUI] [INFO] Validation result: valid=True -[01:18] Queuing workflow for execution... -[01:18] [ComfyUI] [INFO] === Validation PASSED === -[01:18] [ComfyUI] [INFO] got prompt -[01:18] [ComfyUI] [INFO] LoadPLY: apple.ply -> /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply -[01:18] [ComfyUI] [INFO] GaussianMerge: 200000 -> 100000 splats (ratio=0.5000) via NanoGS MPMM on /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply -[01:18] Node executed (1 total), capturing... -[01:19] Frame 2 saved (frame_001.jpg, t=0.5s) -[01:19] [capture-node] freeze=6ms shot=894ms unfreeze=3ms saved=True -[01:22] Frame 3 saved (frame_002.jpg, t=3.4s) -[01:22] [capture-periodic] freeze=1ms shot=94ms unfreeze=1ms saved=True -[01:23] [ComfyUI] Loading PLY: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply -[01:23] [ComfyUI] Initial splats: 200000 -[01:23] [ComfyUI] Pruned splats: 200000, target: 100000 -[01:23] [ComfyUI] Opacity Mean: 0.53443545 Median: 0.4836207 -[01:23] [ComfyUI] Pruning splats with opacity below 0.0000 -[01:23] [ComfyUI] Original count: 200000, after opacity pruning: 200000 -[01:23] [ComfyUI] After opacity pruning, 200000 splats remain. -[01:23] [ComfyUI] -[01:23] [ComfyUI] Pass 1: 200000 splats -[01:23] [ComfyUI] Edge costs: 0%| | 0/27 [00:00 0001_assets, Initial assets schema +[00:46] [ComfyUI] Revision ID: 0001_assets +[00:46] [ComfyUI] Revises: None +[00:46] [ComfyUI] Create Date: 2025-12-10 00:00:00 +[00:46] [ComfyUI] [INFO] Running upgrade 0001_assets -> 0002_merge_to_asset_references, Merge AssetInfo and AssetCacheState into unified asset_references table. +[00:46] [ComfyUI] [INFO] Running upgrade 0002_merge_to_asset_references -> 0003_add_metadata_job_id, Add system_metadata and job_id columns to asset_references. +[00:46] [ComfyUI] Change preview_id FK from assets.id to asset_references.id. +[00:46] [ComfyUI] [INFO] Database upgraded from None to 0003_add_metadata_job_id +[00:46] [ComfyUI] [INFO] Using RAM pressure cache. +[00:46] [ComfyUI] [INFO] Starting server +[00:46] [ComfyUI] +[00:46] [ComfyUI] [INFO] To see the GUI go to: http://127.0.0.1:41894 +[00:47] Server responding, waiting for nodes to load... +[01:07] Server is ready! +[01:07] Checking for import errors in server logs... +[01:07] No import errors detected +[01:07] Found 781 registered nodes +[01:07] [REGISTRATION] PASSED +[01:07] +[01:07] [4/5] INSTANTIATION +[01:07] ---------------------------------------- +[01:07] +[DEBUG] server=, api= +[01:07] Testing node constructors... +[01:08] All 10 node(s) instantiated successfully! +[01:08] [INSTANTIATION] PASSED +[01:08] +[01:08] [5/5] EXECUTION +[01:08] ---------------------------------------- +[01:08] +[DEBUG] server=, api= +[01:08] CPU runner - will execute 4 workflow(s) +[01:08] Running 4 workflow(s) (all with videos)... +[01:08] Installing screenshot dependencies (playwright, pillow)... +[01:09] Packages installed, downloading chromium browser... +[01:18] Screenshot dependencies installed successfully +[01:18] Starting headless browser... +[01:18] macOS -- using Apple Metal GPU via ANGLE +[01:18] [ComfyUI] [INFO] Using RAM pressure cache. +[01:18] Capturing execution frames: gaussian_analysis.json +[01:19] [ComfyUI] [INFO] Using RAM pressure cache. +[01:24] Frame 1 saved (frame_000.jpg, t=0.0s) +[01:24] Validating workflow... +[01:24] [ComfyUI] [INFO] === /validate endpoint called === +[01:24] [ComfyUI] [INFO] Received JSON with keys: ['prompt'] +[01:24] [ComfyUI] [INFO] Prompt has 4 nodes +[01:24] [ComfyUI] [INFO] Node 1: LoadPLY +[01:24] [ComfyUI] [INFO] Inputs: {"ply_file": "apple.ply"} +[01:24] [ComfyUI] [INFO] Node 19: GaussianAnalysis +[01:24] [ComfyUI] [INFO] Inputs: {"ply_path": ["1", 0]} +[01:24] [ComfyUI] [INFO] Node 20: LoadPLY +[01:24] [ComfyUI] [INFO] Inputs: {"ply_file": "compressed_room.ply"} +[01:24] [ComfyUI] [INFO] Node 21: GaussianAnalysis +[01:24] [ComfyUI] [INFO] Inputs: {"ply_path": ["20", 0]} +[01:24] [ComfyUI] [INFO] Generated prompt_id: 7cb8307a-51e6-4f0b-bd81-03b5b475d3c9 +[01:24] [ComfyUI] [INFO] Calling execution.validate_prompt()... +[01:24] Queuing workflow for execution... +[01:24] [ComfyUI] [INFO] Validation result: valid=True +[01:24] [ComfyUI] [INFO] === Validation PASSED === +[01:24] [ComfyUI] [INFO] got prompt +[01:24] [ComfyUI] [comfy-env] Running LoadPLY: ply_file: 'compressed_room.ply' +[01:24] [ComfyUI] [comfy-env] SubprocessWorker: /Users/runner/.ce/.pixi/envs/gaussianpack-nodes/bin/python +[01:24] [ComfyUI] [comfy-env] env_vars: {'COMFYUI_BASE': '/Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1247/ComfyUI'} +[01:24] [ComfyUI] [SubprocessWorker] call_method: nodes.load_ply.LoadPLY.load +[01:24] [ComfyUI] [SubprocessWorker] acquired lock, ensuring started... +[01:24] [ComfyUI] [ComfyUI-GaussianPack] python: /Users/runner/.ce/.pixi/envs/gaussianpack-nodes/bin/python +[01:24] [ComfyUI] [ComfyUI-GaussianPack] sys_path sent to worker: ['/Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1247/ComfyUI', '/Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1247/ComfyUI/custom_nodes/ComfyUI-GaussianPack', '/Users/runner/.ce/.pixi/envs/gaussianpack-nodes/lib/python3.13/site-packages', '/Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1247/ComfyUI/custom_nodes/ComfyUI-GaussianPack'] +[01:24] [ComfyUI] [SubprocessWorker] is_pixi=True, python=/Users/runner/.ce/.pixi/envs/gaussianpack-nodes/bin/python +[01:24] [ComfyUI] [SubprocessWorker] launching cmd=['/Users/runner/.pixi/bin/pixi', 'run', '--as-is', '--manifest-path', '/Users/runner/.ce/pixi.toml', '-e', 'gaussianpack-nodes', 'python', '/var/folders/8d/778wjbv96mq1760tv6gk374m0000gn/T/comfyui_pvenv_ck272ns8/persistent_worker.py', 'unix:///var/folders/8d/778wjbv96mq1760tv6gk374m0000gn/T/comfy_worker_8caae8a81655.sock']... +[01:24] [ComfyUI] [SubprocessWorker] socket_addr=unix:///var/folders/8d/778wjbv96mq1760tv6gk374m0000gn/T/comfy_worker_8caae8a81655.sock exists=True +[01:25] [ComfyUI] [SubprocessWorker] worker started/confirmed +[01:25] [ComfyUI] [SubprocessWorker] serializing kwargs to shm... +[01:25] [ComfyUI] [SubprocessWorker] created 0 shm blocks +[01:25] [ComfyUI] [SubprocessWorker] sending request via socket... +[01:25] [ComfyUI] [SubprocessWorker] call_id=1 sending call_method +[01:25] [ComfyUI] [worker:ComfyUI-GaussianPack] WARNING: SPZ route not registered (ModuleNotFoundError: No module named 'comfy_aimdo') +[01:25] [ComfyUI] [SubprocessWorker] got response: ok +[01:25] [ComfyUI] [comfy-env] LoadPLY done (0.88s): result: list[1] +[01:25] [ComfyUI] [comfy-env] Running GaussianAnalysis: ply_path: '/Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_worksp... +[01:25] [ComfyUI] [SubprocessWorker] call_method: nodes.analyze_gaussians.GaussianAnalysis.analyze +[01:25] [ComfyUI] [SubprocessWorker] acquired lock, ensuring started... +[01:25] [ComfyUI] [ComfyUI-GaussianPack] Health check: ping (timeout=5.0s)... +[01:25] [ComfyUI] [ComfyUI-GaussianPack] Health check: ok +[01:25] [ComfyUI] [SubprocessWorker] worker started/confirmed +[01:25] [ComfyUI] [SubprocessWorker] serializing kwargs to shm... +[01:25] [ComfyUI] [SubprocessWorker] created 0 shm blocks +[01:25] [ComfyUI] [SubprocessWorker] sending request via socket... +[01:25] [ComfyUI] [SubprocessWorker] call_id=2 sending call_method +[01:25] [ComfyUI] [SubprocessWorker] got response: ok +[01:25] [ComfyUI] [comfy-env] GaussianAnalysis done (0.00s): result: dict +[01:25] [ComfyUI] [comfy-env] Running LoadPLY: ply_file: 'apple.ply' +[01:25] [ComfyUI] [SubprocessWorker] call_method: nodes.load_ply.LoadPLY.load +[01:25] [ComfyUI] [SubprocessWorker] acquired lock, ensuring started... +[01:25] [ComfyUI] [ComfyUI-GaussianPack] Health check: ping (timeout=5.0s)... +[01:25] [ComfyUI] [ComfyUI-GaussianPack] Health check: ok +[01:25] [ComfyUI] [SubprocessWorker] worker started/confirmed +[01:25] [ComfyUI] [SubprocessWorker] serializing kwargs to shm... +[01:25] [ComfyUI] [SubprocessWorker] created 0 shm blocks +[01:25] [ComfyUI] [SubprocessWorker] sending request via socket... +[01:25] [ComfyUI] [SubprocessWorker] call_id=3 sending call_method +[01:25] [ComfyUI] [SubprocessWorker] got response: ok +[01:25] [ComfyUI] [comfy-env] LoadPLY done (0.00s): result: list[1] +[01:25] [ComfyUI] [comfy-env] Running GaussianAnalysis: ply_path: '/Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_worksp... +[01:25] [ComfyUI] [SubprocessWorker] call_method: nodes.analyze_gaussians.GaussianAnalysis.analyze +[01:25] [ComfyUI] [SubprocessWorker] acquired lock, ensuring started... +[01:25] [ComfyUI] [ComfyUI-GaussianPack] Health check: ping (timeout=5.0s)... +[01:25] [ComfyUI] [ComfyUI-GaussianPack] Health check: ok +[01:25] [ComfyUI] [SubprocessWorker] worker started/confirmed +[01:25] [ComfyUI] [SubprocessWorker] serializing kwargs to shm... +[01:25] [ComfyUI] [SubprocessWorker] created 0 shm blocks +[01:25] [ComfyUI] [SubprocessWorker] sending request via socket... +[01:25] [ComfyUI] [SubprocessWorker] call_id=4 sending call_method +[01:25] [ComfyUI] [SubprocessWorker] got response: ok +[01:25] [ComfyUI] [comfy-env] GaussianAnalysis done (0.00s): result: dict +[01:25] [ComfyUI] [INFO] Prompt executed in 0.89 seconds +[01:25] Node executed (2 total), capturing... +[01:26] Frame 2 saved (frame_001.jpg, t=1.2s) +[01:26] [capture-node] freeze=2ms shot=67ms unfreeze=0ms saved=True +[01:26] Execution complete (t=1.3s) +[01:26] [3d-wait] Phase 1: Waiting for 'Loading 3D Model' text to disappear... +[01:26] [3d-wait] Phase 1 done in 0.0s +[01:26] [3d-wait] Phase 2: iframes=0 +[01:26] [3d-wait] Total 3D wait: 0.0s +[01:26] Captured 2 unique frames over 1.35s +[01:26] [debug] iframes: 0 +[01:26] [timing] trigger_3d_previews: 0.0s +[01:28] Saved high-quality screenshot: gaussian_analysis_executed.png +[01:28] [timing] final_screenshot: 0.1s +[01:28] [ComfyUI] [INFO] Using RAM pressure cache. +[01:28] [ComfyUI] [INFO] Using RAM pressure cache. +[01:28] Capturing execution frames: merge_splats.json +[01:28] [ComfyUI] [INFO] Using RAM pressure cache. +[01:33] Frame 1 saved (frame_000.jpg, t=0.0s) +[01:33] Validating workflow... +[01:33] [ComfyUI] [INFO] === /validate endpoint called === +[01:33] [ComfyUI] [INFO] Received JSON with keys: ['prompt'] +[01:33] [ComfyUI] [INFO] Prompt has 3 nodes +[01:33] [ComfyUI] [INFO] Node 1: LoadPLY +[01:33] [ComfyUI] [INFO] Inputs: {"ply_file": "apple.ply"} +[01:33] [ComfyUI] [INFO] Node 12: GaussianMerge +[01:33] [ComfyUI] [INFO] Inputs: {"target_count": 100000, "output_filename": "applemerged", "opacity_threshold": 0.1, "k": 16, "backend": "nanogs_cpu", "ply_path": ["1", 0]} +[01:33] [ComfyUI] [INFO] Node 14: PreviewGaussianDual +[01:33] [ComfyUI] [INFO] Inputs: {"layout": "slider", "camera_mode": "orbit", "fov_degrees": 70, "renderer": "playcanvas", "transport_format": "ply", "ply_path_1": ["1", 0], "ply_path_2": ["12", 0]} +[01:33] [ComfyUI] [INFO] Generated prompt_id: ab2ecc4f-5bbb-4b56-a217-2b6af814dd59 +[01:33] [ComfyUI] [INFO] Calling execution.validate_prompt()... +[01:33] [ComfyUI] [INFO] Validation result: valid=True +[01:33] [ComfyUI] [INFO] === Validation PASSED === +[01:33] Queuing workflow for execution... +[01:33] [ComfyUI] [INFO] got prompt +[01:33] [ComfyUI] [comfy-env] Running LoadPLY: ply_file: 'apple.ply' +[01:33] [ComfyUI] [SubprocessWorker] call_method: nodes.load_ply.LoadPLY.load +[01:33] [ComfyUI] [SubprocessWorker] acquired lock, ensuring started... +[01:33] [ComfyUI] [ComfyUI-GaussianPack] Health check: ping (timeout=5.0s)... +[01:33] [ComfyUI] [ComfyUI-GaussianPack] Health check: ok +[01:33] [ComfyUI] [SubprocessWorker] worker started/confirmed +[01:33] [ComfyUI] [SubprocessWorker] serializing kwargs to shm... +[01:33] [ComfyUI] [SubprocessWorker] created 0 shm blocks +[01:33] [ComfyUI] [SubprocessWorker] sending request via socket... +[01:33] [ComfyUI] [SubprocessWorker] call_id=5 sending call_method +[01:33] [ComfyUI] [SubprocessWorker] got response: ok +[01:33] [ComfyUI] [comfy-env] LoadPLY done (0.00s): result: list[1] +[01:33] [ComfyUI] [comfy-env] Running GaussianMerge: target_count: 100000, output_filename: 'applemerged', opacity_threshold: 0.1, k: 16, backend: 'nanogs_cpu', ply_path: '/Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_worksp... +[01:33] [ComfyUI] [SubprocessWorker] call_method: nodes.merge_gaussians.GaussianMerge.merge +[01:33] [ComfyUI] [SubprocessWorker] acquired lock, ensuring started... +[01:33] [ComfyUI] [ComfyUI-GaussianPack] Health check: ping (timeout=5.0s)... +[01:33] [ComfyUI] [ComfyUI-GaussianPack] Health check: ok +[01:33] [ComfyUI] [SubprocessWorker] worker started/confirmed +[01:33] [ComfyUI] [SubprocessWorker] serializing kwargs to shm... +[01:33] [ComfyUI] [SubprocessWorker] created 0 shm blocks +[01:33] [ComfyUI] [SubprocessWorker] sending request via socket... +[01:33] [ComfyUI] [SubprocessWorker] call_id=6 sending call_method +[01:33] [ComfyUI] [worker:ComfyUI-GaussianPack] Loading PLY: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1247/ComfyUI/input/apple.ply +[01:33] [ComfyUI] [worker:ComfyUI-GaussianPack] Initial splats: 200000 +[01:33] [ComfyUI] [worker:ComfyUI-GaussianPack] Pruned splats: 200000, target: 100000 +[01:33] [ComfyUI] [worker:ComfyUI-GaussianPack] Opacity Mean: 0.53443545 Median: 0.4836207 +[01:33] [ComfyUI] [worker:ComfyUI-GaussianPack] Pruning splats with opacity below 0.1000 +[01:33] [ComfyUI] [worker:ComfyUI-GaussianPack] Original count: 200000, after opacity pruning: 200000 +[01:33] [ComfyUI] [worker:ComfyUI-GaussianPack] After opacity pruning, 200000 splats remain. +[01:33] [ComfyUI] [worker:ComfyUI-GaussianPack] Pass 1: 200000 splats +[01:35] Frame 2 saved (frame_001.jpg, t=2.1s) +[01:35] [capture-periodic] freeze=1ms shot=65ms unfreeze=2ms saved=True +[01:36] [ComfyUI] +[01:36] [ComfyUI] Edge costs: 0%| | 0/19 [00:00 /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianMerge: 200000 -> 100000 splats (ratio=0.5000) via NanoGS MPMM on /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply" + "time": 2.14, + "log": " [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\nCapturing execution frames: merge_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n [ComfyUI] \u001b[32m[INFO]\u001b[0m === /validate endpoint called ===\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Received JSON with keys: ['prompt']\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Prompt has 3 nodes\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 1: LoadPLY\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"ply_file\": \"apple.ply\"}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 12: GaussianMerge\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"target_count\": 100000, \"output_filename\": \"applemerged\", \"opacity_threshold\": 0.1, \"k\": 16, \"backend\": \"nanogs_cpu\", \"ply_path\": [\"1\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 14: PreviewGaussianDual\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"layout\": \"slider\", \"camera_mode\": \"orbit\", \"fov_degrees\": 70, \"renderer\": \"playcanvas\", \"transport_format\": \"ply\", \"ply_path_1\": [\"1\", 0], \"ply_path_2\": [\"12\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Generated prompt_id: ab2ecc4f-5bbb-4b56-a217-2b6af814dd59\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Validation result: valid=True\n Queuing workflow for execution...\n [ComfyUI] \u001b[32m[INFO]\u001b[0m === Validation PASSED ===\n [ComfyUI] \u001b[32m[INFO]\u001b[0m got prompt\n [ComfyUI] [comfy-env] Running LoadPLY: ply_file: 'apple.ply'\n [ComfyUI] [SubprocessWorker] call_method: nodes.load_ply.LoadPLY.load\n [ComfyUI] [SubprocessWorker] acquired lock, ensuring started...\n [ComfyUI] [ComfyUI-GaussianPack] Health check: ping (timeout=5.0s)...\n [ComfyUI] [ComfyUI-GaussianPack] Health check: ok\n [ComfyUI] [SubprocessWorker] worker started/confirmed\n [ComfyUI] [SubprocessWorker] serializing kwargs to shm...\n [ComfyUI] [SubprocessWorker] created 0 shm blocks\n [ComfyUI] [SubprocessWorker] sending request via socket...\n [ComfyUI] [SubprocessWorker] call_id=5 sending call_method\n [ComfyUI] [SubprocessWorker] got response: ok\n [ComfyUI] [comfy-env] LoadPLY done (0.00s): result: list[1]\n [ComfyUI] [comfy-env] Running GaussianMerge: target_count: 100000, output_filename: 'applemerged', opacity_threshold: 0.1, k: 16, backend: 'nanogs_cpu', ply_path: '/Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_worksp...\n [ComfyUI] [SubprocessWorker] call_method: nodes.merge_gaussians.GaussianMerge.merge\n [ComfyUI] [SubprocessWorker] acquired lock, ensuring started...\n [ComfyUI] [ComfyUI-GaussianPack] Health check: ping (timeout=5.0s)...\n [ComfyUI] [ComfyUI-GaussianPack] Health check: ok\n [ComfyUI] [SubprocessWorker] worker started/confirmed\n [ComfyUI] [SubprocessWorker] serializing kwargs to shm...\n [ComfyUI] [SubprocessWorker] created 0 shm blocks\n [ComfyUI] [SubprocessWorker] sending request via socket...\n [ComfyUI] [SubprocessWorker] call_id=6 sending call_method\n [ComfyUI] [worker:ComfyUI-GaussianPack] Loading PLY: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1247/ComfyUI/input/apple.ply\n [ComfyUI] [worker:ComfyUI-GaussianPack] Initial splats: 200000\n [ComfyUI] [worker:ComfyUI-GaussianPack] Pruned splats: 200000, target: 100000\n [ComfyUI] [worker:ComfyUI-GaussianPack] Opacity Mean: 0.53443545 Median: 0.4836207\n [ComfyUI] [worker:ComfyUI-GaussianPack] Pruning splats with opacity below 0.1000\n [ComfyUI] [worker:ComfyUI-GaussianPack] Original count: 200000, after opacity pruning: 200000\n [ComfyUI] [worker:ComfyUI-GaussianPack] After opacity pruning, 200000 splats remain.\n [ComfyUI] [worker:ComfyUI-GaussianPack] Pass 1: 200000 splats" }, { "file": "frame_002.jpg", - "time": 3.41, - "log": " [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\nCapturing execution frames: merge_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n [ComfyUI] \u001b[32m[INFO]\u001b[0m === /validate endpoint called ===\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Received JSON with keys: ['prompt']\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Prompt has 4 nodes\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 1: LoadPLY\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"ply_file\": \"apple.ply\"}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 2: PreviewGaussians\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"fov_degrees\": 50, \"image_width\": 512, \"image_height\": 512, \"renderer\": \"spark\", \"transport_format\": \"ply\", \"ply_path\": [\"1\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 3: GaussianMerge\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"target_count\": 100000, \"output_filename\": \"merged\", \"opacity_threshold\": 0, \"k\": 24, \"ply_path\": [\"1\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 4: PreviewGaussians\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"fov_degrees\": 50, \"image_width\": 512, \"image_height\": 512, \"renderer\": \"spark\", \"transport_format\": \"ply\", \"ply_path\": [\"3\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Generated prompt_id: 8b0c3ccf-1fe3-4905-8819-318606318c78\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\n Queuing workflow for execution...\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Validation result: valid=True\n [ComfyUI] \u001b[32m[INFO]\u001b[0m === Validation PASSED ===\n [ComfyUI] \u001b[32m[INFO]\u001b[0m got prompt\n [ComfyUI] \u001b[32m[INFO]\u001b[0m LoadPLY: apple.ply -> /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianMerge: 200000 -> 100000 splats (ratio=0.5000) via NanoGS MPMM on /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=0.5s)\n [capture-node] freeze=6ms shot=894ms unfreeze=3ms saved=True" + "time": 4.33, + "log": " [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\nCapturing execution frames: merge_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n [ComfyUI] \u001b[32m[INFO]\u001b[0m === /validate endpoint called ===\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Received JSON with keys: ['prompt']\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Prompt has 3 nodes\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 1: LoadPLY\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"ply_file\": \"apple.ply\"}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 12: GaussianMerge\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"target_count\": 100000, \"output_filename\": \"applemerged\", \"opacity_threshold\": 0.1, \"k\": 16, \"backend\": \"nanogs_cpu\", \"ply_path\": [\"1\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 14: PreviewGaussianDual\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"layout\": \"slider\", \"camera_mode\": \"orbit\", \"fov_degrees\": 70, \"renderer\": \"playcanvas\", \"transport_format\": \"ply\", \"ply_path_1\": [\"1\", 0], \"ply_path_2\": [\"12\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Generated prompt_id: ab2ecc4f-5bbb-4b56-a217-2b6af814dd59\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Validation result: valid=True\n Queuing workflow for execution...\n [ComfyUI] \u001b[32m[INFO]\u001b[0m === Validation PASSED ===\n [ComfyUI] \u001b[32m[INFO]\u001b[0m got prompt\n [ComfyUI] [comfy-env] Running LoadPLY: ply_file: 'apple.ply'\n [ComfyUI] [SubprocessWorker] call_method: nodes.load_ply.LoadPLY.load\n [ComfyUI] [SubprocessWorker] acquired lock, ensuring started...\n [ComfyUI] [ComfyUI-GaussianPack] Health check: ping (timeout=5.0s)...\n [ComfyUI] [ComfyUI-GaussianPack] Health check: ok\n [ComfyUI] [SubprocessWorker] worker started/confirmed\n [ComfyUI] [SubprocessWorker] serializing kwargs to shm...\n [ComfyUI] [SubprocessWorker] created 0 shm blocks\n [ComfyUI] [SubprocessWorker] sending request via socket...\n [ComfyUI] [SubprocessWorker] call_id=5 sending call_method\n [ComfyUI] [SubprocessWorker] got response: ok\n [ComfyUI] [comfy-env] LoadPLY done (0.00s): result: list[1]\n [ComfyUI] [comfy-env] Running GaussianMerge: target_count: 100000, output_filename: 'applemerged', opacity_threshold: 0.1, k: 16, backend: 'nanogs_cpu', ply_path: '/Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_worksp...\n [ComfyUI] [SubprocessWorker] call_method: nodes.merge_gaussians.GaussianMerge.merge\n [ComfyUI] [SubprocessWorker] acquired lock, ensuring started...\n [ComfyUI] [ComfyUI-GaussianPack] Health check: ping (timeout=5.0s)...\n [ComfyUI] [ComfyUI-GaussianPack] Health check: ok\n [ComfyUI] [SubprocessWorker] worker started/confirmed\n [ComfyUI] [SubprocessWorker] serializing kwargs to shm...\n [ComfyUI] [SubprocessWorker] created 0 shm blocks\n [ComfyUI] [SubprocessWorker] sending request via socket...\n [ComfyUI] [SubprocessWorker] call_id=6 sending call_method\n [ComfyUI] [worker:ComfyUI-GaussianPack] Loading PLY: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1247/ComfyUI/input/apple.ply\n [ComfyUI] [worker:ComfyUI-GaussianPack] Initial splats: 200000\n [ComfyUI] [worker:ComfyUI-GaussianPack] Pruned splats: 200000, target: 100000\n [ComfyUI] [worker:ComfyUI-GaussianPack] Opacity Mean: 0.53443545 Median: 0.4836207\n [ComfyUI] [worker:ComfyUI-GaussianPack] Pruning splats with opacity below 0.1000\n [ComfyUI] [worker:ComfyUI-GaussianPack] Original count: 200000, after opacity pruning: 200000\n [ComfyUI] [worker:ComfyUI-GaussianPack] After opacity pruning, 200000 splats remain.\n [ComfyUI] [worker:ComfyUI-GaussianPack] Pass 1: 200000 splats\n Frame 2 saved (frame_001.jpg, t=2.1s)\n [capture-periodic] freeze=1ms shot=65ms unfreeze=2ms saved=True\n [ComfyUI] \n [ComfyUI] Edge costs: 0%| | 0/19 [00:00 /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianMerge: 200000 -> 100000 splats (ratio=0.5000) via NanoGS MPMM on /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=0.5s)\n [capture-node] freeze=6ms shot=894ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=3.4s)\n [capture-periodic] freeze=1ms shot=94ms unfreeze=1ms saved=True\n [ComfyUI] Loading PLY: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n [ComfyUI] Initial splats: 200000\n [ComfyUI] Pruned splats: 200000, target: 100000\n [ComfyUI] Opacity Mean: 0.53443545 Median: 0.4836207\n [ComfyUI] Pruning splats with opacity below 0.0000\n [ComfyUI] Original count: 200000, after opacity pruning: 200000\n [ComfyUI] After opacity pruning, 200000 splats remain.\n [ComfyUI] \n [ComfyUI] Pass 1: 200000 splats\n [ComfyUI] Edge costs: 0%| | 0/27 [00:00 /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianMerge: 200000 -> 100000 splats (ratio=0.5000) via NanoGS MPMM on /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=0.5s)\n [capture-node] freeze=6ms shot=894ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=3.4s)\n [capture-periodic] freeze=1ms shot=94ms unfreeze=1ms saved=True\n [ComfyUI] Loading PLY: /Users/runner/work/comfy-gpu-ci/comfy-gpu-ci/test_workspaces/GaussianPack-1927/ComfyUI/input/apple.ply\n [ComfyUI] Initial splats: 200000\n [ComfyUI] Pruned splats: 200000, target: 100000\n [ComfyUI] Opacity Mean: 0.53443545 Median: 0.4836207\n [ComfyUI] Pruning splats with opacity below 0.0000\n [ComfyUI] Original count: 200000, after opacity pruning: 200000\n [ComfyUI] After opacity pruning, 200000 splats remain.\n [ComfyUI] \n [ComfyUI] Pass 1: 200000 splats\n [ComfyUI] Edge costs: 0%| | 0/27 [00:00