-
-

-
+
-
-
-

-
+
@@ -1033,6 +1021,55 @@
+
+
Failed Tests
+
+
+
+
Workflow validation failed
+
+Details:
+graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [1,19,20,21], sample: {"inputs":{"UNKNOWN":"apple.ply"},"_meta":{}}
+
+
+
+
+
Workflow validation failed
+
+Details:
+graphToPrompt produced nodes without class_type: graphToPrompt: 3 nodes, missing class_type: [1,12,14], sample: {"inputs":{"UNKNOWN":"apple.ply"},"_meta":{}}
+
+
+
+
+
Workflow validation failed
+
+Details:
+graphToPrompt produced nodes without class_type: graphToPrompt: 3 nodes, missing class_type: [1,14,18], sample: {"inputs":{"UNKNOWN":"apple.ply"},"_meta":{}}
+
+
+
+
+
Workflow validation failed
+
+Details:
+graphToPrompt produced nodes without class_type: graphToPrompt: 2 nodes, missing class_type: [1,2], sample: {"inputs":{"UNKNOWN":"compressed_room.ply"},"_meta":{}}
+
+
+
+
@@ -1119,9 +1156,9 @@
});
}
- const workflowData = {"gaussian_analysis": {"src": "screenshots/gaussian_analysis_executed.png", "title": "gaussian_analysis", "status": "pass", "duration": "11.93", "log": " [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\nCapturing execution frames: gaussian_analysis.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 Queuing workflow for execution...\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 19: GaussianAnalysis\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"ply_path\": [\"1\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 20: LoadPLY\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"ply_file\": \"compressed_room.ply\"}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 21: GaussianAnalysis\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"ply_path\": [\"20\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Generated prompt_id: 68d52ede-a37c-4f48-b22a-4bbb68beb4aa\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\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: compressed_room.ply -> D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\compressed_room.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianAnalysis:\n [ComfyUI] == Gaussian PLY analysis ==\n [ComfyUI] path: D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\compressed_room.ply\n [ComfyUI] size: 26.70 MB (28,000,362 bytes)\n [ComfyUI] encoding: binary_little_endian 1.0\n [ComfyUI] splat count: 500,000\n [ComfyUI] bytes/splat: 56.0\n [ComfyUI] flavor: SH-stripped 3DGS (DC only, no view-dependent term)\n [ComfyUI] SH degree: 0\n [ComfyUI] precision: float32 (all)\n [ComfyUI] has f_dc_*: True\n [ComfyUI] has RGB uchar: False\n [ComfyUI] has opacity: True\n [ComfyUI] has scale_*: True\n [ComfyUI] has rot_*: True\n [ComfyUI] total props: 14\n [ComfyUI] \u001b[32m[INFO]\u001b[0m LoadPLY: apple.ply -> D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianAnalysis:\n [ComfyUI] == Gaussian PLY analysis ==\n [ComfyUI] path: D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] size: 47.30 MB (49,601,531 bytes)\n [ComfyUI] encoding: binary_little_endian 1.0\n [ComfyUI] splat count: 200,000\n [ComfyUI] bytes/splat: 248.0\n [ComfyUI] flavor: raw 3DGS PLY (SH degree 3)\n [ComfyUI] SH degree: 3\n [ComfyUI] precision: float32 (all)\n [ComfyUI] has f_dc_*: True\n [ComfyUI] has RGB uchar: False\n [ComfyUI] has opacity: True\n [ComfyUI] has scale_*: True\n [ComfyUI] has rot_*: True\n [ComfyUI] total props: 62\n [ComfyUI] \u001b[32m[INFO]\u001b[0m \u001b[32mPrompt executed in 0.02 seconds\u001b[0m\n Node executed (2 total), capturing...\n Frame 2 saved (frame_001.jpg, t=0.5s)\n [capture-node] freeze=6ms shot=103ms unfreeze=0ms saved=True\n Execution complete (t=0.5s)\n [3d-wait] Phase 1: Waiting for 'Loading 3D Model' text to disappear...\n [3d-wait] Phase 1 done in 0.0s\n [3d-wait] Phase 2: iframes=0\n [3d-wait] Total 3D wait: 0.0s\n Captured 2 unique frames over 0.67s\n [debug] iframes: 0\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: gaussian_analysis_executed.png\n [timing] final_screenshot: 0.3s\n Captured 3 video frames", "hardware": {"os": "Windows-10-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "merge_splats": {"src": "screenshots/merge_splats_executed.png", "title": "merge_splats", "status": "pass", "duration": "92.14", "log": "Capturing execution frames: merge_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[1m\u001b[31m[ERROR]\u001b[0m Exception in callback _ProactorBasePipeTransport._call_connection_lost()\n [ComfyUI] handle: \n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"asyncio\\events.py\", line 89, in _run\n [ComfyUI] File \"asyncio\\proactor_events.py\", line 165, in _call_connection_lost\n [ComfyUI] ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\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: da948adf-79a8-4b1c-a4e6-e49d0db097e4\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\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 -> D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianMerge: 200000 -> 100000 splats (ratio=0.5000, backend=nanogs_cpu) on D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] Loading PLY: D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] Initial splats: 200000\n [ComfyUI] Pruned splats: 200000, target: 100000\n [ComfyUI] Opacity Mean: 0.53443545 Median: 0.48362076\n [ComfyUI] Pruning splats with opacity below 0.1000\n [ComfyUI] Original count: 200000, after opacity pruning: 200000\n [ComfyUI] After opacity pruning, 200000 splats remain.\n [ComfyUI] Pass 1: 200000 splats\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=5ms shot=94ms unfreeze=5ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.5s)\n [capture-periodic] freeze=4ms shot=101ms unfreeze=6ms saved=True\n [ComfyUI] \n [ComfyUI] Edge costs: 0%| | 0/19 [00:00, ?it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 5%|5 | 1/19 [00:00<00:03, 4.54it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 11%|# | 2/19 [00:00<00:03, 4.40it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 16%|#5 | 3/19 [00:00<00:03, 4.48it/s]\n [capture-loop] iter=50 t=6.0s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=6 ram=6.0/16.0GB (38%) swap=0.2/2.9GB (8%) cpu=46% browser_rss=0.75GB\n [ComfyUI] \n [ComfyUI] Edge costs: 21%|##1 | 4/19 [00:00<00:03, 4.52it/s]\n [ComfyUI] Edge costs: 26%|##6 | 5/19 [00:01<00:03, 4.54it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 32%|###1 | 6/19 [00:01<00:02, 4.54it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 37%|###6 | 7/19 [00:01<00:02, 4.48it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 42%|####2 | 8/19 [00:01<00:02, 4.47it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 47%|####7 | 9/19 [00:01<00:02, 4.54it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 53%|#####2 | 10/19 [00:02<00:01, 4.51it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 58%|#####7 | 11/19 [00:02<00:01, 4.62it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 63%|######3 | 12/19 [00:02<00:01, 4.44it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 68%|######8 | 13/19 [00:02<00:01, 4.50it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 74%|#######3 | 14/19 [00:03<00:01, 4.56it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 79%|#######8 | 15/19 [00:03<00:00, 4.69it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 84%|########4 | 16/19 [00:03<00:00, 4.72it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 89%|########9 | 17/19 [00:03<00:00, 4.55it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 95%|#########4| 18/19 [00:03<00:00, 4.57it/s]\n [ComfyUI] Edge costs: 100%|##########| 19/19 [00:04<00:00, 4.69it/s]\n [ComfyUI] edges: 1848776, pairs: 96906 (need 100000)\n [ComfyUI] Merging 96906 pairs\n [ComfyUI] Pass 2: 103094 splats\n [capture-loop] iter=100 t=12.2s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=6 ram=5.9/16.0GB (37%) swap=0.2/2.9GB (8%) cpu=45% browser_rss=0.65GB\n [ComfyUI] \n [ComfyUI] Edge costs: 0%| | 0/10 [00:00, ?it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 10%|# | 1/10 [00:00<00:01, 4.75it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 20%|## | 2/10 [00:00<00:01, 4.67it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 30%|### | 3/10 [00:00<00:01, 4.87it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 40%|#### | 4/10 [00:00<00:01, 4.85it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 50%|##### | 5/10 [00:01<00:01, 4.81it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 60%|###### | 6/10 [00:01<00:00, 4.90it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 70%|####### | 7/10 [00:01<00:00, 5.01it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 80%|######## | 8/10 [00:01<00:00, 5.09it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 90%|######### | 9/10 [00:01<00:00, 4.87it/s]\n [ComfyUI] Edge costs: 100%|##########| 10/10 [00:01<00:00, 5.33it/s]\n [ComfyUI] edges: 919857, pairs: 3094 (need 3094)\n [ComfyUI] Merging 3094 pairs\n [ComfyUI] Final splats: 100000\n [capture-loop] iter=150 t=18.0s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=7 ram=5.9/16.0GB (37%) swap=0.2/2.9GB (8%) cpu=40% browser_rss=0.65GB\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianMerge: wrote D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\output\\applemerged.ply (100000 splats, 23.7 MB)\n [ComfyUI] \u001b[32m[INFO]\u001b[0m \u001b[32mPrompt executed in 19.06 seconds\u001b[0m\n Node executed (2 total), capturing...\n Frame 4 saved (frame_003.jpg, t=19.4s)\n [capture-node] freeze=6ms shot=107ms unfreeze=0ms saved=True\n Execution complete (t=19.4s)\n [3d-wait] Phase 1: Waiting for 'Loading 3D Model' text to disappear...\n [3d-wait] Phase 1 done in 0.0s\n [3d-wait] Phase 2: iframes=1\n [3d-wait] iframe viewer_ready=False (matched 0 console logs)\n [3d-wait] Waiting for 'Loaded successfully' console message (timeout=60s)...\n [3d-wait] iframe wait exception: Timeout 60000ms exceeded while waiting for event \"console\"\n=========================== logs ===========================\nwaiting for event \"console\"\n============================================================\n [3d-wait] Total 3D wait: 61.2s\n Captured 4 unique frames over 80.76s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41884/extensions/ComfyUI-GaussianPack/viewer_gaussian_dual.html, canvas=486x229, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: merge_splats_executed.png\n [timing] final_screenshot: 0.2s\n Captured 5 video frames", "hardware": {"os": "Windows-10-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "rotate_splats": {"src": "screenshots/rotate_splats_executed.png", "title": "rotate_splats", "status": "pass", "duration": "69.68", "log": "Capturing execution frames: rotate_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\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 Queuing workflow for execution...\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 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\": [\"18\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 18: TransformGaussian\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"rotate_x\": -90, \"rotate_y\": 0, \"rotate_z\": 0, \"ply_path\": [\"1\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Generated prompt_id: 606fc7b4-1ef0-4a8b-bb86-ea5ab470d06c\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\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 -> D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m TransformGaussian: 200000 splats, rotation X=-90.0 Y=0.0 Z=0.0\n [ComfyUI] \u001b[32m[INFO]\u001b[0m TransformGaussian: rotated SH AC (sh_degree=3, 15 coeffs/channel x 3 channels) via Wigner-D\n [ComfyUI] \u001b[32m[INFO]\u001b[0m TransformGaussian: wrote apple_rot_m90_p0_p0_0e442043.ply (47.3 MB)\n [ComfyUI] \u001b[32m[INFO]\u001b[0m \u001b[32mPrompt executed in 0.81 seconds\u001b[0m\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=1.2s)\n [capture-node] freeze=48ms shot=343ms unfreeze=0ms saved=True\n Execution complete (t=1.2s)\n [3d-wait] Phase 1: Waiting for 'Loading 3D Model' text to disappear...\n [3d-wait] Phase 1 done in 0.0s\n [3d-wait] Phase 2: iframes=1\n [3d-wait] iframe viewer_ready=False (matched 0 console logs)\n [3d-wait] Waiting for 'Loaded successfully' console message (timeout=60s)...\n [3d-wait] iframe wait exception: Timeout 60000ms exceeded while waiting for event \"console\"\n=========================== logs ===========================\nwaiting for event \"console\"\n============================================================\n [3d-wait] Total 3D wait: 60.0s\n Captured 2 unique frames over 61.65s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41884/extensions/ComfyUI-GaussianPack/viewer_gaussian_dual.html, canvas=486x203, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: rotate_splats_executed.png\n [timing] final_screenshot: 0.2s\n Captured 3 video frames", "hardware": {"os": "Windows-10-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "spectate": {"src": "screenshots/spectate_executed.png", "title": "spectate", "status": "pass", "duration": "17.16", "log": "Capturing execution frames: spectate.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\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 Queuing workflow for execution...\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 2 nodes\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 1: LoadPLY\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"ply_file\": \"compressed_room.ply\"}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 2: PreviewGaussians\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"camera_mode\": \"spectate\", \"fov_degrees\": 70, \"renderer\": \"playcanvas\", \"transport_format\": \"ply\", \"ply_path\": [\"1\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Generated prompt_id: 5a885c67-a806-4dae-a8c2-710d79b29166\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\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: compressed_room.ply -> D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\compressed_room.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m \u001b[32mPrompt executed in 0.01 seconds\u001b[0m\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=0.5s)\n [capture-node] freeze=5ms shot=98ms unfreeze=0ms saved=True\n Execution complete (t=0.5s)\n [3d-wait] Phase 1: Waiting for 'Loading 3D Model' text to disappear...\n [3d-wait] Phase 1 done in 0.0s\n [3d-wait] Phase 2: iframes=1\n [3d-wait] iframe viewer_ready=False (matched 0 console logs)\n [3d-wait] Waiting for 'Loaded successfully' console message (timeout=60s)...\n [3d-wait] Got 'Loaded successfully' after 1.2s\n [3d-wait] Unfrozen in 0.011s, rendering for 5s...\n [3d-wait] JS halted via CDP after 6.1s\n [3d-wait] Re-frozen in 7.2s\n [3d-wait] Total 3D wait: 8.4s\n Captured 2 unique frames over 9.0s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41884/extensions/ComfyUI-GaussianPack/viewer_gaussian.html?mode, canvas=781x394, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: spectate_executed.png\n [timing] final_screenshot: 0.3s\n Captured 3 video frames", "hardware": {"os": "Windows-10-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}};
+ const workflowData = {"gaussian_analysis": {"src": "", "title": "gaussian_analysis", "status": "fail", "duration": "9.29", "log": "Capturing execution frames: gaussian_analysis.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\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 Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [1,19,20,21], sample: {\"inputs\":{\"UNKNOWN\":\"apple.ply\"},\"_meta\":{}}\n Status: FAILED\n Error: Workflow validation failed\n Details: graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [1,19,20,21], sample: {\"inputs\":{\"UNKNOWN\":\"apple.ply\"},\"_meta\":{}}", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "Intel64 Family 6 Model 106 Stepping 6, GenuineIntel"}}, "merge_splats": {"src": "", "title": "merge_splats", "status": "fail", "duration": "5.73", "log": "Capturing execution frames: merge_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\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 Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 3 nodes, missing class_type: [1,12,14], sample: {\"inputs\":{\"UNKNOWN\":\"apple.ply\"},\"_meta\":{}}\n Status: FAILED\n Error: Workflow validation failed\n Details: graphToPrompt produced nodes without class_type: graphToPrompt: 3 nodes, missing class_type: [1,12,14], sample: {\"inputs\":{\"UNKNOWN\":\"apple.ply\"},\"_meta\":{}}", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "Intel64 Family 6 Model 106 Stepping 6, GenuineIntel"}}, "rotate_splats": {"src": "", "title": "rotate_splats", "status": "fail", "duration": "5.76", "log": "Capturing execution frames: rotate_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[1m\u001b[31m[ERROR]\u001b[0m Exception in callback _ProactorBasePipeTransport._call_connection_lost()\n [ComfyUI] handle: \n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"asyncio\\events.py\", line 89, in _run\n [ComfyUI] File \"asyncio\\proactor_events.py\", line 165, in _call_connection_lost\n [ComfyUI] ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 3 nodes, missing class_type: [1,14,18], sample: {\"inputs\":{\"UNKNOWN\":\"apple.ply\"},\"_meta\":{}}\n Status: FAILED\n Error: Workflow validation failed\n Details: graphToPrompt produced nodes without class_type: graphToPrompt: 3 nodes, missing class_type: [1,14,18], sample: {\"inputs\":{\"UNKNOWN\":\"apple.ply\"},\"_meta\":{}}", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "Intel64 Family 6 Model 106 Stepping 6, GenuineIntel"}}, "spectate": {"src": "", "title": "spectate", "status": "fail", "duration": "5.71", "log": "Capturing execution frames: spectate.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[1m\u001b[31m[ERROR]\u001b[0m Exception in callback _ProactorBasePipeTransport._call_connection_lost()\n [ComfyUI] handle: \n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"asyncio\\events.py\", line 89, in _run\n [ComfyUI] File \"asyncio\\proactor_events.py\", line 165, in _call_connection_lost\n [ComfyUI] ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 2 nodes, missing class_type: [1,2], sample: {\"inputs\":{\"UNKNOWN\":\"compressed_room.ply\"},\"_meta\":{}}\n Status: FAILED\n Error: Workflow validation failed\n Details: graphToPrompt produced nodes without class_type: graphToPrompt: 2 nodes, missing class_type: [1,2], sample: {\"inputs\":{\"UNKNOWN\":\"compressed_room.ply\"},\"_meta\":{}}", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "Intel64 Family 6 Model 106 Stepping 6, GenuineIntel"}}};
const workflowNames = Object.keys(workflowData);
- const videoData = {"merge_splats": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: merge_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[1m\u001b[31m[ERROR]\u001b[0m Exception in callback _ProactorBasePipeTransport._call_connection_lost()\n [ComfyUI] handle: \n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"asyncio\\events.py\", line 89, in _run\n [ComfyUI] File \"asyncio\\proactor_events.py\", line 165, in _call_connection_lost\n [ComfyUI] ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host"}, {"file": "frame_001.jpg", "time": 2.23, "log": "Capturing execution frames: merge_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[1m\u001b[31m[ERROR]\u001b[0m Exception in callback _ProactorBasePipeTransport._call_connection_lost()\n [ComfyUI] handle: \n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"asyncio\\events.py\", line 89, in _run\n [ComfyUI] File \"asyncio\\proactor_events.py\", line 165, in _call_connection_lost\n [ComfyUI] ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\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: da948adf-79a8-4b1c-a4e6-e49d0db097e4\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\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 -> D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianMerge: 200000 -> 100000 splats (ratio=0.5000, backend=nanogs_cpu) on D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] Loading PLY: D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] Initial splats: 200000\n [ComfyUI] Pruned splats: 200000, target: 100000\n [ComfyUI] Opacity Mean: 0.53443545 Median: 0.48362076\n [ComfyUI] Pruning splats with opacity below 0.1000\n [ComfyUI] Original count: 200000, after opacity pruning: 200000\n [ComfyUI] After opacity pruning, 200000 splats remain.\n [ComfyUI] Pass 1: 200000 splats"}, {"file": "frame_002.jpg", "time": 4.45, "log": "Capturing execution frames: merge_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[1m\u001b[31m[ERROR]\u001b[0m Exception in callback _ProactorBasePipeTransport._call_connection_lost()\n [ComfyUI] handle: \n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"asyncio\\events.py\", line 89, in _run\n [ComfyUI] File \"asyncio\\proactor_events.py\", line 165, in _call_connection_lost\n [ComfyUI] ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\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: da948adf-79a8-4b1c-a4e6-e49d0db097e4\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\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 -> D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianMerge: 200000 -> 100000 splats (ratio=0.5000, backend=nanogs_cpu) on D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] Loading PLY: D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] Initial splats: 200000\n [ComfyUI] Pruned splats: 200000, target: 100000\n [ComfyUI] Opacity Mean: 0.53443545 Median: 0.48362076\n [ComfyUI] Pruning splats with opacity below 0.1000\n [ComfyUI] Original count: 200000, after opacity pruning: 200000\n [ComfyUI] After opacity pruning, 200000 splats remain.\n [ComfyUI] Pass 1: 200000 splats\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=5ms shot=94ms unfreeze=5ms saved=True"}, {"file": "frame_003.jpg", "time": 19.41, "log": "Capturing execution frames: merge_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[1m\u001b[31m[ERROR]\u001b[0m Exception in callback _ProactorBasePipeTransport._call_connection_lost()\n [ComfyUI] handle: \n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"asyncio\\events.py\", line 89, in _run\n [ComfyUI] File \"asyncio\\proactor_events.py\", line 165, in _call_connection_lost\n [ComfyUI] ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\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: da948adf-79a8-4b1c-a4e6-e49d0db097e4\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\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 -> D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianMerge: 200000 -> 100000 splats (ratio=0.5000, backend=nanogs_cpu) on D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] Loading PLY: D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] Initial splats: 200000\n [ComfyUI] Pruned splats: 200000, target: 100000\n [ComfyUI] Opacity Mean: 0.53443545 Median: 0.48362076\n [ComfyUI] Pruning splats with opacity below 0.1000\n [ComfyUI] Original count: 200000, after opacity pruning: 200000\n [ComfyUI] After opacity pruning, 200000 splats remain.\n [ComfyUI] Pass 1: 200000 splats\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=5ms shot=94ms unfreeze=5ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.5s)\n [capture-periodic] freeze=4ms shot=101ms unfreeze=6ms saved=True\n [ComfyUI] \n [ComfyUI] Edge costs: 0%| | 0/19 [00:00, ?it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 5%|5 | 1/19 [00:00<00:03, 4.54it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 11%|# | 2/19 [00:00<00:03, 4.40it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 16%|#5 | 3/19 [00:00<00:03, 4.48it/s]\n [capture-loop] iter=50 t=6.0s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=6 ram=6.0/16.0GB (38%) swap=0.2/2.9GB (8%) cpu=46% browser_rss=0.75GB\n [ComfyUI] \n [ComfyUI] Edge costs: 21%|##1 | 4/19 [00:00<00:03, 4.52it/s]\n [ComfyUI] Edge costs: 26%|##6 | 5/19 [00:01<00:03, 4.54it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 32%|###1 | 6/19 [00:01<00:02, 4.54it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 37%|###6 | 7/19 [00:01<00:02, 4.48it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 42%|####2 | 8/19 [00:01<00:02, 4.47it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 47%|####7 | 9/19 [00:01<00:02, 4.54it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 53%|#####2 | 10/19 [00:02<00:01, 4.51it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 58%|#####7 | 11/19 [00:02<00:01, 4.62it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 63%|######3 | 12/19 [00:02<00:01, 4.44it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 68%|######8 | 13/19 [00:02<00:01, 4.50it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 74%|#######3 | 14/19 [00:03<00:01, 4.56it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 79%|#######8 | 15/19 [00:03<00:00, 4.69it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 84%|########4 | 16/19 [00:03<00:00, 4.72it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 89%|########9 | 17/19 [00:03<00:00, 4.55it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 95%|#########4| 18/19 [00:03<00:00, 4.57it/s]\n [ComfyUI] Edge costs: 100%|##########| 19/19 [00:04<00:00, 4.69it/s]\n [ComfyUI] edges: 1848776, pairs: 96906 (need 100000)\n [ComfyUI] Merging 96906 pairs\n [ComfyUI] Pass 2: 103094 splats\n [capture-loop] iter=100 t=12.2s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=6 ram=5.9/16.0GB (37%) swap=0.2/2.9GB (8%) cpu=45% browser_rss=0.65GB\n [ComfyUI] \n [ComfyUI] Edge costs: 0%| | 0/10 [00:00, ?it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 10%|# | 1/10 [00:00<00:01, 4.75it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 20%|## | 2/10 [00:00<00:01, 4.67it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 30%|### | 3/10 [00:00<00:01, 4.87it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 40%|#### | 4/10 [00:00<00:01, 4.85it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 50%|##### | 5/10 [00:01<00:01, 4.81it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 60%|###### | 6/10 [00:01<00:00, 4.90it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 70%|####### | 7/10 [00:01<00:00, 5.01it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 80%|######## | 8/10 [00:01<00:00, 5.09it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 90%|######### | 9/10 [00:01<00:00, 4.87it/s]\n [ComfyUI] Edge costs: 100%|##########| 10/10 [00:01<00:00, 5.33it/s]\n [ComfyUI] edges: 919857, pairs: 3094 (need 3094)\n [ComfyUI] Merging 3094 pairs\n [ComfyUI] Final splats: 100000\n [capture-loop] iter=150 t=18.0s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=7 ram=5.9/16.0GB (37%) swap=0.2/2.9GB (8%) cpu=40% browser_rss=0.65GB\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianMerge: wrote D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\output\\applemerged.ply (100000 splats, 23.7 MB)\n [ComfyUI] \u001b[32m[INFO]\u001b[0m \u001b[32mPrompt executed in 19.06 seconds\u001b[0m"}, {"file": "frame_004.jpg", "time": 85.5696930885315, "log": "Final screenshot"}], "total_time": 80.76}, "spectate": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: spectate.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache."}, {"file": "frame_001.jpg", "time": 0.47, "log": "Capturing execution frames: spectate.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\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 Queuing workflow for execution...\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 2 nodes\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 1: LoadPLY\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"ply_file\": \"compressed_room.ply\"}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 2: PreviewGaussians\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"camera_mode\": \"spectate\", \"fov_degrees\": 70, \"renderer\": \"playcanvas\", \"transport_format\": \"ply\", \"ply_path\": [\"1\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Generated prompt_id: 5a885c67-a806-4dae-a8c2-710d79b29166\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\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: compressed_room.ply -> D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\compressed_room.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m \u001b[32mPrompt executed in 0.01 seconds\u001b[0m"}, {"file": "frame_002.jpg", "time": 11.37205195426941, "log": "Final screenshot"}], "total_time": 9.0}, "gaussian_analysis": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": " [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\nCapturing execution frames: gaussian_analysis.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache."}, {"file": "frame_001.jpg", "time": 0.5, "log": " [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\nCapturing execution frames: gaussian_analysis.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 Queuing workflow for execution...\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 19: GaussianAnalysis\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"ply_path\": [\"1\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 20: LoadPLY\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"ply_file\": \"compressed_room.ply\"}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 21: GaussianAnalysis\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"ply_path\": [\"20\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Generated prompt_id: 68d52ede-a37c-4f48-b22a-4bbb68beb4aa\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\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: compressed_room.ply -> D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\compressed_room.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianAnalysis:\n [ComfyUI] == Gaussian PLY analysis ==\n [ComfyUI] path: D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\compressed_room.ply\n [ComfyUI] size: 26.70 MB (28,000,362 bytes)\n [ComfyUI] encoding: binary_little_endian 1.0\n [ComfyUI] splat count: 500,000\n [ComfyUI] bytes/splat: 56.0\n [ComfyUI] flavor: SH-stripped 3DGS (DC only, no view-dependent term)\n [ComfyUI] SH degree: 0\n [ComfyUI] precision: float32 (all)\n [ComfyUI] has f_dc_*: True\n [ComfyUI] has RGB uchar: False\n [ComfyUI] has opacity: True\n [ComfyUI] has scale_*: True\n [ComfyUI] has rot_*: True\n [ComfyUI] total props: 14\n [ComfyUI] \u001b[32m[INFO]\u001b[0m LoadPLY: apple.ply -> D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianAnalysis:\n [ComfyUI] == Gaussian PLY analysis ==\n [ComfyUI] path: D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] size: 47.30 MB (49,601,531 bytes)\n [ComfyUI] encoding: binary_little_endian 1.0\n [ComfyUI] splat count: 200,000\n [ComfyUI] bytes/splat: 248.0\n [ComfyUI] flavor: raw 3DGS PLY (SH degree 3)\n [ComfyUI] SH degree: 3\n [ComfyUI] precision: float32 (all)\n [ComfyUI] has f_dc_*: True\n [ComfyUI] has RGB uchar: False\n [ComfyUI] has opacity: True\n [ComfyUI] has scale_*: True\n [ComfyUI] has rot_*: True\n [ComfyUI] total props: 62\n [ComfyUI] \u001b[32m[INFO]\u001b[0m \u001b[32mPrompt executed in 0.02 seconds\u001b[0m"}, {"file": "frame_002.jpg", "time": 2.994668483734131, "log": "Final screenshot"}], "total_time": 0.67}, "rotate_splats": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: rotate_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache."}, {"file": "frame_001.jpg", "time": 1.17, "log": "Capturing execution frames: rotate_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\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 Queuing workflow for execution...\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 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\": [\"18\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 18: TransformGaussian\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"rotate_x\": -90, \"rotate_y\": 0, \"rotate_z\": 0, \"ply_path\": [\"1\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Generated prompt_id: 606fc7b4-1ef0-4a8b-bb86-ea5ab470d06c\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\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 -> D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m TransformGaussian: 200000 splats, rotation X=-90.0 Y=0.0 Z=0.0\n [ComfyUI] \u001b[32m[INFO]\u001b[0m TransformGaussian: rotated SH AC (sh_degree=3, 15 coeffs/channel x 3 channels) via Wigner-D\n [ComfyUI] \u001b[32m[INFO]\u001b[0m TransformGaussian: wrote apple_rot_m90_p0_p0_0e442043.ply (47.3 MB)\n [ComfyUI] \u001b[32m[INFO]\u001b[0m \u001b[32mPrompt executed in 0.81 seconds\u001b[0m"}, {"file": "frame_002.jpg", "time": 63.83711504936218, "log": "Final screenshot"}], "total_time": 61.65}};
+ const videoData = {};
const inIframe = window !== window.top;
let currentWorkflow = null;
diff --git a/dev/windows-portable-cpu/logs/gaussian_analysis.log b/dev/windows-portable-cpu/logs/gaussian_analysis.log
index dfd1fd8..5842a40 100644
--- a/dev/windows-portable-cpu/logs/gaussian_analysis.log
+++ b/dev/windows-portable-cpu/logs/gaussian_analysis.log
@@ -1,71 +1,9 @@
- [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
Capturing execution frames: gaussian_analysis.json
+ [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
[ComfyUI] [32m[INFO][0m Using RAM pressure cache.
Frame 1 saved (frame_000.jpg, t=0.0s)
Validating workflow...
- Queuing workflow for execution...
- [ComfyUI] [32m[INFO][0m === /validate endpoint called ===
- [ComfyUI] [32m[INFO][0m Received JSON with keys: ['prompt']
- [ComfyUI] [32m[INFO][0m Prompt has 4 nodes
- [ComfyUI] [32m[INFO][0m Node 1: LoadPLY
- [ComfyUI] [32m[INFO][0m Inputs: {"ply_file": "apple.ply"}
- [ComfyUI] [32m[INFO][0m Node 19: GaussianAnalysis
- [ComfyUI] [32m[INFO][0m Inputs: {"ply_path": ["1", 0]}
- [ComfyUI] [32m[INFO][0m Node 20: LoadPLY
- [ComfyUI] [32m[INFO][0m Inputs: {"ply_file": "compressed_room.ply"}
- [ComfyUI] [32m[INFO][0m Node 21: GaussianAnalysis
- [ComfyUI] [32m[INFO][0m Inputs: {"ply_path": ["20", 0]}
- [ComfyUI] [32m[INFO][0m Generated prompt_id: 68d52ede-a37c-4f48-b22a-4bbb68beb4aa
- [ComfyUI] [32m[INFO][0m Calling execution.validate_prompt()...
- [ComfyUI] [32m[INFO][0m Validation result: valid=True
- [ComfyUI] [32m[INFO][0m === Validation PASSED ===
- [ComfyUI] [32m[INFO][0m got prompt
- [ComfyUI] [32m[INFO][0m LoadPLY: compressed_room.ply -> D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\compressed_room.ply
- [ComfyUI] [32m[INFO][0m GaussianAnalysis:
- [ComfyUI] == Gaussian PLY analysis ==
- [ComfyUI] path: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\compressed_room.ply
- [ComfyUI] size: 26.70 MB (28,000,362 bytes)
- [ComfyUI] encoding: binary_little_endian 1.0
- [ComfyUI] splat count: 500,000
- [ComfyUI] bytes/splat: 56.0
- [ComfyUI] flavor: SH-stripped 3DGS (DC only, no view-dependent term)
- [ComfyUI] SH degree: 0
- [ComfyUI] precision: float32 (all)
- [ComfyUI] has f_dc_*: True
- [ComfyUI] has RGB uchar: False
- [ComfyUI] has opacity: True
- [ComfyUI] has scale_*: True
- [ComfyUI] has rot_*: True
- [ComfyUI] total props: 14
- [ComfyUI] [32m[INFO][0m LoadPLY: apple.ply -> D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\apple.ply
- [ComfyUI] [32m[INFO][0m GaussianAnalysis:
- [ComfyUI] == Gaussian PLY analysis ==
- [ComfyUI] path: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\apple.ply
- [ComfyUI] size: 47.30 MB (49,601,531 bytes)
- [ComfyUI] encoding: binary_little_endian 1.0
- [ComfyUI] splat count: 200,000
- [ComfyUI] bytes/splat: 248.0
- [ComfyUI] flavor: raw 3DGS PLY (SH degree 3)
- [ComfyUI] SH degree: 3
- [ComfyUI] precision: float32 (all)
- [ComfyUI] has f_dc_*: True
- [ComfyUI] has RGB uchar: False
- [ComfyUI] has opacity: True
- [ComfyUI] has scale_*: True
- [ComfyUI] has rot_*: True
- [ComfyUI] total props: 62
- [ComfyUI] [32m[INFO][0m [32mPrompt executed in 0.02 seconds[0m
- Node executed (2 total), capturing...
- Frame 2 saved (frame_001.jpg, t=0.5s)
- [capture-node] freeze=6ms shot=103ms unfreeze=0ms saved=True
- Execution complete (t=0.5s)
- [3d-wait] Phase 1: Waiting for 'Loading 3D Model' text to disappear...
- [3d-wait] Phase 1 done in 0.0s
- [3d-wait] Phase 2: iframes=0
- [3d-wait] Total 3D wait: 0.0s
- Captured 2 unique frames over 0.67s
- [debug] iframes: 0
- [timing] trigger_3d_previews: 0.0s
- Saved high-quality screenshot: gaussian_analysis_executed.png
- [timing] final_screenshot: 0.3s
- Captured 3 video frames
\ No newline at end of file
+ Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [1,19,20,21], sample: {"inputs":{"UNKNOWN":"apple.ply"},"_meta":{}}
+ Status: FAILED
+ Error: Workflow validation failed
+ Details: graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [1,19,20,21], sample: {"inputs":{"UNKNOWN":"apple.ply"},"_meta":{}}
\ No newline at end of file
diff --git a/dev/windows-portable-cpu/logs/gaussian_analysis_console.log b/dev/windows-portable-cpu/logs/gaussian_analysis_console.log
index 74831b7..9a71c4c 100644
--- a/dev/windows-portable-cpu/logs/gaussian_analysis_console.log
+++ b/dev/windows-portable-cpu/logs/gaussian_analysis_console.log
@@ -8,15 +8,14 @@
[Console-error] Failed to load resource: the server responded with a status of 404 (Not Found)
[Console-error] Failed to load resource: the server responded with a status of 404 (Not Found)
[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "three". Relati…ences must start with either "/", "./", or "../".}
+[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "playcanvas". R…ences must start with either "/", "./", or "../".}
+[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "three". Relati…ences must start with either "/", "./", or "../".}
[Console-warning] THREE.WARNING: Multiple instances of Three.js being imported.
[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "playcanvas". R…ences must start with either "/", "./", or "../".}
-[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "playcanvas". R…ences must start with either "/", "./", or "../".}
-[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "three". Relati…ences must start with either "/", "./", or "../".}
-[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "three". Relati…ences must start with either "/", "./", or "../".}
+[Console-log] [GaussianPack Sharp] Loading extension...
[Console-log] [GaussianPack] Loading extension...
+[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "three". Relati…ences must start with either "/", "./", or "../".}
[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "playcanvas". R…ences must start with either "/", "./", or "../".}
[Console-warning] [MaskEditor] ComfyApp.open_maskeditor is deprecated. Plugins should migrate to using the command system or direct node context menu integration.
-[Console-log] [GaussianPack] Registering Preview Gaussians node
-[Console-log] [GaussianPack] Registering Preview Gaussian Dual node
[Console-info] Autofocus processing was blocked because a document already has a focused element.
-[Console-log] [comfy-test] graphToPrompt: 4 nodes, missing class_type: [], sample: {"inputs":{"ply_file":"apple.ply"},"class_type":"LoadPLY","_meta":{"title":"Load PLY"}}
\ No newline at end of file
+[Console-log] [comfy-test] graphToPrompt: 4 nodes, missing class_type: [1,19,20,21], sample: {"inputs":{"UNKNOWN":"apple.ply"},"_meta":{}}
\ No newline at end of file
diff --git a/dev/windows-portable-cpu/logs/gaussian_analysis_resources.csv b/dev/windows-portable-cpu/logs/gaussian_analysis_resources.csv
index 445ea99..adb1d37 100644
--- a/dev/windows-portable-cpu/logs/gaussian_analysis_resources.csv
+++ b/dev/windows-portable-cpu/logs/gaussian_analysis_resources.csv
@@ -8,7 +8,5 @@ t,ram_gb,vram_gb
5.0,1.43,
6.0,1.43,
7.0,1.43,
-8.1,1.43,
-9.1,1.43,
-10.1,1.43,
-11.1,1.43,
+8.0,1.45,
+9.1,1.45,
diff --git a/dev/windows-portable-cpu/logs/merge_splats.log b/dev/windows-portable-cpu/logs/merge_splats.log
index bd138d9..76e3304 100644
--- a/dev/windows-portable-cpu/logs/merge_splats.log
+++ b/dev/windows-portable-cpu/logs/merge_splats.log
@@ -1,131 +1,9 @@
Capturing execution frames: merge_splats.json
[ComfyUI] [32m[INFO][0m Using RAM pressure cache.
[ComfyUI] [32m[INFO][0m Using RAM pressure cache.
- [ComfyUI] [1m[31m[ERROR][0m Exception in callback _ProactorBasePipeTransport._call_connection_lost()
- [ComfyUI] handle:
- [ComfyUI] Traceback (most recent call last):
- [ComfyUI] File "asyncio\events.py", line 89, in _run
- [ComfyUI] File "asyncio\proactor_events.py", line 165, in _call_connection_lost
- [ComfyUI] ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
Frame 1 saved (frame_000.jpg, t=0.0s)
Validating workflow...
- Queuing workflow for execution...
- [ComfyUI] [32m[INFO][0m === /validate endpoint called ===
- [ComfyUI] [32m[INFO][0m Received JSON with keys: ['prompt']
- [ComfyUI] [32m[INFO][0m Prompt has 3 nodes
- [ComfyUI] [32m[INFO][0m Node 1: LoadPLY
- [ComfyUI] [32m[INFO][0m Inputs: {"ply_file": "apple.ply"}
- [ComfyUI] [32m[INFO][0m Node 12: GaussianMerge
- [ComfyUI] [32m[INFO][0m Inputs: {"target_count": 100000, "output_filename": "applemerged", "opacity_threshold": 0.1, "k": 16, "backend": "nanogs_cpu", "ply_path": ["1", 0]}
- [ComfyUI] [32m[INFO][0m Node 14: PreviewGaussianDual
- [ComfyUI] [32m[INFO][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]}
- [ComfyUI] [32m[INFO][0m Generated prompt_id: da948adf-79a8-4b1c-a4e6-e49d0db097e4
- [ComfyUI] [32m[INFO][0m Calling execution.validate_prompt()...
- [ComfyUI] [32m[INFO][0m Validation result: valid=True
- [ComfyUI] [32m[INFO][0m === Validation PASSED ===
- [ComfyUI] [32m[INFO][0m got prompt
- [ComfyUI] [32m[INFO][0m LoadPLY: apple.ply -> D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\apple.ply
- [ComfyUI] [32m[INFO][0m GaussianMerge: 200000 -> 100000 splats (ratio=0.5000, backend=nanogs_cpu) on D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\apple.ply
- [ComfyUI] Loading PLY: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\apple.ply
- [ComfyUI] Initial splats: 200000
- [ComfyUI] Pruned splats: 200000, target: 100000
- [ComfyUI] Opacity Mean: 0.53443545 Median: 0.48362076
- [ComfyUI] Pruning splats with opacity below 0.1000
- [ComfyUI] Original count: 200000, after opacity pruning: 200000
- [ComfyUI] After opacity pruning, 200000 splats remain.
- [ComfyUI] Pass 1: 200000 splats
- Frame 2 saved (frame_001.jpg, t=2.2s)
- [capture-periodic] freeze=5ms shot=94ms unfreeze=5ms saved=True
- Frame 3 saved (frame_002.jpg, t=4.5s)
- [capture-periodic] freeze=4ms shot=101ms unfreeze=6ms saved=True
- [ComfyUI]
- [ComfyUI] Edge costs: 0%| | 0/19 [00:00, ?it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 5%|5 | 1/19 [00:00<00:03, 4.54it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 11%|# | 2/19 [00:00<00:03, 4.40it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 16%|#5 | 3/19 [00:00<00:03, 4.48it/s]
- [capture-loop] iter=50 t=6.0s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=6 ram=6.0/16.0GB (38%) swap=0.2/2.9GB (8%) cpu=46% browser_rss=0.75GB
- [ComfyUI]
- [ComfyUI] Edge costs: 21%|##1 | 4/19 [00:00<00:03, 4.52it/s]
- [ComfyUI] Edge costs: 26%|##6 | 5/19 [00:01<00:03, 4.54it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 32%|###1 | 6/19 [00:01<00:02, 4.54it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 37%|###6 | 7/19 [00:01<00:02, 4.48it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 42%|####2 | 8/19 [00:01<00:02, 4.47it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 47%|####7 | 9/19 [00:01<00:02, 4.54it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 53%|#####2 | 10/19 [00:02<00:01, 4.51it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 58%|#####7 | 11/19 [00:02<00:01, 4.62it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 63%|######3 | 12/19 [00:02<00:01, 4.44it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 68%|######8 | 13/19 [00:02<00:01, 4.50it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 74%|#######3 | 14/19 [00:03<00:01, 4.56it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 79%|#######8 | 15/19 [00:03<00:00, 4.69it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 84%|########4 | 16/19 [00:03<00:00, 4.72it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 89%|########9 | 17/19 [00:03<00:00, 4.55it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 95%|#########4| 18/19 [00:03<00:00, 4.57it/s]
- [ComfyUI] Edge costs: 100%|##########| 19/19 [00:04<00:00, 4.69it/s]
- [ComfyUI] edges: 1848776, pairs: 96906 (need 100000)
- [ComfyUI] Merging 96906 pairs
- [ComfyUI] Pass 2: 103094 splats
- [capture-loop] iter=100 t=12.2s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=6 ram=5.9/16.0GB (37%) swap=0.2/2.9GB (8%) cpu=45% browser_rss=0.65GB
- [ComfyUI]
- [ComfyUI] Edge costs: 0%| | 0/10 [00:00, ?it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 10%|# | 1/10 [00:00<00:01, 4.75it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 20%|## | 2/10 [00:00<00:01, 4.67it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 30%|### | 3/10 [00:00<00:01, 4.87it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 40%|#### | 4/10 [00:00<00:01, 4.85it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 50%|##### | 5/10 [00:01<00:01, 4.81it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 60%|###### | 6/10 [00:01<00:00, 4.90it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 70%|####### | 7/10 [00:01<00:00, 5.01it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 80%|######## | 8/10 [00:01<00:00, 5.09it/s]
- [ComfyUI]
- [ComfyUI] Edge costs: 90%|######### | 9/10 [00:01<00:00, 4.87it/s]
- [ComfyUI] Edge costs: 100%|##########| 10/10 [00:01<00:00, 5.33it/s]
- [ComfyUI] edges: 919857, pairs: 3094 (need 3094)
- [ComfyUI] Merging 3094 pairs
- [ComfyUI] Final splats: 100000
- [capture-loop] iter=150 t=18.0s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=7 ram=5.9/16.0GB (37%) swap=0.2/2.9GB (8%) cpu=40% browser_rss=0.65GB
- [ComfyUI] [32m[INFO][0m GaussianMerge: wrote D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\output\applemerged.ply (100000 splats, 23.7 MB)
- [ComfyUI] [32m[INFO][0m [32mPrompt executed in 19.06 seconds[0m
- Node executed (2 total), capturing...
- Frame 4 saved (frame_003.jpg, t=19.4s)
- [capture-node] freeze=6ms shot=107ms unfreeze=0ms saved=True
- Execution complete (t=19.4s)
- [3d-wait] Phase 1: Waiting for 'Loading 3D Model' text to disappear...
- [3d-wait] Phase 1 done in 0.0s
- [3d-wait] Phase 2: iframes=1
- [3d-wait] iframe viewer_ready=False (matched 0 console logs)
- [3d-wait] Waiting for 'Loaded successfully' console message (timeout=60s)...
- [3d-wait] iframe wait exception: Timeout 60000ms exceeded while waiting for event "console"
-=========================== logs ===========================
-waiting for event "console"
-============================================================
- [3d-wait] Total 3D wait: 61.2s
- Captured 4 unique frames over 80.76s
- [debug] iframes: 1
- [debug] iframe[0]: src=http://127.0.0.1:41884/extensions/ComfyUI-GaussianPack/viewer_gaussian_dual.html, canvas=486x229, rafFrozen=True
- [timing] trigger_3d_previews: 0.0s
- Saved high-quality screenshot: merge_splats_executed.png
- [timing] final_screenshot: 0.2s
- Captured 5 video frames
\ No newline at end of file
+ Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 3 nodes, missing class_type: [1,12,14], sample: {"inputs":{"UNKNOWN":"apple.ply"},"_meta":{}}
+ Status: FAILED
+ Error: Workflow validation failed
+ Details: graphToPrompt produced nodes without class_type: graphToPrompt: 3 nodes, missing class_type: [1,12,14], sample: {"inputs":{"UNKNOWN":"apple.ply"},"_meta":{}}
\ No newline at end of file
diff --git a/dev/windows-portable-cpu/logs/merge_splats_console.log b/dev/windows-portable-cpu/logs/merge_splats_console.log
index c7018f2..828b67e 100644
--- a/dev/windows-portable-cpu/logs/merge_splats_console.log
+++ b/dev/windows-portable-cpu/logs/merge_splats_console.log
@@ -7,25 +7,14 @@
[Console-error] Failed to load resource: the server responded with a status of 404 (Not Found)
[Console-error] Failed to load resource: the server responded with a status of 404 (Not Found)
[Console-error] Failed to load resource: the server responded with a status of 404 (Not Found)
+[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "playcanvas". R…ences must start with either "/", "./", or "../".}
[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "three". Relati…ences must start with either "/", "./", or "../".}
+[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "three". Relati…ences must start with either "/", "./", or "../".}
+[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "playcanvas". R…ences must start with either "/", "./", or "../".}
+[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "three". Relati…ences must start with either "/", "./", or "../".}
+[Console-log] [GaussianPack Sharp] Loading extension...
[Console-warning] THREE.WARNING: Multiple instances of Three.js being imported.
-[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "three". Relati…ences must start with either "/", "./", or "../".}
-[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "playcanvas". R…ences must start with either "/", "./", or "../".}
-[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "playcanvas". R…ences must start with either "/", "./", or "../".}
-[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "three". Relati…ences must start with either "/", "./", or "../".}
[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "playcanvas". R…ences must start with either "/", "./", or "../".}
[Console-log] [GaussianPack] Loading extension...
[Console-warning] [MaskEditor] ComfyApp.open_maskeditor is deprecated. Plugins should migrate to using the command system or direct node context menu integration.
-[Console-log] [GaussianPack] Registering Preview Gaussians node
-[Console-log] [GaussianPack] Registering Preview Gaussian Dual node
-[Console-warning] Allow attribute will take precedence over 'allowfullscreen'.
-[Console-log] [comfy-test] graphToPrompt: 3 nodes, missing class_type: [], sample: {"inputs":{"ply_file":"apple.ply"},"class_type":"LoadPLY","_meta":{"title":"Load PLY"}}
-[Console-log] [GaussianDualViewer] Ready (layout=slider)
-[Console-warning] [GaussianDualViewer] PlayCanvas can't render two gsplat views in one page; using Spark for the dual view.
-[Console-warning] THREE.Clock: This module has been deprecated. Please use THREE.Timer instead.
-[Console-warning] [GaussianDualViewer] PlayCanvas can't render two gsplat views in one page; using Spark for the dual view.
-[Console-warning] THREE.Clock: This module has been deprecated. Please use THREE.Timer instead.
-[Console-warning] [.WebGL-0x234c001b9600]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels
-[Console-warning] [.WebGL-0x234c001b6600]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels
-[Console-warning] [.WebGL-0x234c001b9600]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels
-[Console-warning] [.WebGL-0x234c001b6600]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels (this message will no longer repeat)
\ No newline at end of file
+[Console-log] [comfy-test] graphToPrompt: 3 nodes, missing class_type: [1,12,14], sample: {"inputs":{"UNKNOWN":"apple.ply"},"_meta":{}}
\ No newline at end of file
diff --git a/dev/windows-portable-cpu/logs/merge_splats_resources.csv b/dev/windows-portable-cpu/logs/merge_splats_resources.csv
index 8c839d5..2e9a6ec 100644
--- a/dev/windows-portable-cpu/logs/merge_splats_resources.csv
+++ b/dev/windows-portable-cpu/logs/merge_splats_resources.csv
@@ -2,84 +2,7 @@
t,ram_gb,vram_gb
0.0,1.45,
1.0,1.45,
-2.1,1.45,
-3.1,1.45,
-4.1,1.45,
-5.1,1.45,
-6.1,1.45,
-7.1,1.5,
-8.1,1.62,
-9.1,1.62,
-10.1,1.62,
-11.1,1.62,
-12.1,1.61,
-13.1,1.63,
-14.1,1.6,
-15.1,1.66,
-16.1,1.58,
-17.1,1.6,
-18.1,1.57,
-19.1,1.57,
-20.2,1.6,
-21.2,1.6,
-22.2,1.52,
-23.2,1.52,
-24.2,1.52,
-25.2,1.52,
-26.2,1.45,
-27.2,1.47,
-28.3,1.45,
-29.3,1.45,
-30.3,1.45,
-31.6,1.46,
-32.8,1.46,
-34.0,1.47,
-35.4,1.45,
-36.4,1.45,
-37.5,1.45,
-39.0,1.45,
-40.9,1.45,
-42.5,1.45,
-43.7,1.45,
-45.0,1.45,
-46.2,1.46,
-47.5,1.46,
-48.7,1.47,
-50.1,1.47,
-51.4,1.47,
-52.7,1.47,
-53.8,1.46,
-55.0,1.45,
-56.1,1.44,
-57.4,1.42,
-58.6,1.42,
-59.8,1.42,
-61.0,1.42,
-62.5,1.41,
-63.7,1.41,
-66.3,1.38,
-67.4,1.37,
-68.4,1.35,
-69.5,1.34,
-70.5,1.34,
-71.5,1.33,
-72.5,1.33,
-73.6,1.32,
-74.6,1.32,
-75.6,1.32,
-76.6,1.31,
-77.6,1.31,
-78.7,1.31,
-79.7,1.3,
-80.7,1.3,
-81.8,1.3,
-82.8,1.29,
-83.8,1.29,
-84.8,1.28,
-85.9,1.28,
-87.0,1.27,
-88.0,1.27,
-89.0,1.27,
-90.0,1.26,
-91.1,1.26,
-92.1,1.26,
+2.0,1.45,
+3.0,1.45,
+4.0,1.45,
+5.0,1.45,
diff --git a/dev/windows-portable-cpu/logs/rotate_splats.log b/dev/windows-portable-cpu/logs/rotate_splats.log
index 055a18d..3b100ff 100644
--- a/dev/windows-portable-cpu/logs/rotate_splats.log
+++ b/dev/windows-portable-cpu/logs/rotate_splats.log
@@ -1,46 +1,15 @@
Capturing execution frames: rotate_splats.json
[ComfyUI] [32m[INFO][0m Using RAM pressure cache.
[ComfyUI] [32m[INFO][0m Using RAM pressure cache.
+ [ComfyUI] [1m[31m[ERROR][0m Exception in callback _ProactorBasePipeTransport._call_connection_lost()
+ [ComfyUI] handle:
+ [ComfyUI] Traceback (most recent call last):
+ [ComfyUI] File "asyncio\events.py", line 89, in _run
+ [ComfyUI] File "asyncio\proactor_events.py", line 165, in _call_connection_lost
+ [ComfyUI] ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
Frame 1 saved (frame_000.jpg, t=0.0s)
Validating workflow...
- Queuing workflow for execution...
- [ComfyUI] [32m[INFO][0m === /validate endpoint called ===
- [ComfyUI] [32m[INFO][0m Received JSON with keys: ['prompt']
- [ComfyUI] [32m[INFO][0m Prompt has 3 nodes
- [ComfyUI] [32m[INFO][0m Node 1: LoadPLY
- [ComfyUI] [32m[INFO][0m Inputs: {"ply_file": "apple.ply"}
- [ComfyUI] [32m[INFO][0m Node 14: PreviewGaussianDual
- [ComfyUI] [32m[INFO][0m Inputs: {"layout": "slider", "camera_mode": "orbit", "fov_degrees": 70, "renderer": "playcanvas", "transport_format": "ply", "ply_path_1": ["1", 0], "ply_path_2": ["18", 0]}
- [ComfyUI] [32m[INFO][0m Node 18: TransformGaussian
- [ComfyUI] [32m[INFO][0m Inputs: {"rotate_x": -90, "rotate_y": 0, "rotate_z": 0, "ply_path": ["1", 0]}
- [ComfyUI] [32m[INFO][0m Generated prompt_id: 606fc7b4-1ef0-4a8b-bb86-ea5ab470d06c
- [ComfyUI] [32m[INFO][0m Calling execution.validate_prompt()...
- [ComfyUI] [32m[INFO][0m Validation result: valid=True
- [ComfyUI] [32m[INFO][0m === Validation PASSED ===
- [ComfyUI] [32m[INFO][0m got prompt
- [ComfyUI] [32m[INFO][0m LoadPLY: apple.ply -> D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\apple.ply
- [ComfyUI] [32m[INFO][0m TransformGaussian: 200000 splats, rotation X=-90.0 Y=0.0 Z=0.0
- [ComfyUI] [32m[INFO][0m TransformGaussian: rotated SH AC (sh_degree=3, 15 coeffs/channel x 3 channels) via Wigner-D
- [ComfyUI] [32m[INFO][0m TransformGaussian: wrote apple_rot_m90_p0_p0_0e442043.ply (47.3 MB)
- [ComfyUI] [32m[INFO][0m [32mPrompt executed in 0.81 seconds[0m
- Node executed (1 total), capturing...
- Frame 2 saved (frame_001.jpg, t=1.2s)
- [capture-node] freeze=48ms shot=343ms unfreeze=0ms saved=True
- Execution complete (t=1.2s)
- [3d-wait] Phase 1: Waiting for 'Loading 3D Model' text to disappear...
- [3d-wait] Phase 1 done in 0.0s
- [3d-wait] Phase 2: iframes=1
- [3d-wait] iframe viewer_ready=False (matched 0 console logs)
- [3d-wait] Waiting for 'Loaded successfully' console message (timeout=60s)...
- [3d-wait] iframe wait exception: Timeout 60000ms exceeded while waiting for event "console"
-=========================== logs ===========================
-waiting for event "console"
-============================================================
- [3d-wait] Total 3D wait: 60.0s
- Captured 2 unique frames over 61.65s
- [debug] iframes: 1
- [debug] iframe[0]: src=http://127.0.0.1:41884/extensions/ComfyUI-GaussianPack/viewer_gaussian_dual.html, canvas=486x203, rafFrozen=True
- [timing] trigger_3d_previews: 0.0s
- Saved high-quality screenshot: rotate_splats_executed.png
- [timing] final_screenshot: 0.2s
- Captured 3 video frames
\ No newline at end of file
+ Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 3 nodes, missing class_type: [1,14,18], sample: {"inputs":{"UNKNOWN":"apple.ply"},"_meta":{}}
+ Status: FAILED
+ Error: Workflow validation failed
+ Details: graphToPrompt produced nodes without class_type: graphToPrompt: 3 nodes, missing class_type: [1,14,18], sample: {"inputs":{"UNKNOWN":"apple.ply"},"_meta":{}}
\ No newline at end of file
diff --git a/dev/windows-portable-cpu/logs/rotate_splats_console.log b/dev/windows-portable-cpu/logs/rotate_splats_console.log
index 361f362..b2a8b5a 100644
--- a/dev/windows-portable-cpu/logs/rotate_splats_console.log
+++ b/dev/windows-portable-cpu/logs/rotate_splats_console.log
@@ -7,21 +7,14 @@
[Console-error] Failed to load resource: the server responded with a status of 404 (Not Found)
[Console-error] Failed to load resource: the server responded with a status of 404 (Not Found)
[Console-error] Failed to load resource: the server responded with a status of 404 (Not Found)
+[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "three". Relati…ences must start with either "/", "./", or "../".}
[Console-warning] THREE.WARNING: Multiple instances of Three.js being imported.
[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "three". Relati…ences must start with either "/", "./", or "../".}
[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "playcanvas". R…ences must start with either "/", "./", or "../".}
-[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "three". Relati…ences must start with either "/", "./", or "../".}
[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "playcanvas". R…ences must start with either "/", "./", or "../".}
-[Console-log] [GaussianPack] Loading extension...
[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "three". Relati…ences must start with either "/", "./", or "../".}
+[Console-log] [GaussianPack Sharp] Loading extension...
+[Console-log] [GaussianPack] Loading extension...
[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "playcanvas". R…ences must start with either "/", "./", or "../".}
[Console-warning] [MaskEditor] ComfyApp.open_maskeditor is deprecated. Plugins should migrate to using the command system or direct node context menu integration.
-[Console-log] [GaussianPack] Registering Preview Gaussians node
-[Console-log] [GaussianPack] Registering Preview Gaussian Dual node
-[Console-warning] Allow attribute will take precedence over 'allowfullscreen'.
-[Console-log] [comfy-test] graphToPrompt: 3 nodes, missing class_type: [], sample: {"inputs":{"ply_file":"apple.ply"},"class_type":"LoadPLY","_meta":{"title":"Load PLY"}}
-[Console-log] [GaussianDualViewer] Ready (layout=slider)
-[Console-warning] [GaussianDualViewer] PlayCanvas can't render two gsplat views in one page; using Spark for the dual view.
-[Console-warning] THREE.Clock: This module has been deprecated. Please use THREE.Timer instead.
-[Console-warning] [GaussianDualViewer] PlayCanvas can't render two gsplat views in one page; using Spark for the dual view.
-[Console-warning] THREE.Clock: This module has been deprecated. Please use THREE.Timer instead.
\ No newline at end of file
+[Console-log] [comfy-test] graphToPrompt: 3 nodes, missing class_type: [1,14,18], sample: {"inputs":{"UNKNOWN":"apple.ply"},"_meta":{}}
\ No newline at end of file
diff --git a/dev/windows-portable-cpu/logs/rotate_splats_resources.csv b/dev/windows-portable-cpu/logs/rotate_splats_resources.csv
index b043ed2..cbedb00 100644
--- a/dev/windows-portable-cpu/logs/rotate_splats_resources.csv
+++ b/dev/windows-portable-cpu/logs/rotate_splats_resources.csv
@@ -1,72 +1,8 @@
# total_ram_gb=16.0
t,ram_gb,vram_gb
-0.0,1.25,
-1.0,1.25,
-2.0,1.24,
-3.0,1.24,
-4.0,1.24,
-5.0,1.24,
-6.0,1.29,
-7.1,1.24,
-8.1,1.24,
-9.1,1.23,
-10.1,1.23,
-11.1,1.22,
-12.1,1.22,
-13.1,1.22,
-14.1,1.21,
-15.1,1.21,
-16.1,1.21,
-17.1,1.2,
-18.2,1.19,
-19.2,1.19,
-20.2,1.19,
-21.2,1.18,
-22.2,1.18,
-23.2,1.18,
-24.2,1.17,
-25.2,1.16,
-26.2,1.15,
-27.2,1.14,
-28.2,1.13,
-29.2,1.12,
-30.2,1.11,
-31.2,1.1,
-32.3,1.09,
-33.3,1.08,
-34.3,1.07,
-35.3,1.06,
-36.3,1.05,
-37.3,1.05,
-38.3,1.04,
-39.3,1.03,
-40.3,1.02,
-41.3,1.01,
-42.3,1.01,
-43.4,1.01,
-44.4,1.0,
-45.4,0.99,
-46.4,0.98,
-47.4,0.97,
-48.4,0.96,
-49.4,0.96,
-50.4,0.95,
-51.4,0.94,
-52.4,0.93,
-53.4,0.93,
-54.4,0.92,
-55.4,0.91,
-56.4,0.91,
-57.4,0.91,
-58.4,0.91,
-59.4,0.9,
-60.4,0.89,
-61.5,0.89,
-62.5,0.88,
-63.5,0.88,
-64.5,0.87,
-65.5,0.86,
-66.5,0.86,
-67.5,0.85,
-68.5,0.84,
-69.5,0.84,
+0.0,1.45,
+1.0,1.45,
+2.0,1.45,
+3.0,1.45,
+4.0,1.47,
+5.0,1.45,
diff --git a/dev/windows-portable-cpu/logs/spectate.log b/dev/windows-portable-cpu/logs/spectate.log
index 690a7ed..268b42d 100644
--- a/dev/windows-portable-cpu/logs/spectate.log
+++ b/dev/windows-portable-cpu/logs/spectate.log
@@ -1,41 +1,15 @@
Capturing execution frames: spectate.json
[ComfyUI] [32m[INFO][0m Using RAM pressure cache.
[ComfyUI] [32m[INFO][0m Using RAM pressure cache.
+ [ComfyUI] [1m[31m[ERROR][0m Exception in callback _ProactorBasePipeTransport._call_connection_lost()
+ [ComfyUI] handle:
+ [ComfyUI] Traceback (most recent call last):
+ [ComfyUI] File "asyncio\events.py", line 89, in _run
+ [ComfyUI] File "asyncio\proactor_events.py", line 165, in _call_connection_lost
+ [ComfyUI] ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
Frame 1 saved (frame_000.jpg, t=0.0s)
Validating workflow...
- Queuing workflow for execution...
- [ComfyUI] [32m[INFO][0m === /validate endpoint called ===
- [ComfyUI] [32m[INFO][0m Received JSON with keys: ['prompt']
- [ComfyUI] [32m[INFO][0m Prompt has 2 nodes
- [ComfyUI] [32m[INFO][0m Node 1: LoadPLY
- [ComfyUI] [32m[INFO][0m Inputs: {"ply_file": "compressed_room.ply"}
- [ComfyUI] [32m[INFO][0m Node 2: PreviewGaussians
- [ComfyUI] [32m[INFO][0m Inputs: {"camera_mode": "spectate", "fov_degrees": 70, "renderer": "playcanvas", "transport_format": "ply", "ply_path": ["1", 0]}
- [ComfyUI] [32m[INFO][0m Generated prompt_id: 5a885c67-a806-4dae-a8c2-710d79b29166
- [ComfyUI] [32m[INFO][0m Calling execution.validate_prompt()...
- [ComfyUI] [32m[INFO][0m Validation result: valid=True
- [ComfyUI] [32m[INFO][0m === Validation PASSED ===
- [ComfyUI] [32m[INFO][0m got prompt
- [ComfyUI] [32m[INFO][0m LoadPLY: compressed_room.ply -> D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\compressed_room.ply
- [ComfyUI] [32m[INFO][0m [32mPrompt executed in 0.01 seconds[0m
- Node executed (1 total), capturing...
- Frame 2 saved (frame_001.jpg, t=0.5s)
- [capture-node] freeze=5ms shot=98ms unfreeze=0ms saved=True
- Execution complete (t=0.5s)
- [3d-wait] Phase 1: Waiting for 'Loading 3D Model' text to disappear...
- [3d-wait] Phase 1 done in 0.0s
- [3d-wait] Phase 2: iframes=1
- [3d-wait] iframe viewer_ready=False (matched 0 console logs)
- [3d-wait] Waiting for 'Loaded successfully' console message (timeout=60s)...
- [3d-wait] Got 'Loaded successfully' after 1.2s
- [3d-wait] Unfrozen in 0.011s, rendering for 5s...
- [3d-wait] JS halted via CDP after 6.1s
- [3d-wait] Re-frozen in 7.2s
- [3d-wait] Total 3D wait: 8.4s
- Captured 2 unique frames over 9.0s
- [debug] iframes: 1
- [debug] iframe[0]: src=http://127.0.0.1:41884/extensions/ComfyUI-GaussianPack/viewer_gaussian.html?mode, canvas=781x394, rafFrozen=True
- [timing] trigger_3d_previews: 0.0s
- Saved high-quality screenshot: spectate_executed.png
- [timing] final_screenshot: 0.3s
- Captured 3 video frames
\ No newline at end of file
+ Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 2 nodes, missing class_type: [1,2], sample: {"inputs":{"UNKNOWN":"compressed_room.ply"},"_meta":{}}
+ Status: FAILED
+ Error: Workflow validation failed
+ Details: graphToPrompt produced nodes without class_type: graphToPrompt: 2 nodes, missing class_type: [1,2], sample: {"inputs":{"UNKNOWN":"compressed_room.ply"},"_meta":{}}
\ No newline at end of file
diff --git a/dev/windows-portable-cpu/logs/spectate_console.log b/dev/windows-portable-cpu/logs/spectate_console.log
index b8da29b..569a2e7 100644
--- a/dev/windows-portable-cpu/logs/spectate_console.log
+++ b/dev/windows-portable-cpu/logs/spectate_console.log
@@ -8,34 +8,13 @@
[Console-error] Failed to load resource: the server responded with a status of 404 (Not Found)
[Console-error] Failed to load resource: the server responded with a status of 404 (Not Found)
[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "three". Relati…ences must start with either "/", "./", or "../".}
+[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "playcanvas". R…ences must start with either "/", "./", or "../".}
[Console-warning] THREE.WARNING: Multiple instances of Three.js being imported.
[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "three". Relati…ences must start with either "/", "./", or "../".}
-[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "playcanvas". R…ences must start with either "/", "./", or "../".}
-[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "playcanvas". R…ences must start with either "/", "./", or "../".}
[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "three". Relati…ences must start with either "/", "./", or "../".}
+[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "playcanvas". R…ences must start with either "/", "./", or "../".}
+[Console-log] [GaussianPack Sharp] Loading extension...
[Console-log] [GaussianPack] Loading extension...
[Console-error] [vite:preloadError] {url: null, fileType: unknown, chunkName: null, message: Failed to resolve module specifier "playcanvas". R…ences must start with either "/", "./", or "../".}
[Console-warning] [MaskEditor] ComfyApp.open_maskeditor is deprecated. Plugins should migrate to using the command system or direct node context menu integration.
-[Console-log] [GaussianPack] Registering Preview Gaussians node
-[Console-log] [GaussianPack] Registering Preview Gaussian Dual node
-[Console-warning] Allow attribute will take precedence over 'allowfullscreen'.
-[Console-log] [GaussianViewer] Ready — waiting for LOAD_MESH_DATA
-[Console-log] [comfy-test] graphToPrompt: 2 nodes, missing class_type: [], sample: {"inputs":{"ply_file":"compressed_room.ply"},"class_type":"LoadPLY","_meta":{"title":"Load PLY"}}
-[Console-log] [GaussianPack] onExecuted called with: {ply_file: Array(1), filename: Array(1), ply_type: Array(1), ply_subfolder: Array(1), file_size_mb: Array(1)}
-[Console-log] [GaussianViewer] Ready — waiting for LOAD_MESH_DATA
-[Console-log] [GaussianPack] fetch start: /view?filename=compressed_room.ply&type=input&subfolder=&_=1780840818
-[Console-log] [GaussianPack] download 20% 5.6/26.7 MB
-[Console-log] [GaussianPack] download 70% 18.8/26.7 MB
-[Console-log] [GaussianPack] download 90% 24.2/26.7 MB
-[Console-log] [GaussianPack] download 100% 26.7/26.7 MB
-[Console-log] [GaussianPack] fetch done: 28000362 bytes in 100 ms (267.8 MB/s)
-[Console-log] [GaussianViewer] Received LOAD_MESH_DATA, size: 28000362 renderer: playcanvas
-[Console-log] [GaussianViewer] ensureRenderer('playcanvas') starting...
-[Console-log] [PlayCanvas] engine version: 2.19.4
-[Console-log] [PlayCanvas] adapter initialized (mode=spectate)
-[Console-log] [GaussianViewer] Adapter ready: playcanvas
-[Console-log] [GaussianViewer] Loading splat (28,000,362 bytes) via playcanvas...
-[Console-log] [PlayCanvas] loading splat: compressed_room.ply
-[Console-log] [PlayCanvas] loaded in 598 ms
-[Console-log] [GaussianViewer] adapter.loadSplat resolved in 598 ms
-[Console-log] [GaussianViewer] Loaded successfully
\ No newline at end of file
+[Console-log] [comfy-test] graphToPrompt: 2 nodes, missing class_type: [1,2], sample: {"inputs":{"UNKNOWN":"compressed_room.ply"},"_meta":{}}
\ No newline at end of file
diff --git a/dev/windows-portable-cpu/logs/spectate_resources.csv b/dev/windows-portable-cpu/logs/spectate_resources.csv
index 66d64d6..8846297 100644
--- a/dev/windows-portable-cpu/logs/spectate_resources.csv
+++ b/dev/windows-portable-cpu/logs/spectate_resources.csv
@@ -1,17 +1,8 @@
# total_ram_gb=16.0
t,ram_gb,vram_gb
-0.0,0.83,
-1.0,0.82,
-2.0,0.82,
-3.0,0.81,
-4.0,0.81,
-5.0,0.81,
-6.0,0.83,
-7.1,0.82,
-8.3,0.82,
-10.4,0.8,
-12.4,0.79,
-13.8,0.79,
-14.8,0.79,
-15.8,0.79,
-16.8,0.78,
+0.0,1.46,
+1.0,1.45,
+2.0,1.45,
+3.0,1.45,
+4.0,1.45,
+5.0,1.45,
diff --git a/dev/windows-portable-cpu/models.json b/dev/windows-portable-cpu/models.json
index 66b16f7..fb1e3ab 100644
--- a/dev/windows-portable-cpu/models.json
+++ b/dev/windows-portable-cpu/models.json
@@ -1,5 +1,5 @@
{
- "models_dir": "D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\models",
+ "models_dir": "D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1720\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\models",
"summary": {
"total_files": 8,
"total_size_bytes": 19659992,
diff --git a/dev/windows-portable-cpu/results.json b/dev/windows-portable-cpu/results.json
index feef0f8..3cca215 100644
--- a/dev/windows-portable-cpu/results.json
+++ b/dev/windows-portable-cpu/results.json
@@ -1,89 +1,89 @@
{
- "timestamp": "2026-06-07T14:07:52.979842+00:00",
+ "timestamp": "2026-06-07T17:26:10.992709+00:00",
"platform": "windows_portable",
"hardware": {
- "os": "Windows-10-10.0.26100-SP0",
- "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"
+ "os": "Windows-2025Server-10.0.26100-SP0",
+ "cpu": "Intel64 Family 6 Model 106 Stepping 6, GenuineIntel"
},
- "commit_hash": "ca04634aaa050a5180a6a7d26546b7b845579976",
- "run_url": "https://github.com/PozzettiAndrea/comfy-gpu-ci/actions/runs/27094637029",
- "success": true,
+ "commit_hash": "6753db6f21be5bb21c87b5358f3bd10fb98c0c1d",
+ "run_url": "https://github.com/PozzettiAndrea/comfy-gpu-ci/actions/runs/27099444596",
+ "success": false,
"summary": {
"total": 4,
- "passed": 4,
- "failed": 0
+ "passed": 0,
+ "failed": 4
},
"workflows": [
{
"name": "gaussian_analysis",
- "status": "pass",
- "duration_seconds": 11.93,
- "error": null,
+ "status": "fail",
+ "duration_seconds": 9.29,
+ "error": "Workflow validation failed\n\nDetails:\ngraphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [1,19,20,21], sample: {\"inputs\":{\"UNKNOWN\":\"apple.ply\"},\"_meta\":{}}",
"hardware": {
- "os": "Windows-10-10.0.26100-SP0",
- "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"
+ "os": "Windows-2025Server-10.0.26100-SP0",
+ "cpu": "Intel64 Family 6 Model 106 Stepping 6, GenuineIntel"
},
"resources": {
"ram": {
- "peak": 1.43,
+ "peak": 1.45,
"avg": 1.43
},
"total_ram_gb": 16.0,
- "samples": 12
+ "samples": 10
}
},
{
"name": "merge_splats",
- "status": "pass",
- "duration_seconds": 92.14,
- "error": null,
+ "status": "fail",
+ "duration_seconds": 5.73,
+ "error": "Workflow validation failed\n\nDetails:\ngraphToPrompt produced nodes without class_type: graphToPrompt: 3 nodes, missing class_type: [1,12,14], sample: {\"inputs\":{\"UNKNOWN\":\"apple.ply\"},\"_meta\":{}}",
"hardware": {
- "os": "Windows-10-10.0.26100-SP0",
- "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"
+ "os": "Windows-2025Server-10.0.26100-SP0",
+ "cpu": "Intel64 Family 6 Model 106 Stepping 6, GenuineIntel"
},
"resources": {
"ram": {
- "peak": 1.66,
- "avg": 1.43
+ "peak": 1.45,
+ "avg": 1.45
},
"total_ram_gb": 16.0,
- "samples": 83
+ "samples": 6
}
},
{
"name": "rotate_splats",
- "status": "pass",
- "duration_seconds": 69.68,
- "error": null,
+ "status": "fail",
+ "duration_seconds": 5.76,
+ "error": "Workflow validation failed\n\nDetails:\ngraphToPrompt produced nodes without class_type: graphToPrompt: 3 nodes, missing class_type: [1,14,18], sample: {\"inputs\":{\"UNKNOWN\":\"apple.ply\"},\"_meta\":{}}",
"hardware": {
- "os": "Windows-10-10.0.26100-SP0",
- "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"
+ "os": "Windows-2025Server-10.0.26100-SP0",
+ "cpu": "Intel64 Family 6 Model 106 Stepping 6, GenuineIntel"
},
"resources": {
"ram": {
- "peak": 1.29,
- "avg": 1.07
+ "peak": 1.47,
+ "avg": 1.45
},
"total_ram_gb": 16.0,
- "samples": 70
+ "samples": 6
}
},
{
"name": "spectate",
- "status": "pass",
- "duration_seconds": 17.16,
- "error": null,
+ "status": "fail",
+ "duration_seconds": 5.71,
+ "error": "Workflow validation failed\n\nDetails:\ngraphToPrompt produced nodes without class_type: graphToPrompt: 2 nodes, missing class_type: [1,2], sample: {\"inputs\":{\"UNKNOWN\":\"compressed_room.ply\"},\"_meta\":{}}",
"hardware": {
- "os": "Windows-10-10.0.26100-SP0",
- "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"
+ "os": "Windows-2025Server-10.0.26100-SP0",
+ "cpu": "Intel64 Family 6 Model 106 Stepping 6, GenuineIntel"
},
"resources": {
"ram": {
- "peak": 0.83,
- "avg": 0.81
+ "peak": 1.46,
+ "avg": 1.45
},
"total_ram_gb": 16.0,
- "samples": 15
+ "samples": 6
}
}
]
diff --git a/dev/windows-portable-cpu/screenshots/gaussian_analysis_executed.png b/dev/windows-portable-cpu/screenshots/gaussian_analysis_executed.png
deleted file mode 100644
index 8da185d..0000000
Binary files a/dev/windows-portable-cpu/screenshots/gaussian_analysis_executed.png and /dev/null differ
diff --git a/dev/windows-portable-cpu/screenshots/merge_splats_executed.png b/dev/windows-portable-cpu/screenshots/merge_splats_executed.png
deleted file mode 100644
index 4f13894..0000000
Binary files a/dev/windows-portable-cpu/screenshots/merge_splats_executed.png and /dev/null differ
diff --git a/dev/windows-portable-cpu/screenshots/rotate_splats_executed.png b/dev/windows-portable-cpu/screenshots/rotate_splats_executed.png
deleted file mode 100644
index 2651678..0000000
Binary files a/dev/windows-portable-cpu/screenshots/rotate_splats_executed.png and /dev/null differ
diff --git a/dev/windows-portable-cpu/screenshots/spectate_executed.png b/dev/windows-portable-cpu/screenshots/spectate_executed.png
deleted file mode 100644
index 302d8dc..0000000
Binary files a/dev/windows-portable-cpu/screenshots/spectate_executed.png and /dev/null differ
diff --git a/dev/windows-portable-cpu/server.log b/dev/windows-portable-cpu/server.log
index bdd15fa..26f8f41 100644
--- a/dev/windows-portable-cpu/server.log
+++ b/dev/windows-portable-cpu/server.log
@@ -6,12 +6,12 @@
[32m[INFO][0m setup plugin alembic.autogenerate.comments
[32m[INFO][0m
Prestartup times for custom nodes:
-[32m[INFO][0m 0.0 seconds: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack
+[32m[INFO][0m 0.0 seconds: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack
[32m[INFO][0m
-D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\python_embeded\Lib\site-packages\torch\cuda\__init__.py:187: UserWarning: cudaGetDeviceCount() returned cudaErrorNotSupported, likely using older driver or on CPU machine (Triggered internally at C:\actions-runner\_work\pytorch\pytorch\c10\cuda\CUDAFunctions.cpp:88.)
+D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\python_embeded\Lib\site-packages\torch\cuda\__init__.py:187: UserWarning: cudaGetDeviceCount() returned cudaErrorNotSupported, likely using older driver or on CPU machine (Triggered internally at C:\actions-runner\_work\pytorch\pytorch\c10\cuda\CUDAFunctions.cpp:88.)
return torch._C._cuda_getDeviceCount() > 0
-[32m[INFO][0m Found comfy_kitchen backend triton: {'available': False, 'disabled': True, 'unavailable_reason': "ImportError: No module named 'triton'", 'capabilities': []}
[32m[INFO][0m Found comfy_kitchen backend cuda: {'available': False, 'disabled': False, 'unavailable_reason': 'CUDA not available on this system', 'capabilities': []}
+[32m[INFO][0m Found comfy_kitchen backend triton: {'available': False, 'disabled': True, 'unavailable_reason': "ImportError: No module named 'triton'", 'capabilities': []}
[32m[INFO][0m Found comfy_kitchen backend eager: {'available': True, 'disabled': False, 'unavailable_reason': None, 'capabilities': ['apply_rope', 'apply_rope1', 'apply_rope_split_half', 'apply_rope_split_half1', 'dequantize_mxfp8', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'gemv_awq_w4a16', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8', 'quantize_svdquant_w4a4', 'scaled_mm_mxfp8', 'scaled_mm_nvfp4', 'scaled_mm_svdquant_w4a4', 'stochastic_rounding_fp8']}
[32m[INFO][0m Checkpoint files will always be loaded safely.
[32m[INFO][0m Total VRAM 16379 MB, total RAM 16379 MB
@@ -30,24 +30,68 @@ D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyu
[32m[INFO][0m comfyui-embedded-docs version: 0.5.2
[32m[INFO][0m comfy-kitchen version: 0.2.10
[32m[INFO][0m comfy-aimdo version: 0.4.8
-[32m[INFO][0m [Prompt Server] web root: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\python_embeded\Lib\site-packages\comfyui_frontend_package\static
+[32m[INFO][0m [Prompt Server] web root: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\python_embeded\Lib\site-packages\comfyui_frontend_package\static
[32m[INFO][0m Asset seeder disabled
[comfy-env] Version: 0.3.89
[comfy-env] register_nodes: ComfyUI-GaussianPack
-[comfy-env] ComfyUI source dir: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI
+[comfy-env] ComfyUI source dir: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI
[comfy-env] Workspace: C:\Users\stduser\AppData\Local\Programs\comfy-env
-[comfy-env] isolation env not found at C:\Users\stduser\AppData\Local\Programs\comfy-env\.pixi\envs\gaussianpack-nodes: pixi has not materialized `gaussianpack-nodes`; using in-process import. Run `comfy-env install` (or your node's `install.py`) to create it.
-[comfy-env] Found 0 isolation env(s)
-[comfy-env] Importing nodes (root)...
-[comfy-env] Imported nodes root: 10 nodes
-[comfy-env] isolation env not found at C:\Users\stduser\AppData\Local\Programs\comfy-env\.pixi\envs\gaussianpack-nodes: pixi has not materialized `gaussianpack-nodes`; using in-process import. Run `comfy-env install` (or your node's `install.py`) to create it.
-[comfy-env] No env for nodes -- run 'comfy-env install'
-[comfy-env] Registered 10 total nodes
+[comfy-env] Found 1 isolation env(s)
+[comfy-env] Scanning nodes metadata (isolation root)...
+[comfy-env] gaussianpack-nodes: Library/bin has 158 DLLs
+[comfy-env] Metadata scan: C:\Users\stduser\.pixi\bin\pixi.exe run --as-is --manifest-path C:\Users\stduser\AppData\Local\Programs\comfy-env\pixi.toml -e gaussianpack-nodes python C:\Users\stduser\AppData\Local\Temp\comfy_meta_7sp57xri.py D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack nodes C:\Users\stduser\AppData\Local\Temp\comfy_meta_out_hufnmz24.pkl
+[comfy-env] Scan env PATH for nodes:
+[comfy-env] [0] C:\Users\stduser\AppData\Local\Programs\comfy-env\.pixi\envs\gaussianpack-nodes
+[comfy-env] [1] C:\Users\stduser\AppData\Local\Programs\comfy-env\.pixi\envs\gaussianpack-nodes\Library\bin
+[comfy-env] [2] C:\Users\stduser\AppData\Local\Programs\comfy-env\.pixi\envs\gaussianpack-nodes\Scripts
+[comfy-env] [3] C:\Users\stduser\AppData\Local\Programs\comfy-env\.pixi\envs\gaussianpack-nodes\Lib\site-packages\bpy
+[comfy-env] [4] C:\Windows\System32
+[comfy-env] [5] C:\Windows
+[comfy-env] [6] C:\Windows\System32\Wbem
+[comfy-env] Metadata scan stderr for nodes:
+[comfy-env] [meta-scan] importing nodes from D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack
+[comfy-env] Traceback (most recent call last):
+[comfy-env] File "C:\Users\stduser\AppData\Local\Temp\comfy_meta_7sp57xri.py", line 65, in
+[comfy-env] module = importlib.import_module(package_name)
+[comfy-env] File "C:\Users\stduser\AppData\Local\Programs\comfy-env\.pixi\envs\gaussianpack-nodes\Lib\importlib\__init__.py", line 88, in import_module
+[comfy-env] return _bootstrap._gcd_import(name[level:], package, level)
+[comfy-env] ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+[comfy-env] File "", line 1395, in _gcd_import
+[comfy-env] File "", line 1360, in _find_and_load
+[comfy-env] File "", line 1331, in _find_and_load_unlocked
+[comfy-env] File "", line 935, in _load_unlocked
+[comfy-env] File "", line 1023, in exec_module
+[comfy-env] File "", line 488, in _call_with_frames_removed
+[comfy-env] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack\nodes\__init__.py", line 11, in
+[comfy-env] from .preview_gaussian_sharp import PreviewGaussianSharp
+[comfy-env] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack\nodes\preview_gaussian_sharp.py", line 21, in
+[comfy-env] from comfy_api.latest import io
+[comfy-env] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\comfy_api\latest\__init__.py", line 6, in
+[comfy-env] from ._input import ImageInput, AudioInput, MaskInput, LatentInput, VideoInput
+[comfy-env] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\comfy_api\latest\_input\__init__.py", line 4, in
+[comfy-env] from .video_types import VideoInput
+[comfy-env] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\comfy_api\latest\_input\video_types.py", line 6, in
+[comfy-env] import av
+[comfy-env] ModuleNotFoundError: No module named 'av'
+[comfy-env] Metadata scan failed for nodes (exit 1, 5.2s):
+[comfy-env] from .preview_gaussian_sharp import PreviewGaussianSharp
+[comfy-env] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack\nodes\preview_gaussian_sharp.py", line 21, in
+[comfy-env] from comfy_api.latest import io
+[comfy-env] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\comfy_api\latest\__init__.py", line 6, in
+[comfy-env] from ._input import ImageInput, AudioInput, MaskInput, LatentInput, VideoInput
+[comfy-env] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\comfy_api\latest\_input\__init__.py", line 4, in
+[comfy-env] from .video_types import VideoInput
+[comfy-env] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\comfy_api\latest\_input\video_types.py", line 6, in
+[comfy-env] import av
+[comfy-env] ModuleNotFoundError: No module named 'av'
+[comfy-env] Scanned nodes root: 0 nodes (5.2s)
+[comfy-env] Imported nodes root: 0 nodes (isolation)
+[comfy-env] Registered 0 total nodes
[32m[INFO][0m
Import times for custom nodes:
-[32m[INFO][0m 0.0 seconds: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\websocket_image_save.py
-[32m[INFO][0m 0.0 seconds: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-validate-endpoint
-[32m[INFO][0m 0.9 seconds: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack
+[32m[INFO][0m 0.0 seconds: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\websocket_image_save.py
+[32m[INFO][0m 0.0 seconds: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-validate-endpoint
+[32m[INFO][0m 5.8 seconds: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack
[32m[INFO][0m
[32m[INFO][0m Context impl SQLiteImpl.
[32m[INFO][0m Will assume non-transactional DDL.
@@ -64,60 +108,12 @@ Change preview_id FK from assets.id to asset_references.id.
[32m[INFO][0m Using RAM pressure cache.
[32m[INFO][0m Starting server
-[32m[INFO][0m To see the GUI go to: http://127.0.0.1:41884
+[32m[INFO][0m To see the GUI go to: http://127.0.0.1:41888
+[32m[INFO][0m Using RAM pressure cache.
+[32m[INFO][0m Using RAM pressure cache.
+[32m[INFO][0m Using RAM pressure cache.
[32m[INFO][0m Using RAM pressure cache.
[32m[INFO][0m Using RAM pressure cache.
-[32m[INFO][0m === /validate endpoint called ===
-[32m[INFO][0m Received JSON with keys: ['prompt']
-[32m[INFO][0m Prompt has 4 nodes
-[32m[INFO][0m Node 1: LoadPLY
-[32m[INFO][0m Inputs: {"ply_file": "apple.ply"}
-[32m[INFO][0m Node 19: GaussianAnalysis
-[32m[INFO][0m Inputs: {"ply_path": ["1", 0]}
-[32m[INFO][0m Node 20: LoadPLY
-[32m[INFO][0m Inputs: {"ply_file": "compressed_room.ply"}
-[32m[INFO][0m Node 21: GaussianAnalysis
-[32m[INFO][0m Inputs: {"ply_path": ["20", 0]}
-[32m[INFO][0m Generated prompt_id: 68d52ede-a37c-4f48-b22a-4bbb68beb4aa
-[32m[INFO][0m Calling execution.validate_prompt()...
-[32m[INFO][0m Validation result: valid=True
-[32m[INFO][0m === Validation PASSED ===
-[32m[INFO][0m got prompt
-[32m[INFO][0m LoadPLY: compressed_room.ply -> D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\compressed_room.ply
-[32m[INFO][0m GaussianAnalysis:
-== Gaussian PLY analysis ==
- path: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\compressed_room.ply
- size: 26.70 MB (28,000,362 bytes)
- encoding: binary_little_endian 1.0
- splat count: 500,000
- bytes/splat: 56.0
- flavor: SH-stripped 3DGS (DC only, no view-dependent term)
- SH degree: 0
- precision: float32 (all)
- has f_dc_*: True
- has RGB uchar: False
- has opacity: True
- has scale_*: True
- has rot_*: True
- total props: 14
-[32m[INFO][0m LoadPLY: apple.ply -> D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\apple.ply
-[32m[INFO][0m GaussianAnalysis:
-== Gaussian PLY analysis ==
- path: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\apple.ply
- size: 47.30 MB (49,601,531 bytes)
- encoding: binary_little_endian 1.0
- splat count: 200,000
- bytes/splat: 248.0
- flavor: raw 3DGS PLY (SH degree 3)
- SH degree: 3
- precision: float32 (all)
- has f_dc_*: True
- has RGB uchar: False
- has opacity: True
- has scale_*: True
- has rot_*: True
- total props: 62
-[32m[INFO][0m [32mPrompt executed in 0.02 seconds[0m
[32m[INFO][0m Using RAM pressure cache.
[32m[INFO][0m Using RAM pressure cache.
[32m[INFO][0m Using RAM pressure cache.
@@ -127,77 +123,13 @@ Traceback (most recent call last):
File "asyncio\events.py", line 89, in _run
File "asyncio\proactor_events.py", line 165, in _call_connection_lost
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
-[32m[INFO][0m === /validate endpoint called ===
-[32m[INFO][0m Received JSON with keys: ['prompt']
-[32m[INFO][0m Prompt has 3 nodes
-[32m[INFO][0m Node 1: LoadPLY
-[32m[INFO][0m Inputs: {"ply_file": "apple.ply"}
-[32m[INFO][0m Node 12: GaussianMerge
-[32m[INFO][0m Inputs: {"target_count": 100000, "output_filename": "applemerged", "opacity_threshold": 0.1, "k": 16, "backend": "nanogs_cpu", "ply_path": ["1", 0]}
-[32m[INFO][0m Node 14: PreviewGaussianDual
-[32m[INFO][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]}
-[32m[INFO][0m Generated prompt_id: da948adf-79a8-4b1c-a4e6-e49d0db097e4
-[32m[INFO][0m Calling execution.validate_prompt()...
-[32m[INFO][0m Validation result: valid=True
-[32m[INFO][0m === Validation PASSED ===
-[32m[INFO][0m got prompt
-[32m[INFO][0m LoadPLY: apple.ply -> D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\apple.ply
-[32m[INFO][0m GaussianMerge: 200000 -> 100000 splats (ratio=0.5000, backend=nanogs_cpu) on D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\apple.ply
-Loading PLY: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\apple.ply
-Initial splats: 200000
-Pruned splats: 200000, target: 100000
-Opacity Mean: 0.53443545 Median: 0.48362076
-Pruning splats with opacity below 0.1000
-Original count: 200000, after opacity pruning: 200000
-After opacity pruning, 200000 splats remain.
-Pass 1: 200000 splats
-
Edge costs: 0%| | 0/19 [00:00, ?it/s]
Edge costs: 5%|5 | 1/19 [00:00<00:03, 4.54it/s]
Edge costs: 11%|# | 2/19 [00:00<00:03, 4.40it/s]
Edge costs: 16%|#5 | 3/19 [00:00<00:03, 4.48it/s]
Edge costs: 21%|##1 | 4/19 [00:00<00:03, 4.52it/s]
Edge costs: 26%|##6 | 5/19 [00:01<00:03, 4.54it/s]
Edge costs: 32%|###1 | 6/19 [00:01<00:02, 4.54it/s]
Edge costs: 37%|###6 | 7/19 [00:01<00:02, 4.48it/s]
Edge costs: 42%|####2 | 8/19 [00:01<00:02, 4.47it/s]
Edge costs: 47%|####7 | 9/19 [00:01<00:02, 4.54it/s]
Edge costs: 53%|#####2 | 10/19 [00:02<00:01, 4.51it/s]
Edge costs: 58%|#####7 | 11/19 [00:02<00:01, 4.62it/s]
Edge costs: 63%|######3 | 12/19 [00:02<00:01, 4.44it/s]
Edge costs: 68%|######8 | 13/19 [00:02<00:01, 4.50it/s]
Edge costs: 74%|#######3 | 14/19 [00:03<00:01, 4.56it/s]
Edge costs: 79%|#######8 | 15/19 [00:03<00:00, 4.69it/s]
Edge costs: 84%|########4 | 16/19 [00:03<00:00, 4.72it/s]
Edge costs: 89%|########9 | 17/19 [00:03<00:00, 4.55it/s]
Edge costs: 95%|#########4| 18/19 [00:03<00:00, 4.57it/s]
Edge costs: 100%|##########| 19/19 [00:04<00:00, 4.69it/s]
- edges: 1848776, pairs: 96906 (need 100000)
- Merging 96906 pairs
-Pass 2: 103094 splats
-
Edge costs: 0%| | 0/10 [00:00, ?it/s]
Edge costs: 10%|# | 1/10 [00:00<00:01, 4.75it/s]
Edge costs: 20%|## | 2/10 [00:00<00:01, 4.67it/s]
Edge costs: 30%|### | 3/10 [00:00<00:01, 4.87it/s]
Edge costs: 40%|#### | 4/10 [00:00<00:01, 4.85it/s]
Edge costs: 50%|##### | 5/10 [00:01<00:01, 4.81it/s]
Edge costs: 60%|###### | 6/10 [00:01<00:00, 4.90it/s]
Edge costs: 70%|####### | 7/10 [00:01<00:00, 5.01it/s]
Edge costs: 80%|######## | 8/10 [00:01<00:00, 5.09it/s]
Edge costs: 90%|######### | 9/10 [00:01<00:00, 4.87it/s]
Edge costs: 100%|##########| 10/10 [00:01<00:00, 5.33it/s]
- edges: 919857, pairs: 3094 (need 3094)
- Merging 3094 pairs
-Final splats: 100000
-[32m[INFO][0m GaussianMerge: wrote D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\output\applemerged.ply (100000 splats, 23.7 MB)
-[32m[INFO][0m [32mPrompt executed in 19.06 seconds[0m
[32m[INFO][0m Using RAM pressure cache.
[32m[INFO][0m Using RAM pressure cache.
[32m[INFO][0m Using RAM pressure cache.
-[32m[INFO][0m === /validate endpoint called ===
-[32m[INFO][0m Received JSON with keys: ['prompt']
-[32m[INFO][0m Prompt has 3 nodes
-[32m[INFO][0m Node 1: LoadPLY
-[32m[INFO][0m Inputs: {"ply_file": "apple.ply"}
-[32m[INFO][0m Node 14: PreviewGaussianDual
-[32m[INFO][0m Inputs: {"layout": "slider", "camera_mode": "orbit", "fov_degrees": 70, "renderer": "playcanvas", "transport_format": "ply", "ply_path_1": ["1", 0], "ply_path_2": ["18", 0]}
-[32m[INFO][0m Node 18: TransformGaussian
-[32m[INFO][0m Inputs: {"rotate_x": -90, "rotate_y": 0, "rotate_z": 0, "ply_path": ["1", 0]}
-[32m[INFO][0m Generated prompt_id: 606fc7b4-1ef0-4a8b-bb86-ea5ab470d06c
-[32m[INFO][0m Calling execution.validate_prompt()...
-[32m[INFO][0m Validation result: valid=True
-[32m[INFO][0m === Validation PASSED ===
-[32m[INFO][0m got prompt
-[32m[INFO][0m LoadPLY: apple.ply -> D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\apple.ply
-[32m[INFO][0m TransformGaussian: 200000 splats, rotation X=-90.0 Y=0.0 Z=0.0
-[32m[INFO][0m TransformGaussian: rotated SH AC (sh_degree=3, 15 coeffs/channel x 3 channels) via Wigner-D
-[32m[INFO][0m TransformGaussian: wrote apple_rot_m90_p0_p0_0e442043.ply (47.3 MB)
-[32m[INFO][0m [32mPrompt executed in 0.81 seconds[0m
-[32m[INFO][0m Using RAM pressure cache.
-[32m[INFO][0m Using RAM pressure cache.
-[32m[INFO][0m Using RAM pressure cache.
-[32m[INFO][0m === /validate endpoint called ===
-[32m[INFO][0m Received JSON with keys: ['prompt']
-[32m[INFO][0m Prompt has 2 nodes
-[32m[INFO][0m Node 1: LoadPLY
-[32m[INFO][0m Inputs: {"ply_file": "compressed_room.ply"}
-[32m[INFO][0m Node 2: PreviewGaussians
-[32m[INFO][0m Inputs: {"camera_mode": "spectate", "fov_degrees": 70, "renderer": "playcanvas", "transport_format": "ply", "ply_path": ["1", 0]}
-[32m[INFO][0m Generated prompt_id: 5a885c67-a806-4dae-a8c2-710d79b29166
-[32m[INFO][0m Calling execution.validate_prompt()...
-[32m[INFO][0m Validation result: valid=True
-[32m[INFO][0m === Validation PASSED ===
-[32m[INFO][0m got prompt
-[32m[INFO][0m LoadPLY: compressed_room.ply -> D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\compressed_room.ply
-[32m[INFO][0m [32mPrompt executed in 0.01 seconds[0m
+[1m[31m[ERROR][0m Exception in callback _ProactorBasePipeTransport._call_connection_lost()
+handle:
+Traceback (most recent call last):
+ File "asyncio\events.py", line 89, in _run
+ File "asyncio\proactor_events.py", line 165, in _call_connection_lost
+ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
[32m[INFO][0m Using RAM pressure cache.
diff --git a/dev/windows-portable-cpu/session.log b/dev/windows-portable-cpu/session.log
index c5ffd11..b761a4a 100644
--- a/dev/windows-portable-cpu/session.log
+++ b/dev/windows-portable-cpu/session.log
@@ -1,4 +1,4 @@
-[00:00] Crash dump logging enabled: D:\a\comfy-gpu-ci\comfy-gpu-ci\comfy-test-logs\GaussianPack-1400\dev\windows-portable-cpu\crash_dump.log
+[00:00] Crash dump logging enabled: D:\a\comfy-gpu-ci\comfy-gpu-ci\comfy-test-logs\GaussianPack-1720\dev\windows-portable-cpu\crash_dump.log
[00:00]
[00:00] [1/5] SYNTAX
[00:00] ----------------------------------------
@@ -19,461 +19,291 @@ Setting up ComfyUI...
[00:00] Fetching latest release version...
[00:00] Latest version: v0.24.0
[00:00] Downloading portable ComfyUI from https://github.com/comfyanonymous/ComfyUI/releases/download/v0.24.0/ComfyUI_windows_portable_nvidia.7z...
-[00:02] Downloaded: 10%
-[00:03] Downloaded: 20%
-[00:04] Downloaded: 30%
-[00:05] Downloaded: 40%
-[00:06] Downloaded: 50%
-[00:07] Downloaded: 60%
-[00:14] Downloaded: 70%
+[00:04] Downloaded: 10%
+[00:06] Downloaded: 20%
+[00:07] Downloaded: 30%
+[00:09] Downloaded: 40%
+[00:10] Downloaded: 50%
+[00:12] Downloaded: 60%
+[00:13] Downloaded: 70%
[00:15] Downloaded: 80%
[00:16] Downloaded: 90%
-[00:16] Downloaded: 100%
+[00:17] Downloaded: 100%
[00:17] Downloaded to C:\Users\stduser\.comfy-test\cache\portable\ComfyUI_portable_v0.24.0.7z
[00:17] Extracting to cache: C:\Users\stduser\.comfy-test\cache\portable\ComfyUI_portable_v0.24.0
[00:17] Extracting ComfyUI_portable_v0.24.0.7z...
-[00:17] Using 7z: 7z
-[02:23] Extracted to C:\Users\stduser\.comfy-test\cache\portable\ComfyUI_portable_v0.24.0
-[02:23] Copying from cache to: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui
-[02:48] Installing uv into embedded Python...
-[02:48] Running: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\python_embeded\python.exe -m pip install uv
-[02:52] Installing ComfyUI requirements...
-[02:52] Running: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\python_embeded\python.exe -m uv pip install -r D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\requirements.txt
-[02:52]
+[00:18] Using 7z: 7z
+[02:04] Extracted to C:\Users\stduser\.comfy-test\cache\portable\ComfyUI_portable_v0.24.0
+[02:04] Copying from cache to: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui
+[02:29] Installing uv into embedded Python...
+[02:29] Running: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\python_embeded\python.exe -m pip install uv
+[02:32] Installing ComfyUI requirements...
+[02:32] Running: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\python_embeded\python.exe -m uv pip install -r D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\requirements.txt
+[02:32]
Installing custom node...
-[02:52] Copying ComfyUI-GaussianPack to custom_nodes/...
-[02:52] Installing node requirements...
-[02:52] Running: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\python_embeded\python.exe -m pip install -r D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack\requirements.txt
-[03:01]
+[02:32] Copying ComfyUI-GaussianPack to custom_nodes/...
+[02:32] Installing node requirements...
+[02:32] Running: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\python_embeded\python.exe -m pip install -r D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack\requirements.txt
+[02:41]
Running install.py...
-[03:01] Running: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\python_embeded\python.exe D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack\install.py
-[03:19] Warning: install.py failed (exit code 1), continuing...
-[03:19] [!] install_workspace(comfyui_dir, log=log, dry_run=dry_run)
-[03:19] [!] ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-[03:19] [!] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\python_embeded\Lib\site-packages\comfy_env\install\workspace.py", line 499, in install_workspace
-[03:19] [!] ensure_pixi()
-[03:19] [!] ~~~~~~~~~~~^^
-[03:19] [!] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\python_embeded\Lib\site-packages\comfy_env\packages\pixi.py", line 44, in ensure_pixi
-[03:19] [!] with urllib.request.urlopen(url, context=ctx) as resp:
-[03:19] [!] ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
-[03:19] [!] File "urllib\request.py", line 189, in urlopen
-[03:19] [!] File "urllib\request.py", line 495, in open
-[03:19] [!] File "urllib\request.py", line 604, in http_response
-[03:19] [!] File "urllib\request.py", line 527, in error
-[03:19] [!] File "urllib\request.py", line 466, in _call_chain
-[03:19] [!] File "urllib\request.py", line 720, in http_error_302
-[03:19] [!] File "urllib\request.py", line 495, in open
-[03:19] [!] File "urllib\request.py", line 604, in http_response
-[03:19] [!] File "urllib\request.py", line 533, in error
-[03:19] [!] File "urllib\request.py", line 466, in _call_chain
-[03:19] [!] File "urllib\request.py", line 613, in http_error_default
-[03:19] [!] urllib.error.HTTPError: HTTP Error 504: Gateway Time-out
-[03:19] Installing validation endpoint...
-[03:19] Cloning PozzettiAndrea/ComfyUI-validate-endpoint...
-[03:19] Running: git clone --depth 1 https://x-access-token:***@github.com/PozzettiAndrea/ComfyUI-validate-endpoint.git D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-validate-endpoint
-[03:20] CUDA packages absent (will mock): gsplat
-[03:20] [INSTALL] PASSED
-[03:20]
-[03:20] [3/5] REGISTRATION
-[03:20] ----------------------------------------
-[03:20]
+[02:41] Running: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\python_embeded\python.exe D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack\install.py
+[02:43] [comfy-env] _discover: scanning D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes
+[02:43] [comfy-env] _discover: ComfyUI-GaussianPack -> gaussianpack-nodes (custom_nodes\ComfyUI-GaussianPack\nodes\comfy-env.toml)
+[02:43] [comfy-env] Workspace: C:\Users\stduser\AppData\Local\Programs\comfy-env
+[02:43] [comfy-env] ComfyUI: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI
+[02:43] [comfy-env] Found 1 node config(s):
+[02:43] - gaussianpack-nodes <- custom_nodes\ComfyUI-GaussianPack\nodes\comfy-env.toml (python=host)
+[02:43] [comfy-env] Bootstrap interpreter has python 3.13 + torch 2.12.0 (cu130). Looking for cuda-only wheels matching cu130/torch2.12/cp313.
+[02:45] [comfy-env] GPU: No GPU detected
+[02:45] [comfy-env] Comfyui feature -> torch 2.12.0 from https://download.pytorch.org/whl/cu130 (CUDA 13.0 via bootstrap torch)
+[02:45] [comfy-env] cuda-wheels: 1 package(s) need a matched (cuda, torch, python) combo: ['gsplat']
+[02:45] [comfy-env] cuda-wheels tier 1 (bootstrap): probing cu13.0/torch2.12/cp313
+[02:45] [cuda-wheels] Looking up gsplat: cu130 torch2.12 cp313 win_amd64
+[02:45] [cuda-wheels] GH Pages index unreachable, falling back to GitHub Releases API...
+[02:48] [cuda-wheels] No wheel found via index or API. If your network blocks
+[02:48] [cuda-wheels] *.github.io / fastly, set HTTPS_PROXY to a working proxy.
+[02:48] [comfy-env] cuda-wheels tier 1 incomplete: `gsplat` not built for cu13.0+torch2.12; falling back
+[02:48] [comfy-env] cuda-wheels tier 2 (fallback): probing cu12.8/torch2.8/cp313
+[02:48] [cuda-wheels] Looking up gsplat: cu128 torch2.8 cp313 win_amd64
+[02:48] [cuda-wheels] Found: gsplat-1.5.3+cu128torch2.8-cp313-cp313-win_amd64.whl
+[02:48] [comfy-env] cuda-wheels combo: cu12.8/torch2.8 (fallback; per-node cuda envs will override torch to this combo while comfyui keeps bootstrap torch)
+[02:48] [cuda-wheels] Looking up gsplat: cu128 torch2.8 cp313 win_amd64
+[02:48] [cuda-wheels] Found: gsplat-1.5.3+cu128torch2.8-cp313-cp313-win_amd64.whl
+[02:48] [comfy-env] gaussianpack-nodes: cuda-wheels deferred for post-pixi install (gsplat)
+[02:48] Generated C:\Users\stduser\AppData\Local\Programs\comfy-env\pixi.toml
+[02:48] [comfy-env] Installing 1 environment(s):
+[02:48] - gaussianpack-nodes (python=host, 8 pypi deps, 1 cuda wheels)
+[02:48] [comfy-env] Running `pixi install -e gaussianpack-nodes`...
+[04:17] The gaussianpack-nodes environment has been installed.
+[04:17] [comfy-env] gaussianpack-nodes: installing cuda-wheels with --no-deps (gsplat)
+[04:17] Using Python 3.13.13 environment at: .pixi\envs\gaussianpack-nodes
+[04:18] Resolved 1 package in 969ms
+[04:18] Downloading gsplat (33.6MiB)
+[04:19] Downloaded gsplat
+[04:19] Prepared 1 package in 1.37s
+[04:21] Installed 1 package in 1.22s
+[04:21] + gsplat==1.5.3+cu128torch2.8 (from https://github.com/PozzettiAndrea/cuda-wheels/releases/download/gsplat-latest/gsplat-1.5.3%2Bcu128torch2.8-cp313-cp313-win_amd64.whl)
+[04:21] [comfy-env] Recorded install hash f8f8333c802c -> C:\Users\stduser\AppData\Local\Programs\comfy-env\install.hash
+[04:21] [comfy-env] Install log: C:\Users\stduser\AppData\Local\Programs\comfy-env\install.log
+[04:21]
+[04:21] Installation complete!
+[04:22] Installing validation endpoint...
+[04:22] Cloning PozzettiAndrea/ComfyUI-validate-endpoint...
+[04:22] Running: git clone --depth 1 https://x-access-token:***@github.com/PozzettiAndrea/ComfyUI-validate-endpoint.git D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-validate-endpoint
+[04:22] CUDA packages absent (will mock): gsplat
+[04:22] [INSTALL] PASSED
+[04:22]
+[04:22] [3/5] REGISTRATION
+[04:22] ----------------------------------------
+[04:22]
[DEBUG] server=None, api=None
-[03:20]
+[04:22]
Starting ComfyUI server...
-[03:20] Starting ComfyUI server on port 41884...
-[03:20] CUDA mock packages: gsplat
-[03:20] Starting ComfyUI server on port 41884...
-[03:20] Server stdout/stderr -> D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\server.log
-[03:20] Waiting for server to be ready (timeout: 600s)...
-[03:21] [ComfyUI] [32m[INFO][0m setup plugin alembic.autogenerate.schemas
-[03:21] [ComfyUI] [32m[INFO][0m setup plugin alembic.autogenerate.tables
-[03:21] [ComfyUI] [32m[INFO][0m setup plugin alembic.autogenerate.types
-[03:21] [ComfyUI] [32m[INFO][0m setup plugin alembic.autogenerate.constraints
-[03:21] [ComfyUI] [32m[INFO][0m setup plugin alembic.autogenerate.defaults
-[03:21] [ComfyUI] [32m[INFO][0m setup plugin alembic.autogenerate.comments
-[03:21] [ComfyUI] [32m[INFO][0m
-[03:21] [ComfyUI] Prestartup times for custom nodes:
-[03:21] [ComfyUI] [32m[INFO][0m 0.0 seconds: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack
-[03:21] [ComfyUI] [32m[INFO][0m
-[03:24] [ComfyUI] D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\python_embeded\Lib\site-packages\torch\cuda\__init__.py:187: UserWarning: cudaGetDeviceCount() returned cudaErrorNotSupported, likely using older driver or on CPU machine (Triggered internally at C:\actions-runner\_work\pytorch\pytorch\c10\cuda\CUDAFunctions.cpp:88.)
-[03:24] [ComfyUI] return torch._C._cuda_getDeviceCount() > 0
-[03:24] [ComfyUI] [32m[INFO][0m Found comfy_kitchen backend triton: {'available': False, 'disabled': True, 'unavailable_reason': "ImportError: No module named 'triton'", 'capabilities': []}
-[03:24] [ComfyUI] [32m[INFO][0m Found comfy_kitchen backend cuda: {'available': False, 'disabled': False, 'unavailable_reason': 'CUDA not available on this system', 'capabilities': []}
-[03:24] [ComfyUI] [32m[INFO][0m Found comfy_kitchen backend eager: {'available': True, 'disabled': False, 'unavailable_reason': None, 'capabilities': ['apply_rope', 'apply_rope1', 'apply_rope_split_half', 'apply_rope_split_half1', 'dequantize_mxfp8', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'gemv_awq_w4a16', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8', 'quantize_svdquant_w4a4', 'scaled_mm_mxfp8', 'scaled_mm_nvfp4', 'scaled_mm_svdquant_w4a4', 'stochastic_rounding_fp8']}
-[03:24] [ComfyUI] [32m[INFO][0m Checkpoint files will always be loaded safely.
-[03:24] [ComfyUI] [32m[INFO][0m Total VRAM 16379 MB, total RAM 16379 MB
-[03:24] [ComfyUI] [32m[INFO][0m pytorch version: 2.12.0+cu130
-[03:24] [ComfyUI] [32m[INFO][0m Set vram state to: DISABLED
-[03:24] [ComfyUI] [32m[INFO][0m Device: cpu
-[03:25] [ComfyUI] [32m[INFO][0m Using sub quadratic optimization for attention, if you have memory or speed issues try using: --use-split-cross-attention
-[03:29] [ComfyUI] [32m[INFO][0m Python version: 3.13.12 (tags/v3.13.12:1cbe481, Feb 3 2026, 18:22:25) [MSC v.1944 64 bit (AMD64)]
-[03:29] [ComfyUI] [32m[INFO][0m ComfyUI version: 0.24.0
-[03:29] [ComfyUI] [32m[INFO][0m comfy-aimdo version: 0.4.8
-[03:29] [ComfyUI] [32m[INFO][0m comfy-kitchen version: 0.2.10
-[03:29] [ComfyUI] [1m[33m[WARNING][0m ****** User settings have been changed to be stored on the server instead of browser storage. ******
-[03:29] [ComfyUI] [1m[33m[WARNING][0m ****** For multi-user setups add the --multi-user CLI argument to enable multiple user profiles. ******
-[03:29] [ComfyUI] [32m[INFO][0m comfyui-frontend-package version: 1.44.19
-[03:29] [ComfyUI] [32m[INFO][0m comfyui-workflow-templates version: 0.9.94
-[03:29] [ComfyUI] [32m[INFO][0m comfyui-embedded-docs version: 0.5.2
-[03:29] [ComfyUI] [32m[INFO][0m comfy-kitchen version: 0.2.10
-[03:29] [ComfyUI] [32m[INFO][0m comfy-aimdo version: 0.4.8
-[03:29] [ComfyUI] [32m[INFO][0m [Prompt Server] web root: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\python_embeded\Lib\site-packages\comfyui_frontend_package\static
-[03:29] [ComfyUI] [32m[INFO][0m Asset seeder disabled
-[03:31] [ComfyUI] [comfy-env] Version: 0.3.89
-[03:32] [ComfyUI] [comfy-env] register_nodes: ComfyUI-GaussianPack
-[03:32] [ComfyUI] [comfy-env] ComfyUI source dir: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI
-[03:32] [ComfyUI] [comfy-env] Workspace: C:\Users\stduser\AppData\Local\Programs\comfy-env
-[03:32] [ComfyUI] [comfy-env] isolation env not found at C:\Users\stduser\AppData\Local\Programs\comfy-env\.pixi\envs\gaussianpack-nodes: pixi has not materialized `gaussianpack-nodes`; using in-process import. Run `comfy-env install` (or your node's `install.py`) to create it.
-[03:32] [ComfyUI] [comfy-env] Found 0 isolation env(s)
-[03:32] [ComfyUI] [comfy-env] Importing nodes (root)...
-[03:32] [ComfyUI] [comfy-env] Imported nodes root: 10 nodes
-[03:32] [ComfyUI] [comfy-env] isolation env not found at C:\Users\stduser\AppData\Local\Programs\comfy-env\.pixi\envs\gaussianpack-nodes: pixi has not materialized `gaussianpack-nodes`; using in-process import. Run `comfy-env install` (or your node's `install.py`) to create it.
-[03:32] [ComfyUI] [comfy-env] No env for nodes -- run 'comfy-env install'
-[03:32] [ComfyUI] [comfy-env] Registered 10 total nodes
-[03:32] [ComfyUI] [32m[INFO][0m
-[03:32] [ComfyUI] Import times for custom nodes:
-[03:32] [ComfyUI] [32m[INFO][0m 0.0 seconds: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\websocket_image_save.py
-[03:32] [ComfyUI] [32m[INFO][0m 0.0 seconds: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-validate-endpoint
-[03:32] [ComfyUI] [32m[INFO][0m 0.9 seconds: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack
-[03:32] [ComfyUI] [32m[INFO][0m
-[03:32] [ComfyUI] [32m[INFO][0m Context impl SQLiteImpl.
-[03:32] [ComfyUI] [32m[INFO][0m Will assume non-transactional DDL.
-[03:32] [ComfyUI] [32m[INFO][0m Context impl SQLiteImpl.
-[03:32] [ComfyUI] [32m[INFO][0m Will assume non-transactional DDL.
-[03:32] [ComfyUI] [32m[INFO][0m Running upgrade -> 0001_assets, Initial assets schema
-[03:32] [ComfyUI] Revision ID: 0001_assets
-[03:32] [ComfyUI] Revises: None
-[03:32] [ComfyUI] Create Date: 2025-12-10 00:00:00
-[03:32] [ComfyUI] [32m[INFO][0m Running upgrade 0001_assets -> 0002_merge_to_asset_references, Merge AssetInfo and AssetCacheState into unified asset_references table.
-[03:32] [ComfyUI] [32m[INFO][0m Running upgrade 0002_merge_to_asset_references -> 0003_add_metadata_job_id, Add system_metadata and job_id columns to asset_references.
-[03:32] [ComfyUI] Change preview_id FK from assets.id to asset_references.id.
-[03:32] [ComfyUI] [32m[INFO][0m Database upgraded from None to 0003_add_metadata_job_id
-[03:32] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
-[03:32] [ComfyUI] [32m[INFO][0m Starting server
-[03:32] [ComfyUI]
-[03:32] [ComfyUI] [32m[INFO][0m To see the GUI go to: http://127.0.0.1:41884
-[03:33] Server responding, waiting for nodes to load...
-[03:53] Server is ready!
-[03:53] Checking for import errors in server logs...
-[03:53] No import errors detected
-[03:53] Found 775 registered nodes
-[03:53] [REGISTRATION] PASSED
-[03:53]
-[03:53] [4/5] INSTANTIATION
-[03:53] ----------------------------------------
-[03:53]
-[DEBUG] server=, api=
-[03:53] Testing node constructors...
-[03:57] All 10 node(s) instantiated successfully!
-[03:57] [INSTANTIATION] PASSED
-[03:57]
-[03:57] [5/5] EXECUTION
-[03:57] ----------------------------------------
-[03:57]
-[DEBUG] server=, api=
-[03:57] CPU runner - will execute 4 workflow(s)
-[03:57] Running 4 workflow(s) (all with videos)...
-[03:57] Installing screenshot dependencies (playwright, pillow)...
-[03:59] Packages installed, downloading chromium browser...
-[04:16] Screenshot dependencies installed successfully
-[04:16] Starting headless browser...
-[04:16] Downloading Mesa llvmpipe for Windows...
-[04:21] Copied opengl32.dll to Chromium dir
-[04:21] Copied libgallium_wgl.dll to Chromium dir
-[04:21] Using Mesa llvmpipe (desktop GL) -- multithreaded CPU rendering
-[04:22] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
-[04:22] Capturing execution frames: gaussian_analysis.json
-[04:22] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
-[04:31] Frame 1 saved (frame_000.jpg, t=0.0s)
-[04:31] Validating workflow...
-[04:31] Queuing workflow for execution...
-[04:31] [ComfyUI] [32m[INFO][0m === /validate endpoint called ===
-[04:31] [ComfyUI] [32m[INFO][0m Received JSON with keys: ['prompt']
-[04:31] [ComfyUI] [32m[INFO][0m Prompt has 4 nodes
-[04:31] [ComfyUI] [32m[INFO][0m Node 1: LoadPLY
-[04:31] [ComfyUI] [32m[INFO][0m Inputs: {"ply_file": "apple.ply"}
-[04:31] [ComfyUI] [32m[INFO][0m Node 19: GaussianAnalysis
-[04:31] [ComfyUI] [32m[INFO][0m Inputs: {"ply_path": ["1", 0]}
-[04:31] [ComfyUI] [32m[INFO][0m Node 20: LoadPLY
-[04:31] [ComfyUI] [32m[INFO][0m Inputs: {"ply_file": "compressed_room.ply"}
-[04:31] [ComfyUI] [32m[INFO][0m Node 21: GaussianAnalysis
-[04:31] [ComfyUI] [32m[INFO][0m Inputs: {"ply_path": ["20", 0]}
-[04:31] [ComfyUI] [32m[INFO][0m Generated prompt_id: 68d52ede-a37c-4f48-b22a-4bbb68beb4aa
-[04:31] [ComfyUI] [32m[INFO][0m Calling execution.validate_prompt()...
-[04:31] [ComfyUI] [32m[INFO][0m Validation result: valid=True
-[04:31] [ComfyUI] [32m[INFO][0m === Validation PASSED ===
-[04:31] [ComfyUI] [32m[INFO][0m got prompt
-[04:31] [ComfyUI] [32m[INFO][0m LoadPLY: compressed_room.ply -> D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\compressed_room.ply
-[04:31] [ComfyUI] [32m[INFO][0m GaussianAnalysis:
-[04:31] [ComfyUI] == Gaussian PLY analysis ==
-[04:31] [ComfyUI] path: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\compressed_room.ply
-[04:31] [ComfyUI] size: 26.70 MB (28,000,362 bytes)
-[04:31] [ComfyUI] encoding: binary_little_endian 1.0
-[04:31] [ComfyUI] splat count: 500,000
-[04:31] [ComfyUI] bytes/splat: 56.0
-[04:31] [ComfyUI] flavor: SH-stripped 3DGS (DC only, no view-dependent term)
-[04:31] [ComfyUI] SH degree: 0
-[04:31] [ComfyUI] precision: float32 (all)
-[04:31] [ComfyUI] has f_dc_*: True
-[04:31] [ComfyUI] has RGB uchar: False
-[04:31] [ComfyUI] has opacity: True
-[04:31] [ComfyUI] has scale_*: True
-[04:31] [ComfyUI] has rot_*: True
-[04:31] [ComfyUI] total props: 14
-[04:31] [ComfyUI] [32m[INFO][0m LoadPLY: apple.ply -> D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\apple.ply
-[04:31] [ComfyUI] [32m[INFO][0m GaussianAnalysis:
-[04:31] [ComfyUI] == Gaussian PLY analysis ==
-[04:31] [ComfyUI] path: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\apple.ply
-[04:31] [ComfyUI] size: 47.30 MB (49,601,531 bytes)
-[04:31] [ComfyUI] encoding: binary_little_endian 1.0
-[04:31] [ComfyUI] splat count: 200,000
-[04:31] [ComfyUI] bytes/splat: 248.0
-[04:31] [ComfyUI] flavor: raw 3DGS PLY (SH degree 3)
-[04:31] [ComfyUI] SH degree: 3
-[04:31] [ComfyUI] precision: float32 (all)
-[04:31] [ComfyUI] has f_dc_*: True
-[04:31] [ComfyUI] has RGB uchar: False
-[04:31] [ComfyUI] has opacity: True
-[04:31] [ComfyUI] has scale_*: True
-[04:31] [ComfyUI] has rot_*: True
-[04:31] [ComfyUI] total props: 62
-[04:31] [ComfyUI] [32m[INFO][0m [32mPrompt executed in 0.02 seconds[0m
-[04:31] Node executed (2 total), capturing...
-[04:31] Frame 2 saved (frame_001.jpg, t=0.5s)
-[04:31] [capture-node] freeze=6ms shot=103ms unfreeze=0ms saved=True
-[04:31] Execution complete (t=0.5s)
-[04:31] [3d-wait] Phase 1: Waiting for 'Loading 3D Model' text to disappear...
-[04:31] [3d-wait] Phase 1 done in 0.0s
-[04:31] [3d-wait] Phase 2: iframes=0
-[04:31] [3d-wait] Total 3D wait: 0.0s
-[04:31] Captured 2 unique frames over 0.67s
-[04:31] [debug] iframes: 0
-[04:31] [timing] trigger_3d_previews: 0.0s
-[04:34] Saved high-quality screenshot: gaussian_analysis_executed.png
-[04:34] [timing] final_screenshot: 0.3s
-[04:34] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
-[04:34] Capturing execution frames: merge_splats.json
-[04:34] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
-[04:34] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
-[04:35] [ComfyUI] [1m[31m[ERROR][0m Exception in callback _ProactorBasePipeTransport._call_connection_lost()
-[04:35] [ComfyUI] handle:
-[04:35] [ComfyUI] Traceback (most recent call last):
-[04:35] [ComfyUI] File "asyncio\events.py", line 89, in _run
-[04:35] [ComfyUI] File "asyncio\proactor_events.py", line 165, in _call_connection_lost
-[04:35] [ComfyUI] ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
-[04:41] Frame 1 saved (frame_000.jpg, t=0.0s)
-[04:41] Validating workflow...
-[04:41] Queuing workflow for execution...
-[04:41] [ComfyUI] [32m[INFO][0m === /validate endpoint called ===
-[04:41] [ComfyUI] [32m[INFO][0m Received JSON with keys: ['prompt']
-[04:41] [ComfyUI] [32m[INFO][0m Prompt has 3 nodes
-[04:41] [ComfyUI] [32m[INFO][0m Node 1: LoadPLY
-[04:41] [ComfyUI] [32m[INFO][0m Inputs: {"ply_file": "apple.ply"}
-[04:41] [ComfyUI] [32m[INFO][0m Node 12: GaussianMerge
-[04:41] [ComfyUI] [32m[INFO][0m Inputs: {"target_count": 100000, "output_filename": "applemerged", "opacity_threshold": 0.1, "k": 16, "backend": "nanogs_cpu", "ply_path": ["1", 0]}
-[04:41] [ComfyUI] [32m[INFO][0m Node 14: PreviewGaussianDual
-[04:41] [ComfyUI] [32m[INFO][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]}
-[04:41] [ComfyUI] [32m[INFO][0m Generated prompt_id: da948adf-79a8-4b1c-a4e6-e49d0db097e4
-[04:41] [ComfyUI] [32m[INFO][0m Calling execution.validate_prompt()...
-[04:41] [ComfyUI] [32m[INFO][0m Validation result: valid=True
-[04:41] [ComfyUI] [32m[INFO][0m === Validation PASSED ===
-[04:41] [ComfyUI] [32m[INFO][0m got prompt
-[04:41] [ComfyUI] [32m[INFO][0m LoadPLY: apple.ply -> D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\apple.ply
-[04:41] [ComfyUI] [32m[INFO][0m GaussianMerge: 200000 -> 100000 splats (ratio=0.5000, backend=nanogs_cpu) on D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\apple.ply
-[04:41] [ComfyUI] Loading PLY: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\apple.ply
-[04:41] [ComfyUI] Initial splats: 200000
-[04:41] [ComfyUI] Pruned splats: 200000, target: 100000
-[04:41] [ComfyUI] Opacity Mean: 0.53443545 Median: 0.48362076
-[04:41] [ComfyUI] Pruning splats with opacity below 0.1000
-[04:41] [ComfyUI] Original count: 200000, after opacity pruning: 200000
-[04:41] [ComfyUI] After opacity pruning, 200000 splats remain.
-[04:41] [ComfyUI] Pass 1: 200000 splats
-[04:43] Frame 2 saved (frame_001.jpg, t=2.2s)
-[04:43] [capture-periodic] freeze=5ms shot=94ms unfreeze=5ms saved=True
-[04:45] Frame 3 saved (frame_002.jpg, t=4.5s)
-[04:45] [capture-periodic] freeze=4ms shot=101ms unfreeze=6ms saved=True
-[04:46] [ComfyUI]
-[04:46] [ComfyUI] Edge costs: 0%| | 0/19 [00:00, ?it/s]
-[04:46] [ComfyUI]
-[04:46] [ComfyUI] Edge costs: 5%|5 | 1/19 [00:00<00:03, 4.54it/s]
-[04:46] [ComfyUI]
-[04:46] [ComfyUI] Edge costs: 11%|# | 2/19 [00:00<00:03, 4.40it/s]
-[04:46] [ComfyUI]
-[04:46] [ComfyUI] Edge costs: 16%|#5 | 3/19 [00:00<00:03, 4.48it/s]
-[04:47] [ComfyUI]
-p] iter=50 t=6.0s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=6 ram=6.0/16.0GB (38%) swap=0.2/2.9GB (8%) cpu=46% browser_rss=0.75GB
-[04:47] [ComfyUI] Edge costs: 21%|##1 | 4/19 [00:00<00:03, 4.52it/s]
-[04:47] [ComfyUI] Edge costs: 26%|##6 | 5/19 [00:01<00:03, 4.54it/s]
-[04:47] [ComfyUI]
-[04:47] [ComfyUI] Edge costs: 32%|###1 | 6/19 [00:01<00:02, 4.54it/s]
-[04:47] [ComfyUI]
-[04:47] [ComfyUI] Edge costs: 37%|###6 | 7/19 [00:01<00:02, 4.48it/s]
-[04:47] [ComfyUI]
-[04:47] [ComfyUI] Edge costs: 42%|####2 | 8/19 [00:01<00:02, 4.47it/s]
-[04:48] [ComfyUI]
-[04:48] [ComfyUI] Edge costs: 47%|####7 | 9/19 [00:01<00:02, 4.54it/s]
-[04:48] [ComfyUI]
-[04:48] [ComfyUI] Edge costs: 53%|#####2 | 10/19 [00:02<00:01, 4.51it/s]
-[04:48] [ComfyUI]
-[04:48] [ComfyUI] Edge costs: 58%|#####7 | 11/19 [00:02<00:01, 4.62it/s]
-[04:48] [ComfyUI]
-[04:48] [ComfyUI] Edge costs: 63%|######3 | 12/19 [00:02<00:01, 4.44it/s]
-[04:49] [ComfyUI]
-[04:49] [ComfyUI] Edge costs: 68%|######8 | 13/19 [00:02<00:01, 4.50it/s]
-[04:49] [ComfyUI]
-[04:49] [ComfyUI] Edge costs: 74%|#######3 | 14/19 [00:03<00:01, 4.56it/s]
-[04:49] [ComfyUI]
-[04:49] [ComfyUI] Edge costs: 79%|#######8 | 15/19 [00:03<00:00, 4.69it/s]
-[04:49] [ComfyUI]
-[04:49] [ComfyUI] Edge costs: 84%|########4 | 16/19 [00:03<00:00, 4.72it/s]
-[04:49] [ComfyUI]
-[04:49] [ComfyUI] Edge costs: 89%|########9 | 17/19 [00:03<00:00, 4.55it/s]
-[04:50] [ComfyUI]
-[04:50] [ComfyUI] Edge costs: 95%|#########4| 18/19 [00:03<00:00, 4.57it/s]
-[04:50] [ComfyUI] Edge costs: 100%|##########| 19/19 [00:04<00:00, 4.69it/s]
-[04:51] [ComfyUI] edges: 1848776, pairs: 96906 (need 100000)
-[04:51] [ComfyUI] Merging 96906 pairs
-[04:51] [ComfyUI] Pass 2: 103094 splats
-[04:53] [capture-loop] iter=100 t=12.2s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=6 ram=5.9/16.0GB (37%) swap=0.2/2.9GB (8%) cpu=45% browser_rss=0.65GB
-[04:54] [ComfyUI]
-[04:54] [ComfyUI] Edge costs: 0%| | 0/10 [00:00, ?it/s]
-[04:54] [ComfyUI]
-[04:54] [ComfyUI] Edge costs: 10%|# | 1/10 [00:00<00:01, 4.75it/s]
-[04:54] [ComfyUI]
-[04:54] [ComfyUI] Edge costs: 20%|## | 2/10 [00:00<00:01, 4.67it/s]
-[04:54] [ComfyUI]
-[04:54] [ComfyUI] Edge costs: 30%|### | 3/10 [00:00<00:01, 4.87it/s]
-[04:55] [ComfyUI]
-[04:55] [ComfyUI] Edge costs: 40%|#### | 4/10 [00:00<00:01, 4.85it/s]
-[04:55] [ComfyUI]
-[04:55] [ComfyUI] Edge costs: 50%|##### | 5/10 [00:01<00:01, 4.81it/s]
-[04:55] [ComfyUI]
-[04:55] [ComfyUI] Edge costs: 60%|###### | 6/10 [00:01<00:00, 4.90it/s]
-[04:55] [ComfyUI]
-[04:55] [ComfyUI] Edge costs: 70%|####### | 7/10 [00:01<00:00, 5.01it/s]
-[04:55] [ComfyUI]
-[04:55] [ComfyUI] Edge costs: 80%|######## | 8/10 [00:01<00:00, 5.09it/s]
-[04:56] [ComfyUI]
-[04:56] [ComfyUI] Edge costs: 90%|######### | 9/10 [00:01<00:00, 4.87it/s]
-[04:56] [ComfyUI] Edge costs: 100%|##########| 10/10 [00:01<00:00, 5.33it/s]
-[04:56] [ComfyUI] edges: 919857, pairs: 3094 (need 3094)
-[04:56] [ComfyUI] Merging 3094 pairs
-[04:56] [ComfyUI] Final splats: 100000
-[04:59] [capture-loop] iter=150 t=18.0s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=7 ram=5.9/16.0GB (37%) swap=0.2/2.9GB (8%) cpu=40% browser_rss=0.65GB
-[05:00] [ComfyUI] [32m[INFO][0m GaussianMerge: wrote D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\output\applemerged.ply (100000 splats, 23.7 MB)
-[05:00] [ComfyUI] [32m[INFO][0m [32mPrompt executed in 19.06 seconds[0m
-[05:00] Node executed (2 total), capturing...
-[05:00] Frame 4 saved (frame_003.jpg, t=19.4s)
-[05:00] [capture-node] freeze=6ms shot=107ms unfreeze=0ms saved=True
-[05:00] Execution complete (t=19.4s)
-[05:00] [3d-wait] Phase 1: Waiting for 'Loading 3D Model' text to disappear...
-[05:00] [3d-wait] Phase 1 done in 0.0s
-[05:00] [3d-wait] Phase 2: iframes=1
-[05:00] [3d-wait] iframe viewer_ready=False (matched 0 console logs)
-[05:00] [3d-wait] Waiting for 'Loaded successfully' console message (timeout=60s)...
-[06:00] [3d-wait] iframe wait exception: Timeout 60000ms exceeded while waiting for event "console"
-=========================== logs ===========================
-waiting for event "console"
-============================================================
-[06:01] [3d-wait] Total 3D wait: 61.2s
-[06:01] Captured 4 unique frames over 80.76s
-[06:04] [debug] iframes: 1
-[06:04] [debug] iframe[0]: src=http://127.0.0.1:41884/extensions/ComfyUI-GaussianPack/viewer_gaussian_dual.html, canvas=486x229, rafFrozen=True
-[06:04] [timing] trigger_3d_previews: 0.0s
-[06:06] Saved high-quality screenshot: merge_splats_executed.png
-[06:06] [timing] final_screenshot: 0.2s
-[06:06] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
-[06:06] Capturing execution frames: rotate_splats.json
-[06:07] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
-[06:07] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
-[06:12] Frame 1 saved (frame_000.jpg, t=0.0s)
-[06:12] Validating workflow...
-[06:12] Queuing workflow for execution...
-[06:12] [ComfyUI] [32m[INFO][0m === /validate endpoint called ===
-[06:12] [ComfyUI] [32m[INFO][0m Received JSON with keys: ['prompt']
-[06:12] [ComfyUI] [32m[INFO][0m Prompt has 3 nodes
-[06:12] [ComfyUI] [32m[INFO][0m Node 1: LoadPLY
-[06:12] [ComfyUI] [32m[INFO][0m Inputs: {"ply_file": "apple.ply"}
-[06:12] [ComfyUI] [32m[INFO][0m Node 14: PreviewGaussianDual
-[06:12] [ComfyUI] [32m[INFO][0m Inputs: {"layout": "slider", "camera_mode": "orbit", "fov_degrees": 70, "renderer": "playcanvas", "transport_format": "ply", "ply_path_1": ["1", 0], "ply_path_2": ["18", 0]}
-[06:12] [ComfyUI] [32m[INFO][0m Node 18: TransformGaussian
-[06:12] [ComfyUI] [32m[INFO][0m Inputs: {"rotate_x": -90, "rotate_y": 0, "rotate_z": 0, "ply_path": ["1", 0]}
-[06:12] [ComfyUI] [32m[INFO][0m Generated prompt_id: 606fc7b4-1ef0-4a8b-bb86-ea5ab470d06c
-[06:12] [ComfyUI] [32m[INFO][0m Calling execution.validate_prompt()...
-[06:12] [ComfyUI] [32m[INFO][0m Validation result: valid=True
-[06:12] [ComfyUI] [32m[INFO][0m === Validation PASSED ===
-[06:12] [ComfyUI] [32m[INFO][0m got prompt
-[06:12] [ComfyUI] [32m[INFO][0m LoadPLY: apple.ply -> D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\apple.ply
-[06:12] [ComfyUI] [32m[INFO][0m TransformGaussian: 200000 splats, rotation X=-90.0 Y=0.0 Z=0.0
-[06:13] [ComfyUI] [32m[INFO][0m TransformGaussian: rotated SH AC (sh_degree=3, 15 coeffs/channel x 3 channels) via Wigner-D
-[06:13] [ComfyUI] [32m[INFO][0m TransformGaussian: wrote apple_rot_m90_p0_p0_0e442043.ply (47.3 MB)
-[06:13] [ComfyUI] [32m[INFO][0m [32mPrompt executed in 0.81 seconds[0m
-[06:13] Node executed (1 total), capturing...
-[06:14] Frame 2 saved (frame_001.jpg, t=1.2s)
-[06:14] [capture-node] freeze=48ms shot=343ms unfreeze=0ms saved=True
-[06:14] Execution complete (t=1.2s)
-[06:14] [3d-wait] Phase 1: Waiting for 'Loading 3D Model' text to disappear...
-[06:14] [3d-wait] Phase 1 done in 0.0s
-[06:14] [3d-wait] Phase 2: iframes=1
-[06:14] [3d-wait] iframe viewer_ready=False (matched 0 console logs)
-[06:14] [3d-wait] Waiting for 'Loaded successfully' console message (timeout=60s)...
-[07:14] [3d-wait] iframe wait exception: Timeout 60000ms exceeded while waiting for event "console"
-=========================== logs ===========================
-waiting for event "console"
-============================================================
-[07:14] [3d-wait] Total 3D wait: 60.0s
-[07:14] Captured 2 unique frames over 61.65s
-[07:14] [debug] iframes: 1
-[07:14] [debug] iframe[0]: src=http://127.0.0.1:41884/extensions/ComfyUI-GaussianPack/viewer_gaussian_dual.html, canvas=486x203, rafFrozen=True
-[07:14] [timing] trigger_3d_previews: 0.0s
-[07:16] Saved high-quality screenshot: rotate_splats_executed.png
-[07:16] [timing] final_screenshot: 0.2s
-[07:16] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
-[07:17] Capturing execution frames: spectate.json
-[07:17] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
-[07:17] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
-[07:22] Frame 1 saved (frame_000.jpg, t=0.0s)
-[07:22] Validating workflow...
-[07:22] Queuing workflow for execution...
-[07:23] [ComfyUI] [32m[INFO][0m === /validate endpoint called ===
-[07:23] [ComfyUI] [32m[INFO][0m Received JSON with keys: ['prompt']
-[07:23] [ComfyUI] [32m[INFO][0m Prompt has 2 nodes
-[07:23] [ComfyUI] [32m[INFO][0m Node 1: LoadPLY
-[07:23] [ComfyUI] [32m[INFO][0m Inputs: {"ply_file": "compressed_room.ply"}
-[07:23] [ComfyUI] [32m[INFO][0m Node 2: PreviewGaussians
-[07:23] [ComfyUI] [32m[INFO][0m Inputs: {"camera_mode": "spectate", "fov_degrees": 70, "renderer": "playcanvas", "transport_format": "ply", "ply_path": ["1", 0]}
-[07:23] [ComfyUI] [32m[INFO][0m Generated prompt_id: 5a885c67-a806-4dae-a8c2-710d79b29166
-[07:23] [ComfyUI] [32m[INFO][0m Calling execution.validate_prompt()...
-[07:23] [ComfyUI] [32m[INFO][0m Validation result: valid=True
-[07:23] [ComfyUI] [32m[INFO][0m === Validation PASSED ===
-[07:23] [ComfyUI] [32m[INFO][0m got prompt
-[07:23] [ComfyUI] [32m[INFO][0m LoadPLY: compressed_room.ply -> D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1400\portable-comfyui\ComfyUI_windows_portable\ComfyUI\input\compressed_room.ply
-[07:23] [ComfyUI] [32m[INFO][0m [32mPrompt executed in 0.01 seconds[0m
-[07:23] Node executed (1 total), capturing...
-[07:23] Frame 2 saved (frame_001.jpg, t=0.5s)
-[07:23] [capture-node] freeze=5ms shot=98ms unfreeze=0ms saved=True
-[07:23] Execution complete (t=0.5s)
-[07:23] [3d-wait] Phase 1: Waiting for 'Loading 3D Model' text to disappear...
-[07:23] [3d-wait] Phase 1 done in 0.0s
-[07:23] [3d-wait] Phase 2: iframes=1
-[07:23] [3d-wait] iframe viewer_ready=False (matched 0 console logs)
-[07:23] [3d-wait] Waiting for 'Loaded successfully' console message (timeout=60s)...
-[07:24] [3d-wait] Got 'Loaded successfully' after 1.2s
-[07:24] [3d-wait] Unfrozen in 0.011s, rendering for 5s...
-[07:30] [3d-wait] JS halted via CDP after 6.1s
-[07:31] [3d-wait] Re-frozen in 7.2s
-[07:31] [3d-wait] Total 3D wait: 8.4s
-[07:31] Captured 2 unique frames over 9.0s
-[07:31] [debug] iframes: 1
-[07:31] [debug] iframe[0]: src=http://127.0.0.1:41884/extensions/ComfyUI-GaussianPack/viewer_gaussian.html?mode, canvas=781x394, rafFrozen=True
-[07:31] [timing] trigger_3d_previews: 0.0s
-[07:34] Saved high-quality screenshot: spectate_executed.png
-[07:34] [timing] final_screenshot: 0.3s
-[07:34] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
-[07:34] Results saved to D:\a\comfy-gpu-ci\comfy-gpu-ci\comfy-test-logs\GaussianPack-1400\dev\windows-portable-cpu\results.json
-[07:34] Model report: 8 files, 18.7 MB -> D:\a\comfy-gpu-ci\comfy-gpu-ci\comfy-test-logs\GaussianPack-1400\dev\windows-portable-cpu\models.json
-[07:34] Saved: D:\a\comfy-gpu-ci\comfy-gpu-ci\comfy-test-logs\GaussianPack-1400\dev\windows-portable-cpu\index.html
-[07:34] [EXECUTION] PASSED
-[07:34]
-windows_portable: PASSED
-[07:34] Stopping ComfyUI server...
+[04:22] Starting ComfyUI server on port 41888...
+[04:22] CUDA mock packages: gsplat
+[04:22] Starting ComfyUI server on port 41888...
+[04:22] Server stdout/stderr -> D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\server.log
+[04:22] Waiting for server to be ready (timeout: 600s)...
+[04:23] [ComfyUI] [32m[INFO][0m setup plugin alembic.autogenerate.schemas
+[04:23] [ComfyUI] [32m[INFO][0m setup plugin alembic.autogenerate.tables
+[04:23] [ComfyUI] [32m[INFO][0m setup plugin alembic.autogenerate.types
+[04:23] [ComfyUI] [32m[INFO][0m setup plugin alembic.autogenerate.constraints
+[04:23] [ComfyUI] [32m[INFO][0m setup plugin alembic.autogenerate.defaults
+[04:23] [ComfyUI] [32m[INFO][0m setup plugin alembic.autogenerate.comments
+[04:23] [ComfyUI] [32m[INFO][0m
+[04:23] [ComfyUI] Prestartup times for custom nodes:
+[04:23] [ComfyUI] [32m[INFO][0m 0.0 seconds: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack
+[04:23] [ComfyUI] [32m[INFO][0m
+[04:26] [ComfyUI] D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\python_embeded\Lib\site-packages\torch\cuda\__init__.py:187: UserWarning: cudaGetDeviceCount() returned cudaErrorNotSupported, likely using older driver or on CPU machine (Triggered internally at C:\actions-runner\_work\pytorch\pytorch\c10\cuda\CUDAFunctions.cpp:88.)
+[04:26] [ComfyUI] return torch._C._cuda_getDeviceCount() > 0
+[04:26] [ComfyUI] [32m[INFO][0m Found comfy_kitchen backend cuda: {'available': False, 'disabled': False, 'unavailable_reason': 'CUDA not available on this system', 'capabilities': []}
+[04:26] [ComfyUI] [32m[INFO][0m Found comfy_kitchen backend triton: {'available': False, 'disabled': True, 'unavailable_reason': "ImportError: No module named 'triton'", 'capabilities': []}
+[04:26] [ComfyUI] [32m[INFO][0m Found comfy_kitchen backend eager: {'available': True, 'disabled': False, 'unavailable_reason': None, 'capabilities': ['apply_rope', 'apply_rope1', 'apply_rope_split_half', 'apply_rope_split_half1', 'dequantize_mxfp8', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'gemv_awq_w4a16', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8', 'quantize_svdquant_w4a4', 'scaled_mm_mxfp8', 'scaled_mm_nvfp4', 'scaled_mm_svdquant_w4a4', 'stochastic_rounding_fp8']}
+[04:26] [ComfyUI] [32m[INFO][0m Checkpoint files will always be loaded safely.
+[04:26] [ComfyUI] [32m[INFO][0m Total VRAM 16379 MB, total RAM 16379 MB
+[04:26] [ComfyUI] [32m[INFO][0m pytorch version: 2.12.0+cu130
+[04:26] [ComfyUI] [32m[INFO][0m Set vram state to: DISABLED
+[04:26] [ComfyUI] [32m[INFO][0m Device: cpu
+[04:26] [ComfyUI] [32m[INFO][0m Using sub quadratic optimization for attention, if you have memory or speed issues try using: --use-split-cross-attention
+[04:31] [ComfyUI] [32m[INFO][0m Python version: 3.13.12 (tags/v3.13.12:1cbe481, Feb 3 2026, 18:22:25) [MSC v.1944 64 bit (AMD64)]
+[04:31] [ComfyUI] [32m[INFO][0m ComfyUI version: 0.24.0
+[04:31] [ComfyUI] [32m[INFO][0m comfy-aimdo version: 0.4.8
+[04:31] [ComfyUI] [32m[INFO][0m comfy-kitchen version: 0.2.10
+[04:31] [ComfyUI] [1m[33m[WARNING][0m ****** User settings have been changed to be stored on the server instead of browser storage. ******
+[04:31] [ComfyUI] [1m[33m[WARNING][0m ****** For multi-user setups add the --multi-user CLI argument to enable multiple user profiles. ******
+[04:31] [ComfyUI] [32m[INFO][0m comfyui-frontend-package version: 1.44.19
+[04:31] [ComfyUI] [32m[INFO][0m comfyui-workflow-templates version: 0.9.94
+[04:31] [ComfyUI] [32m[INFO][0m comfyui-embedded-docs version: 0.5.2
+[04:31] [ComfyUI] [32m[INFO][0m comfy-kitchen version: 0.2.10
+[04:31] [ComfyUI] [32m[INFO][0m comfy-aimdo version: 0.4.8
+[04:31] [ComfyUI] [32m[INFO][0m [Prompt Server] web root: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\python_embeded\Lib\site-packages\comfyui_frontend_package\static
+[04:31] [ComfyUI] [32m[INFO][0m Asset seeder disabled
+[04:34] [ComfyUI] [comfy-env] Version: 0.3.89
+[04:34] [ComfyUI] [comfy-env] register_nodes: ComfyUI-GaussianPack
+[04:34] [ComfyUI] [comfy-env] ComfyUI source dir: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI
+[04:34] [ComfyUI] [comfy-env] Workspace: C:\Users\stduser\AppData\Local\Programs\comfy-env
+[04:34] [ComfyUI] [comfy-env] Found 1 isolation env(s)
+[04:34] [ComfyUI] [comfy-env] Scanning nodes metadata (isolation root)...
+[04:34] [ComfyUI] [comfy-env] gaussianpack-nodes: Library/bin has 158 DLLs
+[04:34] [ComfyUI] [comfy-env] Metadata scan: C:\Users\stduser\.pixi\bin\pixi.exe run --as-is --manifest-path C:\Users\stduser\AppData\Local\Programs\comfy-env\pixi.toml -e gaussianpack-nodes python C:\Users\stduser\AppData\Local\Temp\comfy_meta_7sp57xri.py D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack nodes C:\Users\stduser\AppData\Local\Temp\comfy_meta_out_hufnmz24.pkl
+[04:34] [ComfyUI] [comfy-env] Scan env PATH for nodes:
+[04:34] [ComfyUI] [comfy-env] [0] C:\Users\stduser\AppData\Local\Programs\comfy-env\.pixi\envs\gaussianpack-nodes
+[04:34] [ComfyUI] [comfy-env] [1] C:\Users\stduser\AppData\Local\Programs\comfy-env\.pixi\envs\gaussianpack-nodes\Library\bin
+[04:34] [ComfyUI] [comfy-env] [2] C:\Users\stduser\AppData\Local\Programs\comfy-env\.pixi\envs\gaussianpack-nodes\Scripts
+[04:34] [ComfyUI] [comfy-env] [3] C:\Users\stduser\AppData\Local\Programs\comfy-env\.pixi\envs\gaussianpack-nodes\Lib\site-packages\bpy
+[04:34] [ComfyUI] [comfy-env] [4] C:\Windows\System32
+[04:34] [ComfyUI] [comfy-env] [5] C:\Windows
+[04:34] [ComfyUI] [comfy-env] [6] C:\Windows\System32\Wbem
+[04:39] [ComfyUI] [comfy-env] Metadata scan stderr for nodes:
+[04:39] [ComfyUI] [comfy-env] [meta-scan] importing nodes from D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack
+[04:39] [ComfyUI] [comfy-env] Traceback (most recent call last):
+[04:39] [ComfyUI] [comfy-env] File "C:\Users\stduser\AppData\Local\Temp\comfy_meta_7sp57xri.py", line 65, in
+[04:39] [ComfyUI] [comfy-env] module = importlib.import_module(package_name)
+[04:39] [ComfyUI] [comfy-env] File "C:\Users\stduser\AppData\Local\Programs\comfy-env\.pixi\envs\gaussianpack-nodes\Lib\importlib\__init__.py", line 88, in import_module
+[04:39] [ComfyUI] [comfy-env] return _bootstrap._gcd_import(name[level:], package, level)
+[04:39] [ComfyUI] [comfy-env] ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+[04:39] [ComfyUI] [comfy-env] File "", line 1395, in _gcd_import
+[04:39] [ComfyUI] [comfy-env] File "", line 1360, in _find_and_load
+[04:39] [ComfyUI] [comfy-env] File "", line 1331, in _find_and_load_unlocked
+[04:39] [ComfyUI] [comfy-env] File "", line 935, in _load_unlocked
+[04:39] [ComfyUI] [comfy-env] File "", line 1023, in exec_module
+[04:39] [ComfyUI] [comfy-env] File "", line 488, in _call_with_frames_removed
+[04:39] [ComfyUI] [comfy-env] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack\nodes\__init__.py", line 11, in
+[04:39] [ComfyUI] [comfy-env] from .preview_gaussian_sharp import PreviewGaussianSharp
+[04:39] [ComfyUI] [comfy-env] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack\nodes\preview_gaussian_sharp.py", line 21, in
+[04:39] [ComfyUI] [comfy-env] from comfy_api.latest import io
+[04:39] [ComfyUI] [comfy-env] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\comfy_api\latest\__init__.py", line 6, in
+[04:39] [ComfyUI] [comfy-env] from ._input import ImageInput, AudioInput, MaskInput, LatentInput, VideoInput
+[04:39] [ComfyUI] [comfy-env] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\comfy_api\latest\_input\__init__.py", line 4, in
+[04:39] [ComfyUI] [comfy-env] from .video_types import VideoInput
+[04:39] [ComfyUI] [comfy-env] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\comfy_api\latest\_input\video_types.py", line 6, in
+[04:39] [ComfyUI] [comfy-env] import av
+[04:39] [ComfyUI] [comfy-env] ModuleNotFoundError: No module named 'av'
+[04:39] [ComfyUI] [comfy-env] Metadata scan failed for nodes (exit 1, 5.2s):
+[04:39] [ComfyUI] [comfy-env] from .preview_gaussian_sharp import PreviewGaussianSharp
+[04:39] [ComfyUI] [comfy-env] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack\nodes\preview_gaussian_sharp.py", line 21, in
+[04:39] [ComfyUI] [comfy-env] from comfy_api.latest import io
+[04:39] [ComfyUI] [comfy-env] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\comfy_api\latest\__init__.py", line 6, in
+[04:39] [ComfyUI] [comfy-env] from ._input import ImageInput, AudioInput, MaskInput, LatentInput, VideoInput
+[04:39] [ComfyUI] [comfy-env] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\comfy_api\latest\_input\__init__.py", line 4, in
+[04:39] [ComfyUI] [comfy-env] from .video_types import VideoInput
+[04:39] [ComfyUI] [comfy-env] File "D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\comfy_api\latest\_input\video_types.py", line 6, in
+[04:39] [ComfyUI] [comfy-env] import av
+[04:39] [ComfyUI] [comfy-env] ModuleNotFoundError: No module named 'av'
+[04:39] [ComfyUI] [comfy-env] Scanned nodes root: 0 nodes (5.2s)
+[04:39] [ComfyUI] [comfy-env] Imported nodes root: 0 nodes (isolation)
+[04:39] [ComfyUI] [comfy-env] Registered 0 total nodes
+[04:39] [ComfyUI] [32m[INFO][0m
+[04:39] [ComfyUI] Import times for custom nodes:
+[04:39] [ComfyUI] [32m[INFO][0m 0.0 seconds: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\websocket_image_save.py
+[04:39] [ComfyUI] [32m[INFO][0m 0.0 seconds: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-validate-endpoint
+[04:39] [ComfyUI] [32m[INFO][0m 5.8 seconds: D:\a\comfy-gpu-ci\comfy-gpu-ci\test_workspaces\GaussianPack-1720\portable-comfyui\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-GaussianPack
+[04:39] [ComfyUI] [32m[INFO][0m
+[04:39] [ComfyUI] [32m[INFO][0m Context impl SQLiteImpl.
+[04:39] [ComfyUI] [32m[INFO][0m Will assume non-transactional DDL.
+[04:39] [ComfyUI] [32m[INFO][0m Context impl SQLiteImpl.
+[04:39] [ComfyUI] [32m[INFO][0m Will assume non-transactional DDL.
+[04:39] [ComfyUI] [32m[INFO][0m Running upgrade -> 0001_assets, Initial assets schema
+[04:39] [ComfyUI] Revision ID: 0001_assets
+[04:39] [ComfyUI] Revises: None
+[04:39] [ComfyUI] Create Date: 2025-12-10 00:00:00
+[04:40] [ComfyUI] [32m[INFO][0m Running upgrade 0001_assets -> 0002_merge_to_asset_references, Merge AssetInfo and AssetCacheState into unified asset_references table.
+[04:40] [ComfyUI] [32m[INFO][0m Running upgrade 0002_merge_to_asset_references -> 0003_add_metadata_job_id, Add system_metadata and job_id columns to asset_references.
+[04:40] [ComfyUI] Change preview_id FK from assets.id to asset_references.id.
+[04:40] [ComfyUI] [32m[INFO][0m Database upgraded from None to 0003_add_metadata_job_id
+[04:40] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
+[04:40] [ComfyUI] [32m[INFO][0m Starting server
+[04:40] [ComfyUI]
+[04:40] [ComfyUI] [32m[INFO][0m To see the GUI go to: http://127.0.0.1:41888
+[04:40] Server responding, waiting for nodes to load...
+[05:00] Server is ready!
+[05:00] Checking for import errors in server logs...
+[05:00] No import errors detected
+[05:01] Found 765 registered nodes
+[05:01] [REGISTRATION] PASSED
+[05:01]
+[05:01] [4/5] INSTANTIATION
+[05:01] ----------------------------------------
+[05:01]
+[DEBUG] server=, api=
+[05:01] Testing node constructors...
+[05:05] All 0 node(s) instantiated successfully!
+[05:05] [INSTANTIATION] PASSED
+[05:05]
+[05:05] [5/5] EXECUTION
+[05:05] ----------------------------------------
+[05:05]
+[DEBUG] server=, api=
+[05:05] CPU runner - will execute 4 workflow(s)
+[05:05] Running 4 workflow(s) (all with videos)...
+[05:05] Installing screenshot dependencies (playwright, pillow)...
+[05:08] Packages installed, downloading chromium browser...
+[05:23] Screenshot dependencies installed successfully
+[05:24] Starting headless browser...
+[05:24] Downloading Mesa llvmpipe for Windows...
+[05:29] Copied opengl32.dll to Chromium dir
+[05:29] Copied libgallium_wgl.dll to Chromium dir
+[05:29] Using Mesa llvmpipe (desktop GL) -- multithreaded CPU rendering
+[05:33] Capturing execution frames: gaussian_analysis.json
+[05:33] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
+[05:34] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
+[05:43] Frame 1 saved (frame_000.jpg, t=0.0s)
+[05:43] Validating workflow...
+[05:43] Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [1,19,20,21], sample: {"inputs":{"UNKNOWN":"apple.ply"},"_meta":{}}
+[05:43] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
+[05:43] Capturing execution frames: merge_splats.json
+[05:43] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
+[05:43] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
+[05:49] Frame 1 saved (frame_000.jpg, t=0.0s)
+[05:49] Validating workflow...
+[05:49] Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 3 nodes, missing class_type: [1,12,14], sample: {"inputs":{"UNKNOWN":"apple.ply"},"_meta":{}}
+[05:49] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
+[05:49] Capturing execution frames: rotate_splats.json
+[05:49] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
+[05:49] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
+[05:49] [ComfyUI] [1m[31m[ERROR][0m Exception in callback _ProactorBasePipeTransport._call_connection_lost()
+[05:49] [ComfyUI] handle:
+[05:49] [ComfyUI] Traceback (most recent call last):
+[05:49] [ComfyUI] File "asyncio\events.py", line 89, in _run
+[05:49] [ComfyUI] File "asyncio\proactor_events.py", line 165, in _call_connection_lost
+[05:49] [ComfyUI] ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
+[05:55] Frame 1 saved (frame_000.jpg, t=0.0s)
+[05:55] Validating workflow...
+[05:55] Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 3 nodes, missing class_type: [1,14,18], sample: {"inputs":{"UNKNOWN":"apple.ply"},"_meta":{}}
+[05:55] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
+[05:55] Capturing execution frames: spectate.json
+[05:55] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
+[05:55] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
+[05:55] [ComfyUI] [1m[31m[ERROR][0m Exception in callback _ProactorBasePipeTransport._call_connection_lost()
+[05:56] [ComfyUI] handle:
+[05:56] [ComfyUI] Traceback (most recent call last):
+[05:56] [ComfyUI] File "asyncio\events.py", line 89, in _run
+[05:56] [ComfyUI] File "asyncio\proactor_events.py", line 165, in _call_connection_lost
+[05:56] [ComfyUI] ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
+[06:01] Frame 1 saved (frame_000.jpg, t=0.0s)
+[06:01] Validating workflow...
+[06:01] Validation failed: graphToPrompt produced nodes without class_type: graphToPrompt: 2 nodes, missing class_type: [1,2], sample: {"inputs":{"UNKNOWN":"compressed_room.ply"},"_meta":{}}
+[06:01] [ComfyUI] [32m[INFO][0m Using RAM pressure cache.
+[06:01] Results saved to D:\a\comfy-gpu-ci\comfy-gpu-ci\comfy-test-logs\GaussianPack-1720\dev\windows-portable-cpu\results.json
+[06:01] Model report: 8 files, 18.7 MB -> D:\a\comfy-gpu-ci\comfy-gpu-ci\comfy-test-logs\GaussianPack-1720\dev\windows-portable-cpu\models.json
+[06:01] Saved: D:\a\comfy-gpu-ci\comfy-gpu-ci\comfy-test-logs\GaussianPack-1720\dev\windows-portable-cpu\index.html
+[06:01]
+windows_portable: FAILED
+[06:01] Error: Workflow execution failed (4 error(s))
+[06:01] Details: gaussian_analysis.json: Workflow validation failed
+
+Details:
+graphToPrompt produced nodes without class_type: graphToPrompt: 4 nodes, missing class_type: [1,19,20,21], sample: {"inputs":{"UNKNOWN":"apple.ply"},"_meta":{}}
+merge_splats.json: Workflow validation failed
+
+Details:
+graphToPrompt produced nodes without class_type: graphToPrompt: 3 nodes, missing class_type: [1,12,14], sample: {"inputs":{"UNKNOWN":"apple.ply"},"_meta":{}}
+rotate_splats.json: Workflow validation failed
+
+Details:
+graphToPrompt produced nodes without class_type: graphToPrompt: 3 nodes, missing class_type: [1,14,18], sample: {"inputs":{"UNKNOWN":"apple.ply"},"_meta":{}}
+spectate.json: Workflow validation failed
+
+Details:
+graphToPrompt produced nodes without class_type: graphToPrompt: 2 nodes, missing class_type: [1,2], sample: {"inputs":{"UNKNOWN":"compressed_room.ply"},"_meta":{}}
+[06:01] Stopping ComfyUI server...
diff --git a/dev/windows-portable-cpu/videos/gaussian_analysis/frame_000.jpg b/dev/windows-portable-cpu/videos/gaussian_analysis/frame_000.jpg
index 2fd4cae..dc9d9ff 100644
Binary files a/dev/windows-portable-cpu/videos/gaussian_analysis/frame_000.jpg and b/dev/windows-portable-cpu/videos/gaussian_analysis/frame_000.jpg differ
diff --git a/dev/windows-portable-cpu/videos/gaussian_analysis/frame_001.jpg b/dev/windows-portable-cpu/videos/gaussian_analysis/frame_001.jpg
deleted file mode 100644
index 4fa9745..0000000
Binary files a/dev/windows-portable-cpu/videos/gaussian_analysis/frame_001.jpg and /dev/null differ
diff --git a/dev/windows-portable-cpu/videos/gaussian_analysis/frame_002.jpg b/dev/windows-portable-cpu/videos/gaussian_analysis/frame_002.jpg
deleted file mode 100644
index 5b9763e..0000000
Binary files a/dev/windows-portable-cpu/videos/gaussian_analysis/frame_002.jpg and /dev/null differ
diff --git a/dev/windows-portable-cpu/videos/gaussian_analysis/metadata.json b/dev/windows-portable-cpu/videos/gaussian_analysis/metadata.json
deleted file mode 100644
index 2a26172..0000000
--- a/dev/windows-portable-cpu/videos/gaussian_analysis/metadata.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "frames": [
- {
- "file": "frame_000.jpg",
- "time": 0.0,
- "log": " [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\nCapturing execution frames: gaussian_analysis.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache."
- },
- {
- "file": "frame_001.jpg",
- "time": 0.5,
- "log": " [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\nCapturing execution frames: gaussian_analysis.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 Queuing workflow for execution...\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 19: GaussianAnalysis\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"ply_path\": [\"1\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 20: LoadPLY\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"ply_file\": \"compressed_room.ply\"}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 21: GaussianAnalysis\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"ply_path\": [\"20\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Generated prompt_id: 68d52ede-a37c-4f48-b22a-4bbb68beb4aa\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\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: compressed_room.ply -> D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\compressed_room.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianAnalysis:\n [ComfyUI] == Gaussian PLY analysis ==\n [ComfyUI] path: D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\compressed_room.ply\n [ComfyUI] size: 26.70 MB (28,000,362 bytes)\n [ComfyUI] encoding: binary_little_endian 1.0\n [ComfyUI] splat count: 500,000\n [ComfyUI] bytes/splat: 56.0\n [ComfyUI] flavor: SH-stripped 3DGS (DC only, no view-dependent term)\n [ComfyUI] SH degree: 0\n [ComfyUI] precision: float32 (all)\n [ComfyUI] has f_dc_*: True\n [ComfyUI] has RGB uchar: False\n [ComfyUI] has opacity: True\n [ComfyUI] has scale_*: True\n [ComfyUI] has rot_*: True\n [ComfyUI] total props: 14\n [ComfyUI] \u001b[32m[INFO]\u001b[0m LoadPLY: apple.ply -> D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianAnalysis:\n [ComfyUI] == Gaussian PLY analysis ==\n [ComfyUI] path: D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] size: 47.30 MB (49,601,531 bytes)\n [ComfyUI] encoding: binary_little_endian 1.0\n [ComfyUI] splat count: 200,000\n [ComfyUI] bytes/splat: 248.0\n [ComfyUI] flavor: raw 3DGS PLY (SH degree 3)\n [ComfyUI] SH degree: 3\n [ComfyUI] precision: float32 (all)\n [ComfyUI] has f_dc_*: True\n [ComfyUI] has RGB uchar: False\n [ComfyUI] has opacity: True\n [ComfyUI] has scale_*: True\n [ComfyUI] has rot_*: True\n [ComfyUI] total props: 62\n [ComfyUI] \u001b[32m[INFO]\u001b[0m \u001b[32mPrompt executed in 0.02 seconds\u001b[0m"
- },
- {
- "file": "frame_002.jpg",
- "time": 2.994668483734131,
- "log": "Final screenshot"
- }
- ],
- "total_time": 0.67
-}
\ No newline at end of file
diff --git a/dev/windows-portable-cpu/videos/merge_splats/frame_000.jpg b/dev/windows-portable-cpu/videos/merge_splats/frame_000.jpg
index 5b2a814..d6a3dee 100644
Binary files a/dev/windows-portable-cpu/videos/merge_splats/frame_000.jpg and b/dev/windows-portable-cpu/videos/merge_splats/frame_000.jpg differ
diff --git a/dev/windows-portable-cpu/videos/merge_splats/frame_001.jpg b/dev/windows-portable-cpu/videos/merge_splats/frame_001.jpg
deleted file mode 100644
index 92ac0b4..0000000
Binary files a/dev/windows-portable-cpu/videos/merge_splats/frame_001.jpg and /dev/null differ
diff --git a/dev/windows-portable-cpu/videos/merge_splats/frame_002.jpg b/dev/windows-portable-cpu/videos/merge_splats/frame_002.jpg
deleted file mode 100644
index 4c2bc32..0000000
Binary files a/dev/windows-portable-cpu/videos/merge_splats/frame_002.jpg and /dev/null differ
diff --git a/dev/windows-portable-cpu/videos/merge_splats/frame_003.jpg b/dev/windows-portable-cpu/videos/merge_splats/frame_003.jpg
deleted file mode 100644
index 29d6094..0000000
Binary files a/dev/windows-portable-cpu/videos/merge_splats/frame_003.jpg and /dev/null differ
diff --git a/dev/windows-portable-cpu/videos/merge_splats/frame_004.jpg b/dev/windows-portable-cpu/videos/merge_splats/frame_004.jpg
deleted file mode 100644
index 71485c5..0000000
Binary files a/dev/windows-portable-cpu/videos/merge_splats/frame_004.jpg and /dev/null differ
diff --git a/dev/windows-portable-cpu/videos/merge_splats/metadata.json b/dev/windows-portable-cpu/videos/merge_splats/metadata.json
deleted file mode 100644
index 8d09fc1..0000000
--- a/dev/windows-portable-cpu/videos/merge_splats/metadata.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "frames": [
- {
- "file": "frame_000.jpg",
- "time": 0.0,
- "log": "Capturing execution frames: merge_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[1m\u001b[31m[ERROR]\u001b[0m Exception in callback _ProactorBasePipeTransport._call_connection_lost()\n [ComfyUI] handle: \n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"asyncio\\events.py\", line 89, in _run\n [ComfyUI] File \"asyncio\\proactor_events.py\", line 165, in _call_connection_lost\n [ComfyUI] ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host"
- },
- {
- "file": "frame_001.jpg",
- "time": 2.23,
- "log": "Capturing execution frames: merge_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[1m\u001b[31m[ERROR]\u001b[0m Exception in callback _ProactorBasePipeTransport._call_connection_lost()\n [ComfyUI] handle: \n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"asyncio\\events.py\", line 89, in _run\n [ComfyUI] File \"asyncio\\proactor_events.py\", line 165, in _call_connection_lost\n [ComfyUI] ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\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: da948adf-79a8-4b1c-a4e6-e49d0db097e4\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\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 -> D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianMerge: 200000 -> 100000 splats (ratio=0.5000, backend=nanogs_cpu) on D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] Loading PLY: D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] Initial splats: 200000\n [ComfyUI] Pruned splats: 200000, target: 100000\n [ComfyUI] Opacity Mean: 0.53443545 Median: 0.48362076\n [ComfyUI] Pruning splats with opacity below 0.1000\n [ComfyUI] Original count: 200000, after opacity pruning: 200000\n [ComfyUI] After opacity pruning, 200000 splats remain.\n [ComfyUI] Pass 1: 200000 splats"
- },
- {
- "file": "frame_002.jpg",
- "time": 4.45,
- "log": "Capturing execution frames: merge_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[1m\u001b[31m[ERROR]\u001b[0m Exception in callback _ProactorBasePipeTransport._call_connection_lost()\n [ComfyUI] handle: \n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"asyncio\\events.py\", line 89, in _run\n [ComfyUI] File \"asyncio\\proactor_events.py\", line 165, in _call_connection_lost\n [ComfyUI] ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\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: da948adf-79a8-4b1c-a4e6-e49d0db097e4\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\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 -> D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianMerge: 200000 -> 100000 splats (ratio=0.5000, backend=nanogs_cpu) on D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] Loading PLY: D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] Initial splats: 200000\n [ComfyUI] Pruned splats: 200000, target: 100000\n [ComfyUI] Opacity Mean: 0.53443545 Median: 0.48362076\n [ComfyUI] Pruning splats with opacity below 0.1000\n [ComfyUI] Original count: 200000, after opacity pruning: 200000\n [ComfyUI] After opacity pruning, 200000 splats remain.\n [ComfyUI] Pass 1: 200000 splats\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=5ms shot=94ms unfreeze=5ms saved=True"
- },
- {
- "file": "frame_003.jpg",
- "time": 19.41,
- "log": "Capturing execution frames: merge_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[1m\u001b[31m[ERROR]\u001b[0m Exception in callback _ProactorBasePipeTransport._call_connection_lost()\n [ComfyUI] handle: \n [ComfyUI] Traceback (most recent call last):\n [ComfyUI] File \"asyncio\\events.py\", line 89, in _run\n [ComfyUI] File \"asyncio\\proactor_events.py\", line 165, in _call_connection_lost\n [ComfyUI] ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\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: da948adf-79a8-4b1c-a4e6-e49d0db097e4\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\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 -> D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianMerge: 200000 -> 100000 splats (ratio=0.5000, backend=nanogs_cpu) on D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] Loading PLY: D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] Initial splats: 200000\n [ComfyUI] Pruned splats: 200000, target: 100000\n [ComfyUI] Opacity Mean: 0.53443545 Median: 0.48362076\n [ComfyUI] Pruning splats with opacity below 0.1000\n [ComfyUI] Original count: 200000, after opacity pruning: 200000\n [ComfyUI] After opacity pruning, 200000 splats remain.\n [ComfyUI] Pass 1: 200000 splats\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=5ms shot=94ms unfreeze=5ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.5s)\n [capture-periodic] freeze=4ms shot=101ms unfreeze=6ms saved=True\n [ComfyUI] \n [ComfyUI] Edge costs: 0%| | 0/19 [00:00, ?it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 5%|5 | 1/19 [00:00<00:03, 4.54it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 11%|# | 2/19 [00:00<00:03, 4.40it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 16%|#5 | 3/19 [00:00<00:03, 4.48it/s]\n [capture-loop] iter=50 t=6.0s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=6 ram=6.0/16.0GB (38%) swap=0.2/2.9GB (8%) cpu=46% browser_rss=0.75GB\n [ComfyUI] \n [ComfyUI] Edge costs: 21%|##1 | 4/19 [00:00<00:03, 4.52it/s]\n [ComfyUI] Edge costs: 26%|##6 | 5/19 [00:01<00:03, 4.54it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 32%|###1 | 6/19 [00:01<00:02, 4.54it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 37%|###6 | 7/19 [00:01<00:02, 4.48it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 42%|####2 | 8/19 [00:01<00:02, 4.47it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 47%|####7 | 9/19 [00:01<00:02, 4.54it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 53%|#####2 | 10/19 [00:02<00:01, 4.51it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 58%|#####7 | 11/19 [00:02<00:01, 4.62it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 63%|######3 | 12/19 [00:02<00:01, 4.44it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 68%|######8 | 13/19 [00:02<00:01, 4.50it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 74%|#######3 | 14/19 [00:03<00:01, 4.56it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 79%|#######8 | 15/19 [00:03<00:00, 4.69it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 84%|########4 | 16/19 [00:03<00:00, 4.72it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 89%|########9 | 17/19 [00:03<00:00, 4.55it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 95%|#########4| 18/19 [00:03<00:00, 4.57it/s]\n [ComfyUI] Edge costs: 100%|##########| 19/19 [00:04<00:00, 4.69it/s]\n [ComfyUI] edges: 1848776, pairs: 96906 (need 100000)\n [ComfyUI] Merging 96906 pairs\n [ComfyUI] Pass 2: 103094 splats\n [capture-loop] iter=100 t=12.2s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=6 ram=5.9/16.0GB (37%) swap=0.2/2.9GB (8%) cpu=45% browser_rss=0.65GB\n [ComfyUI] \n [ComfyUI] Edge costs: 0%| | 0/10 [00:00, ?it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 10%|# | 1/10 [00:00<00:01, 4.75it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 20%|## | 2/10 [00:00<00:01, 4.67it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 30%|### | 3/10 [00:00<00:01, 4.87it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 40%|#### | 4/10 [00:00<00:01, 4.85it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 50%|##### | 5/10 [00:01<00:01, 4.81it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 60%|###### | 6/10 [00:01<00:00, 4.90it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 70%|####### | 7/10 [00:01<00:00, 5.01it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 80%|######## | 8/10 [00:01<00:00, 5.09it/s]\n [ComfyUI] \n [ComfyUI] Edge costs: 90%|######### | 9/10 [00:01<00:00, 4.87it/s]\n [ComfyUI] Edge costs: 100%|##########| 10/10 [00:01<00:00, 5.33it/s]\n [ComfyUI] edges: 919857, pairs: 3094 (need 3094)\n [ComfyUI] Merging 3094 pairs\n [ComfyUI] Final splats: 100000\n [capture-loop] iter=150 t=18.0s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=7 ram=5.9/16.0GB (37%) swap=0.2/2.9GB (8%) cpu=40% browser_rss=0.65GB\n [ComfyUI] \u001b[32m[INFO]\u001b[0m GaussianMerge: wrote D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\output\\applemerged.ply (100000 splats, 23.7 MB)\n [ComfyUI] \u001b[32m[INFO]\u001b[0m \u001b[32mPrompt executed in 19.06 seconds\u001b[0m"
- },
- {
- "file": "frame_004.jpg",
- "time": 85.5696930885315,
- "log": "Final screenshot"
- }
- ],
- "total_time": 80.76
-}
\ No newline at end of file
diff --git a/dev/windows-portable-cpu/videos/rotate_splats/frame_000.jpg b/dev/windows-portable-cpu/videos/rotate_splats/frame_000.jpg
index 3fa72cc..5d9e806 100644
Binary files a/dev/windows-portable-cpu/videos/rotate_splats/frame_000.jpg and b/dev/windows-portable-cpu/videos/rotate_splats/frame_000.jpg differ
diff --git a/dev/windows-portable-cpu/videos/rotate_splats/frame_001.jpg b/dev/windows-portable-cpu/videos/rotate_splats/frame_001.jpg
deleted file mode 100644
index c534ff9..0000000
Binary files a/dev/windows-portable-cpu/videos/rotate_splats/frame_001.jpg and /dev/null differ
diff --git a/dev/windows-portable-cpu/videos/rotate_splats/frame_002.jpg b/dev/windows-portable-cpu/videos/rotate_splats/frame_002.jpg
deleted file mode 100644
index d8a9c0e..0000000
Binary files a/dev/windows-portable-cpu/videos/rotate_splats/frame_002.jpg and /dev/null differ
diff --git a/dev/windows-portable-cpu/videos/rotate_splats/metadata.json b/dev/windows-portable-cpu/videos/rotate_splats/metadata.json
deleted file mode 100644
index 4623b34..0000000
--- a/dev/windows-portable-cpu/videos/rotate_splats/metadata.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "frames": [
- {
- "file": "frame_000.jpg",
- "time": 0.0,
- "log": "Capturing execution frames: rotate_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache."
- },
- {
- "file": "frame_001.jpg",
- "time": 1.17,
- "log": "Capturing execution frames: rotate_splats.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\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 Queuing workflow for execution...\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 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\": [\"18\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 18: TransformGaussian\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"rotate_x\": -90, \"rotate_y\": 0, \"rotate_z\": 0, \"ply_path\": [\"1\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Generated prompt_id: 606fc7b4-1ef0-4a8b-bb86-ea5ab470d06c\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\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 -> D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\apple.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m TransformGaussian: 200000 splats, rotation X=-90.0 Y=0.0 Z=0.0\n [ComfyUI] \u001b[32m[INFO]\u001b[0m TransformGaussian: rotated SH AC (sh_degree=3, 15 coeffs/channel x 3 channels) via Wigner-D\n [ComfyUI] \u001b[32m[INFO]\u001b[0m TransformGaussian: wrote apple_rot_m90_p0_p0_0e442043.ply (47.3 MB)\n [ComfyUI] \u001b[32m[INFO]\u001b[0m \u001b[32mPrompt executed in 0.81 seconds\u001b[0m"
- },
- {
- "file": "frame_002.jpg",
- "time": 63.83711504936218,
- "log": "Final screenshot"
- }
- ],
- "total_time": 61.65
-}
\ No newline at end of file
diff --git a/dev/windows-portable-cpu/videos/spectate/frame_000.jpg b/dev/windows-portable-cpu/videos/spectate/frame_000.jpg
index bcd99a3..17289e6 100644
Binary files a/dev/windows-portable-cpu/videos/spectate/frame_000.jpg and b/dev/windows-portable-cpu/videos/spectate/frame_000.jpg differ
diff --git a/dev/windows-portable-cpu/videos/spectate/frame_001.jpg b/dev/windows-portable-cpu/videos/spectate/frame_001.jpg
deleted file mode 100644
index 50d23f1..0000000
Binary files a/dev/windows-portable-cpu/videos/spectate/frame_001.jpg and /dev/null differ
diff --git a/dev/windows-portable-cpu/videos/spectate/frame_002.jpg b/dev/windows-portable-cpu/videos/spectate/frame_002.jpg
deleted file mode 100644
index 1bbdaea..0000000
Binary files a/dev/windows-portable-cpu/videos/spectate/frame_002.jpg and /dev/null differ
diff --git a/dev/windows-portable-cpu/videos/spectate/metadata.json b/dev/windows-portable-cpu/videos/spectate/metadata.json
deleted file mode 100644
index a72df16..0000000
--- a/dev/windows-portable-cpu/videos/spectate/metadata.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "frames": [
- {
- "file": "frame_000.jpg",
- "time": 0.0,
- "log": "Capturing execution frames: spectate.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache."
- },
- {
- "file": "frame_001.jpg",
- "time": 0.47,
- "log": "Capturing execution frames: spectate.json\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Using RAM pressure cache.\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 Queuing workflow for execution...\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 2 nodes\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 1: LoadPLY\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"ply_file\": \"compressed_room.ply\"}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Node 2: PreviewGaussians\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Inputs: {\"camera_mode\": \"spectate\", \"fov_degrees\": 70, \"renderer\": \"playcanvas\", \"transport_format\": \"ply\", \"ply_path\": [\"1\", 0]}\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Generated prompt_id: 5a885c67-a806-4dae-a8c2-710d79b29166\n [ComfyUI] \u001b[32m[INFO]\u001b[0m Calling execution.validate_prompt()...\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: compressed_room.ply -> D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GaussianPack-1400\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\input\\compressed_room.ply\n [ComfyUI] \u001b[32m[INFO]\u001b[0m \u001b[32mPrompt executed in 0.01 seconds\u001b[0m"
- },
- {
- "file": "frame_002.jpg",
- "time": 11.37205195426941,
- "log": "Final screenshot"
- }
- ],
- "total_time": 9.0
-}
\ No newline at end of file