mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-01-26 19:09:52 +00:00
## Summary integrated sparkjs https://sparkjs.dev/, built by [world labs ](https://www.worldlabs.ai/) to support 3dgs. - Add 3D Gaussian Splatting (3DGS) support using @sparkjsdev/spark library - Add PLY file format support with multiple rendering engines - Support new file formats: `.ply`, `.spz`, `.splat`, `.ksplat` - Add PLY Engine setting with three options: `threejs` (mesh), `fastply` (optimized ASCII point clouds), `sparkjs` (3DGS) - Add `FastPLYLoader` for 4-5x faster ASCII PLY parsing - Add `original(Advanced)` material mode for point cloud rendering with THREE.Points 3dgs generated by https://marble.worldlabs.ai/ test ply file from: 1. made by https://github.com/PozzettiAndrea/ComfyUI-DepthAnythingV3 2. threejs offically repo ## Screenshots https://github.com/user-attachments/assets/44e64d3e-b58d-4341-9a70-a9aa64801220 https://github.com/user-attachments/assets/76b0dfba-0c12-4f64-91cb-bfc5d672294d https://github.com/user-attachments/assets/2a8bfe81-1fb2-44c4-8787-dff325369c61 https://github.com/user-attachments/assets/e4beecee-d7a2-40c9-97f7-79b09c60312d ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7602-3dgs-ply-support-2cd6d73d3650814098fcea86cfaf747d) by [Unito](https://www.unito.io)
74 lines
1.9 KiB
TypeScript
74 lines
1.9 KiB
TypeScript
import { vi } from 'vitest'
|
|
import 'vue'
|
|
|
|
// Mock @sparkjsdev/spark which uses WASM that doesn't work in Node.js
|
|
vi.mock('@sparkjsdev/spark', () => ({
|
|
SplatMesh: class SplatMesh {
|
|
constructor() {}
|
|
}
|
|
}))
|
|
|
|
// Augment Window interface for tests
|
|
declare global {
|
|
interface Window {
|
|
__CONFIG__: {
|
|
mixpanel_token?: string
|
|
require_whitelist?: boolean
|
|
subscription_required?: boolean
|
|
max_upload_size?: number
|
|
comfy_api_base_url?: string
|
|
comfy_platform_base_url?: string
|
|
firebase_config?: {
|
|
apiKey: string
|
|
authDomain: string
|
|
databaseURL?: string
|
|
projectId: string
|
|
storageBucket: string
|
|
messagingSenderId: string
|
|
appId: string
|
|
measurementId?: string
|
|
}
|
|
server_health_alert?: {
|
|
message: string
|
|
tooltip?: string
|
|
severity?: 'info' | 'warning' | 'error'
|
|
badge?: string
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Define global variables for tests
|
|
globalThis.__COMFYUI_FRONTEND_VERSION__ = '1.24.0'
|
|
globalThis.__SENTRY_ENABLED__ = false
|
|
globalThis.__SENTRY_DSN__ = ''
|
|
globalThis.__ALGOLIA_APP_ID__ = ''
|
|
globalThis.__ALGOLIA_API_KEY__ = ''
|
|
globalThis.__USE_PROD_CONFIG__ = false
|
|
globalThis.__DISTRIBUTION__ = 'localhost'
|
|
|
|
// Define runtime config for tests
|
|
window.__CONFIG__ = {
|
|
subscription_required: true,
|
|
mixpanel_token: 'test-token',
|
|
comfy_api_base_url: 'https://stagingapi.comfy.org',
|
|
comfy_platform_base_url: 'https://stagingplatform.comfy.org',
|
|
firebase_config: {
|
|
apiKey: 'test',
|
|
authDomain: 'test.firebaseapp.com',
|
|
projectId: 'test',
|
|
storageBucket: 'test.appspot.com',
|
|
messagingSenderId: '123',
|
|
appId: '123'
|
|
}
|
|
}
|
|
|
|
// Mock Worker for extendable-media-recorder
|
|
globalThis.Worker = vi.fn().mockImplementation(() => ({
|
|
postMessage: vi.fn(),
|
|
terminate: vi.fn(),
|
|
addEventListener: vi.fn(),
|
|
removeEventListener: vi.fn(),
|
|
dispatchEvent: vi.fn()
|
|
}))
|